Merge branch 'develop' into 'master'

Develop

See merge request !22
remotes/origin/pm_task_31703
Zolotarev Alexander 9 years ago
commit c156b4c9ca
  1. 3
      courses/api.py
  2. 25
      courses/migrations/0043_auto_20170621_1340.py
  3. 25
      courses/migrations/0044_auto_20170621_1548.py
  4. 17
      courses/models.py
  5. 12
      journals/models.py
  6. 2
      static/js/apis/files_loader.js

@ -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

@ -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='Блок комментариев'),
),
]

@ -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='Блок комментариев'),
),
]

@ -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

@ -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():

@ -70,7 +70,7 @@ function write_sketch(id){
'<small class="text-muted clear text-ellipsis">'+ data['file_name'] +'</small>' +
'<input name="file_'+clip_file+'" readonly style="display: none;" value='+clip_file+'>' +
'</span>' +
'<a type="button" class="glyphicon glyphicon-remove" style="position: absolute;margin-top: 15px;margin-left: -3px;" onclick="remove_file_sketch(\''+clip_file+'\')"></a>' +
'<a type="button" class="glyphicon glyphicon-remove" style="margin-top: 15px;margin-left: -3px;" onclick="remove_file_sketch(\''+clip_file+'\')"></a>' +
'</div>'
)
}

Loading…
Cancel
Save