Merge branch 'develop' into 'master'

Develop

See merge request skillbox/go.skillbox.ru!84
remotes/origin/pm_task_31703
Zolotarev Alexander 8 years ago
commit 8d8349cd51
  1. 24
      courses/models.py
  2. 2
      journals/models.py

@ -407,7 +407,10 @@ class Lesson(models.Model):
video = gen_vzaar_bb(self.video_id) video = gen_vzaar_bb(self.video_id)
if video: if video:
self.video = video self.video = video
must_rebuild_map = False
if Lesson.objects.filter(theme=self.theme, sort=self.sort).exclude(id=self.id).exists(): 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 test_in = self.sort + 1
for lesson in Lesson.objects.filter(theme=self.theme, sort__gte=self.sort).exclude(id=self.id): 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.sort = test_in
lesson.save() lesson.save()
test_in += 1 test_in += 1
self.token = self.course.build_map(material=self) must_rebuild_map = True
super(Lesson, self).save(*args, **kwargs) super(Lesson, self).save(*args, **kwargs)
# Переформировать карту после сохранения текущего урока
if must_rebuild_map:
self.course.build_map()
class Meta: class Meta:
verbose_name = u'Урок' verbose_name = u'Урок'
@ -474,7 +480,10 @@ class Homework(models.Model):
return result return result
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
must_rebuild_map = False
if Homework.objects.filter(theme=self.theme, sort=self.sort).exclude(id=self.id).exists(): 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 test_in = self.sort + 1
for homework in Homework.objects.filter(theme=self.theme, sort__gte=self.sort).exclude(id=self.id): 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.sort = test_in
homework.save() homework.save()
test_in += 1 test_in += 1
self.token = self.course.build_map(material=self) must_rebuild_map = True
super(Homework, self).save(*args, **kwargs) super(Homework, self).save(*args, **kwargs)
# Переформировать карту после сохранения текущего дз
if must_rebuild_map:
self.course.build_map()
class Meta: class Meta:
verbose_name = u'Добашнее задание' verbose_name = u'Добашнее задание'
@ -541,7 +553,10 @@ class Exam(models.Model):
return self.theme.get_title() return self.theme.get_title()
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
must_rebuild_map = False
if Exam.objects.filter(theme=self.theme, sort=self.sort).exclude(id=self.id).exists(): 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 test_in = self.sort + 1
for exam in Exam.objects.filter(theme=self.theme, sort__gte=self.sort).exclude(id=self.id): 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.sort = test_in
exam.save() exam.save()
test_in += 1 test_in += 1
self.token = self.course.build_map(material=self) must_rebuild_map = True
super(Exam, self).save(*args, **kwargs) super(Exam, self).save(*args, **kwargs)
# Переформировать карту после сохранения текущего экзамена
if must_rebuild_map:
self.course.build_map()
class Meta: class Meta:
verbose_name = u'Экзамен' verbose_name = u'Экзамен'

@ -785,7 +785,7 @@ class HomeworkJ(models.Model):
elif _type == 'E': elif _type == 'E':
obj = ExamJ obj = ExamJ
j = obj.objects.get(material=_next, student=self.student) j = obj.objects.get_or_create(material=_next, student=self.student)
if self.success: if self.success:
j.open_material() j.open_material()
return {'button': search_in_collection(BUTTON_TYPE, return {'button': search_in_collection(BUTTON_TYPE,

Loading…
Cancel
Save