Merge branch 'hotfix/hotfix-10.07' into 'develop'

Hotfix/hotfix 10.07

See merge request !30
remotes/origin/pm_task_31703
Zolotarev Alexander 9 years ago
commit 48cd548578
  1. 38
      courses/migrations/0046_auto_20170711_1704.py
  2. 19
      courses/migrations/0047_remove_course_public_old.py
  3. 23
      courses/models.py
  4. 18
      courses/views.py
  5. 20
      journals/models.py

@ -0,0 +1,38 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.3 on 2017-07-11 17:04
from __future__ import unicode_literals
import datetime
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('courses', '0045_merge'),
]
operations = [
migrations.CreateModel(
name='Flow',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=255, verbose_name='Название')),
('description', models.TextField(blank=True, default='', null=True, verbose_name='Описание')),
('start_flow', models.DateTimeField(default=datetime.datetime.now, verbose_name='Дата начала потока')),
('created', models.DateTimeField(default=datetime.datetime.now, editable=False, verbose_name='Создан')),
('modified', models.DateTimeField(auto_now=True, verbose_name='Изменен')),
('course', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='courses.Course', verbose_name='Курс')),
],
options={
'ordering': ['-modified'],
'verbose_name_plural': 'Потоки',
'verbose_name': 'Поток',
},
),
migrations.RemoveField(
model_name='coursetheme',
name='empty_old',
),
]

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.3 on 2017-07-11 17:09
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('courses', '0046_auto_20170711_1704'),
]
operations = [
migrations.RemoveField(
model_name='course',
name='public_old',
),
]

@ -77,7 +77,6 @@ class Course(models.Model):
direction = models.ForeignKey(MaterialDirection, verbose_name=u'Направление', null=True)
mentors = models.ManyToManyField(User, verbose_name=u'Кураторы', null=True, blank=True, related_name='course_mentors')
public = models.BooleanField(verbose_name=u'Опубликовать', default=False)
public_old = models.BooleanField(verbose_name=u'Старый статус', default=False)
title = models.CharField(verbose_name=u"Заголовок", max_length=255)
description = RedactorField(verbose_name=u'Описание', blank=True)
image = models.ImageField(verbose_name=u'Изображение', upload_to='course', blank=True)
@ -206,12 +205,6 @@ class Course(models.Model):
return '/courses/%s' % self.slug
def save(self, *args, **kwargs):
# Костыль для поиска ошибки галочки
if self.public != self.public_old:
log = logging.getLogger('Course_public_change')
log.error('status change')
self.public_old = self.public
#
if not self.slug: self.slug = '{0}'.format(translit(self.title))
super(Course, self).save(*args, **kwargs)
@ -234,7 +227,6 @@ class CourseTheme(models.Model):
empty = models.BooleanField(verbose_name=u'Ты не пройдешь!',
help_text=u'Заблокировать дальнейшее прохождение курса. Из-за того, '
u'что курс не заполнен или что-то вроде того.', default=False)
empty_old = models.BooleanField(verbose_name=u'Для проверки галочки', default=False)
def __unicode__(self):
return u'%s:%s/%s' % (self.sort, self.course, self.title if self.title else self.get__type_display())
@ -322,13 +314,6 @@ class CourseTheme(models.Model):
return Homework.objects.filter(theme=self).count()
def save(self, *args, **kwargs):
# Костыль для поиска ошибки смены галочки
if self.empty != self.empty_old:
log = logging.getLogger('Themes_status_change')
log.error('status change')
self.public_old = self.public
# Костыль конец
if CourseTheme.objects.filter(course=self.course, sort=self.sort).exclude(id=self.id).exists():
# Переформировать порядок
test_in = self.sort + 1
@ -684,14 +669,6 @@ class CourseMap(models.Model):
return _next._type, _next.get_obj()
def get_lesson_before(self):
try:
_before = CourseMap.objects.get(course=self.course, sort=self.sort - 2)
except CourseMap.DoesNotExist:
_before = CourseMap.objects.get(course=self.course, sort=0)
return _before._type, _before.get_obj()
def get_before(self):
try:
_next = CourseMap.objects.get(course=self.course, sort=self.sort - 1)

@ -45,9 +45,12 @@ def course(request, slug):
if created:
check_journal(journal)
_map = CourseMap.objects.filter(course=course).order_by('sort').first()
#_j = _map.get_obj()
#j = HomeworkJ.objects.get(material=_j, student=request.user)
#j.open_material()
_j = _map.get_obj()
if _map._type == 'H':
j = HomeworkJ.objects.get(material=_j, student=request.user)
if _map._type == 'L':
j = LessonJ.objects.get(material=_j, student=request.user)
j.open_material()
else:
journal, created = TeacherJ.objects.get_or_create(course=course, student=user_fabric(request.user))
@ -59,11 +62,12 @@ def course(request, slug):
start_flow = None
if request.user.is_authenticated() and not request.user.is_admin:
try:
bill = Bill.objects.get(
bills = Bill.objects.filter(
service__course=course, user=request.user, status='F')
if bill.flow:
flow = bill.flow.get_status()
start_flow = bill.flow.start_flow
for bill in bills:
if bill.flow:
flow = bill.flow.get_status()
start_flow = bill.flow.start_flow
except Bill.DoesNotExist:
pass

@ -414,15 +414,6 @@ class CourseThemeJ(models.Model):
p.save()
return p
def check_lessons(self):
""" Проверка уроков темы на статус. Если сдано - сдана тема"""
for lessonj in LessonJ.objects.filter(parent=self, student=self.student):
if lessonj.success == False:
return False
return True
def save(self, *args, **kwargs):
if not self.parent:
self.parent = self.get_parent()
@ -437,8 +428,11 @@ class CourseThemeJ(models.Model):
elif actual_lesson != self.actual_lesson.id:
self.actual_lesson = Lesson.objects.get(id=self.make_actual_lesson())
if self.check_lessons():
self.success = True
if LessonJ.objects.filter(parent=self, student=self.student).exists():
if LessonJ.objects.filter(parent=self, student=self.student, success=False).exists():
self.success = False
else:
self.success = True
if self.set_open:
if Lesson.objects.filter(theme=self.material).order_by('sort').exists():
@ -591,9 +585,7 @@ class LessonJ(models.Model):
if _type == 'L':
obj = LessonJ
elif _type == 'H':
_before = CourseMap.objects.get(token=_before.token)
_type, _before = _before.get_lesson_before()
obj = LessonJ
obj = HomeworkJ
elif _type == 'E':
obj = ExamJ

Loading…
Cancel
Save