From 105038f402e69915bbc5661dbfe0ba8308dbe366 Mon Sep 17 00:00:00 2001 From: Evgeniy Shabanov Date: Mon, 22 Jan 2018 13:42:57 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BF=D1=80=D0=BE=D1=86=D0=B5=D0=B4=D1=83=D1=80?= =?UTF-8?q?=D1=8B=20=D1=84=D0=BE=D1=80=D0=BC=D0=B8=D1=80=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=BA=D0=B0=D1=80=D1=82=D1=8B=20=D0=BF?= =?UTF-8?q?=D0=BE=D1=81=D0=BB=D0=B5=20=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=83=D1=80=D0=BE=D0=BA=D0=B0/?= =?UTF-8?q?=D0=B4=D0=B7/=D1=8D=D0=BA=D0=B7=D0=B0=D0=BC=D0=B5=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- courses/models.py | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/courses/models.py b/courses/models.py index 1c3c41a..4916f00 100755 --- a/courses/models.py +++ b/courses/models.py @@ -407,7 +407,10 @@ class Lesson(models.Model): video = gen_vzaar_bb(self.video_id) if video: self.video = video + must_rebuild_map = False if Lesson.objects.filter(theme=self.theme, sort=self.sort).exclude(id=self.id).exists(): + # Обновить текущий урок с новым порядком, не вызывая при этом метод save() + Lesson.objects.filter(id=self.id).update(sort=self.sort) # Переформировать порядок test_in = self.sort + 1 for lesson in Lesson.objects.filter(theme=self.theme, sort__gte=self.sort).exclude(id=self.id): @@ -415,8 +418,11 @@ class Lesson(models.Model): lesson.sort = test_in lesson.save() test_in += 1 - self.token = self.course.build_map(material=self) + must_rebuild_map = True super(Lesson, self).save(*args, **kwargs) + # Переформировать карту после сохранения текущего урока + if must_rebuild_map: + self.course.build_map() class Meta: verbose_name = u'Урок' @@ -474,7 +480,10 @@ class Homework(models.Model): return result def save(self, *args, **kwargs): + must_rebuild_map = False if Homework.objects.filter(theme=self.theme, sort=self.sort).exclude(id=self.id).exists(): + # Обновить текущее дз с новым порядком, не вызывая при этом метод save() + Homework.objects.filter(id=self.id).update(sort=self.sort) # Переформировать порядок test_in = self.sort + 1 for homework in Homework.objects.filter(theme=self.theme, sort__gte=self.sort).exclude(id=self.id): @@ -482,8 +491,11 @@ class Homework(models.Model): homework.sort = test_in homework.save() test_in += 1 - self.token = self.course.build_map(material=self) + must_rebuild_map = True super(Homework, self).save(*args, **kwargs) + # Переформировать карту после сохранения текущего дз + if must_rebuild_map: + self.course.build_map() class Meta: verbose_name = u'Добашнее задание' @@ -541,7 +553,10 @@ class Exam(models.Model): return self.theme.get_title() def save(self, *args, **kwargs): + must_rebuild_map = False if Exam.objects.filter(theme=self.theme, sort=self.sort).exclude(id=self.id).exists(): + # Обновить текущий экзамен с новым порядком, не вызывая при этом метод save() + Exam.objects.filter(id=self.id).update(sort=self.sort) # Переформировать порядок test_in = self.sort + 1 for exam in Exam.objects.filter(theme=self.theme, sort__gte=self.sort).exclude(id=self.id): @@ -549,8 +564,11 @@ class Exam(models.Model): exam.sort = test_in exam.save() test_in += 1 - self.token = self.course.build_map(material=self) + must_rebuild_map = True super(Exam, self).save(*args, **kwargs) + # Переформировать карту после сохранения текущего экзамена + if must_rebuild_map: + self.course.build_map() class Meta: verbose_name = u'Экзамен'