Skip to content

Commit 745f02b

Browse files
committed
Fix conflicts
2 parents 81cad0a + e53b86c commit 745f02b

File tree

7 files changed

+28
-43
lines changed

7 files changed

+28
-43
lines changed

requirements/requirements-common.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
-r requirements-codeserver.txt
22
invoke==0.21.0
3-
django==3.0.7
3+
django==3.1.7
44
django-taggit==1.2.0
55
pytz==2019.3
66
requests-oauthlib>=0.6.1
@@ -16,7 +16,7 @@ redis==3.4.1
1616
notifications-plugin==0.1.2
1717
django-celery-beat==2.0.0
1818
django-celery-results==1.2.1
19-
djangorestframework==3.11.0
19+
djangorestframework==3.11.2
2020
django-cors-headers==3.1.0
2121
Pillow
2222
pandas

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def get_version():
1616

1717

1818
install_requires = [
19-
'django==3.0.7',
19+
'django==3.1.7',
2020
'django-taggit==1.2.0',
2121
'pytz==2019.3',
2222
'requests-oauthlib>=0.6.1',

yaksh/models.py

Lines changed: 18 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
from django.db.models.signals import pre_delete
5050
from django.db.models.fields.files import FieldFile
5151
from django.core.exceptions import SuspiciousFileOperation
52+
from django.core.files.base import ContentFile
5253
# Local Imports
5354
from yaksh.code_server import (
5455
submit, get_result as get_result_from_code_server
@@ -167,9 +168,9 @@ def dict_to_yaml(dictionary):
167168

168169
def get_file_dir(instance, filename):
169170
if isinstance(instance, LessonFile):
170-
upload_dir = instance.lesson.name.replace(" ", "_")
171+
upload_dir = f"Lesson_{instance.lesson.id}"
171172
else:
172-
upload_dir = instance.name.replace(" ", "_")
173+
upload_dir = f"Lesson_{instance.id}"
173174
return os.sep.join((upload_dir, filename))
174175

175176

@@ -337,7 +338,7 @@ def __str__(self):
337338
return "{0}".format(self.name)
338339

339340
def get_files(self):
340-
return LessonFile.objects.filter(lesson=self)
341+
return LessonFile.objects.filter(lesson_id=self.id)
341342

342343
def _create_lesson_copy(self, user):
343344
lesson_files = self.get_files()
@@ -346,20 +347,19 @@ def _create_lesson_copy(self, user):
346347
new_lesson.creator = user
347348
new_lesson.save()
348349
for _file in lesson_files:
349-
file_name = os.path.basename(_file.file.name)
350-
if os.path.exists(_file.file.path):
351-
lesson_file = open(_file.file.path, "rb")
352-
django_file = File(lesson_file)
353-
lesson_file_obj = LessonFile()
354-
lesson_file_obj.lesson = new_lesson
355-
lesson_file_obj.file.save(file_name, django_file, save=True)
350+
try:
351+
file_name = os.path.basename(_file.file.name)
352+
lesson_file = ContentFile(_file.file.read())
353+
new_lesson_file = LessonFile()
354+
new_lesson_file.lesson_id=self.id
355+
new_lesson_file.file.save(file_name, lesson_file, save=True)
356+
new_lesson_file.save()
357+
except FileNotFoundError:
358+
pass
356359
return new_lesson
357360

358361
def remove_file(self):
359-
if self.video_file:
360-
file_path = self.video_file.path
361-
if os.path.exists(file_path):
362-
os.remove(file_path)
362+
self.video_file.delete()
363363

364364
def _add_lesson_to_zip(self, next_unit, module, course, zip_file, path):
365365
lesson_name = self.name.replace(" ", "_")
@@ -388,21 +388,16 @@ def _add_lesson_to_zip(self, next_unit, module, course, zip_file, path):
388388
write_templates_to_zip(zip_file, unit_file_path, lesson_data,
389389
lesson_name, sub_folder_name)
390390

391+
pre_delete.connect(file_cleanup, sender=Lesson)
391392

392393
#############################################################################
393394
class LessonFile(models.Model):
394395
lesson = models.ForeignKey(Lesson, related_name="lesson",
395396
on_delete=models.CASCADE)
396397
file = models.FileField(upload_to=get_file_dir, default=None)
397398

398-
def remove(self):
399-
if os.path.exists(self.file.path):
400-
os.remove(self.file.path)
401-
if os.listdir(os.path.dirname(self.file.path)) == []:
402-
os.rmdir(os.path.dirname(self.file.path))
403-
self.delete()
404-
405399
pre_delete.connect(file_cleanup, sender=LessonFile)
400+
406401
###############################################################################
407402
class QuizManager(models.Manager):
408403
def get_active_quizzes(self):
@@ -1584,11 +1579,10 @@ def _add_and_get_files(self, zip_file):
15841579
files_list = []
15851580
for f in files:
15861581
zip_file.writestr(
1587-
os.path.join("additional_files",
1588-
os.path.basename(f.file.url)),
1582+
os.path.join("additional_files", os.path.basename(f.file.name)),
15891583
f.file.read()
15901584
)
1591-
files_list.append(((os.path.basename(f.file.url)), f.extract))
1585+
files_list.append(((os.path.basename(f.file.name)), f.extract))
15921586
return files_list
15931587

15941588
def _add_files_to_db(self, file_names, path):
@@ -1681,13 +1675,6 @@ class FileUpload(models.Model):
16811675
extract = models.BooleanField(default=False)
16821676
hide = models.BooleanField(default=False)
16831677

1684-
def remove(self):
1685-
if os.path.exists(self.file.path):
1686-
os.remove(self.file.path)
1687-
if os.listdir(os.path.dirname(self.file.path)) == []:
1688-
os.rmdir(os.path.dirname(self.file.path))
1689-
self.delete()
1690-
16911678
def set_extract_status(self):
16921679
if self.extract:
16931680
self.extract = False

yaksh/templates/yaksh/showquestions.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
</p>
4444
</div>
4545
<div class="card-body">
46-
<form action="" method="post" enctype="multipart/form-data">
46+
<form action="{% url 'yaksh:show_questions' %}" method="post" enctype="multipart/form-data">
4747
{% csrf_token %}
4848
<div class="form-group col-md-6">
4949
<a class="btn btn-info" href="{% url 'yaksh:download_yaml_template' %}">

yaksh/test_models.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2612,14 +2612,14 @@ def test_short_key(self):
26122612
def test_generate_image(self):
26132613
# Given
26142614
qrcode = self.qrcode
2615-
image_name = 'qrcode/{0}.png'.format(qrcode.short_key)
2615+
image_name = qrcode.short_key
26162616

26172617
# When
26182618
qrcode.generate_image('test')
26192619

26202620
# Then
26212621
self.assertTrue(qrcode.is_active())
2622-
self.assertEqual(qrcode.image.name, image_name)
2622+
self.assertIn(image_name, qrcode.image.name)
26232623

26242624
def test_get_qrcode(self):
26252625
# Given

yaksh/test_views.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2234,11 +2234,7 @@ def test_duplicate_course(self):
22342234
self.assertTrue(expected_lesson_files.exists())
22352235
self.assertEquals(expected_lesson_files[0].file.read(), file_content)
22362236

2237-
for lesson_file in self.all_files:
2238-
file_path = lesson_file.file.path
2239-
if os.path.exists(file_path):
2240-
os.remove(file_path)
2241-
shutil.rmtree(os.path.dirname(file_path))
2237+
self.all_files.delete()
22422238

22432239
def test_download_course_offline(self):
22442240
""" Test to download course with lessons offline"""
@@ -4352,7 +4348,7 @@ def test_enroll_request_get_for_moderator(self):
43524348

43534349

43544350

4355-
class TestGrader(SimpleTestCase):
4351+
class TestGrader(TestCase):
43564352
allow_database_queries = True
43574353

43584354
def setUp(self):

yaksh/views.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1440,6 +1440,7 @@ def monitor(request, quiz_id=None, course_id=None, attempt_number=1):
14401440

14411441

14421442
def _get_questions(user, question_type, marks):
1443+
questions = None
14431444
if question_type is None and marks is None:
14441445
return None
14451446
if question_type:
@@ -1467,6 +1468,7 @@ def _remove_already_present(questionpaper_id, questions):
14671468

14681469
def _get_questions_from_tags(question_tags, user, active=True, questions=None):
14691470
search_tags = []
1471+
search = None
14701472
for tags in question_tags:
14711473
search_tags.extend(re.split('[; |, |\*|\n]', tags))
14721474
if questions:

0 commit comments

Comments
 (0)