diff --git a/courses/api.py b/courses/api.py
index 3d1d33d..86c16b7 100755
--- a/courses/api.py
+++ b/courses/api.py
@@ -740,6 +740,9 @@ def sent_homework_up_teacher(request, context):
context['code'] = '1'
context['data'] = {'try': ht.get_head_face(), 'comment': comment.get_face()}
ht.saw_this()
+
+ homework.success = True
+ homework.save()
return context
diff --git a/courses/migrations/0043_auto_20170621_1340.py b/courses/migrations/0043_auto_20170621_1340.py
new file mode 100644
index 0000000..ff2483b
--- /dev/null
+++ b/courses/migrations/0043_auto_20170621_1340.py
@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.3 on 2017-06-21 13:40
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('courses', '0042_auto_20161202_0338'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='course',
+ name='public_old',
+ field=models.BooleanField(default=False, verbose_name='Старый статус'),
+ ),
+ migrations.AlterField(
+ model_name='lesson',
+ name='on_comment',
+ field=models.CharField(choices=[('N', 'Включены'), ('F', 'Отключены'), ('T', 'Подчиняется теме')], default='T', help_text='https://127.0.0.1:8000/management/faq/37', max_length=1, verbose_name='Блок комментариев'),
+ ),
+ ]
diff --git a/courses/migrations/0044_auto_20170621_1548.py b/courses/migrations/0044_auto_20170621_1548.py
new file mode 100644
index 0000000..c7b94ae
--- /dev/null
+++ b/courses/migrations/0044_auto_20170621_1548.py
@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.3 on 2017-06-21 15:48
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('courses', '0043_auto_20170621_1340'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='coursetheme',
+ name='empty_old',
+ field=models.BooleanField(default=False, verbose_name='Для проверки галочки'),
+ ),
+ migrations.AlterField(
+ model_name='lesson',
+ name='on_comment',
+ field=models.CharField(choices=[('N', 'Включены'), ('F', 'Отключены'), ('T', 'Подчиняется теме')], default='T', help_text='http://127.0.0.1:8000/management/faq/37', max_length=1, verbose_name='Блок комментариев'),
+ ),
+ ]
diff --git a/courses/models.py b/courses/models.py
index 288d2fe..6369299 100755
--- a/courses/models.py
+++ b/courses/models.py
@@ -11,6 +11,8 @@ from lms.tools import random_string, translit
from management.models import Comment
from storage.models import Storage
+import logging
+
MATERIALS_TYPE = (
('B', u'Базовый материал'),
('E', u'Расширеный материал'),
@@ -74,6 +76,7 @@ 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)
@@ -202,6 +205,12 @@ 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)
@@ -224,6 +233,7 @@ 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())
@@ -311,6 +321,13 @@ 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
diff --git a/journals/models.py b/journals/models.py
index 8c22374..e8ad133 100755
--- a/journals/models.py
+++ b/journals/models.py
@@ -406,6 +406,15 @@ 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()
@@ -420,6 +429,9 @@ class CourseThemeJ(models.Model):
elif actual_lesson != self.actual_lesson.id:
self.actual_lesson = Lesson.objects.get(id=self.make_actual_lesson())
+ if check_lessons():
+ self.success = True
+
if self.set_open:
if self.material._type != 'Ex' and self.actual_lesson and not self.parent.opens.filter(
id=CourseMap.objects.get(token=self.actual_lesson.token).id).exists():
diff --git a/static/js/apis/files_loader.js b/static/js/apis/files_loader.js
index 9b7219e..7328f7d 100755
--- a/static/js/apis/files_loader.js
+++ b/static/js/apis/files_loader.js
@@ -70,7 +70,7 @@ function write_sketch(id){
''+ data['file_name'] +'' +
'' +
'' +
- '' +
+ '' +
''
)
}