diff --git a/_utils/open_lesson.py b/_utils/open_lesson.py index eb15e85..30ed6c9 100644 --- a/_utils/open_lesson.py +++ b/_utils/open_lesson.py @@ -11,7 +11,7 @@ django.setup() from journals.models import CourseMap, LessonJ, TeacherJ, HomeworkTry from lms.tools import show_progress -_NEED_OPEN = LessonJ.objects.get(material__id='79', student__email='agar10@yandex.ru') +_NEED_OPEN = LessonJ.objects.get(material__id='918', student__email='wies@1312s.ru') _TEACHERJ_FILTER = {'progress__gte': 0} _TEACHERJ_EXCLUDE = {'teacher': None} diff --git a/courses/models.py b/courses/models.py index 4a12ea5..a8ddb04 100644 --- a/courses/models.py +++ b/courses/models.py @@ -6,7 +6,6 @@ from access.models import User from courses.templates import search_in_collection, LEVELS_COLLECTION, MATERIAL_TYPE_COLLECTION, material_fabric, \ comment_fabric from library.models import Tags -from lms.CourseBuilder import CourseBuilder from lms.settings import DOMAIN from lms.tools import random_string, translit from management.models import Comment @@ -803,3 +802,138 @@ def gen_vzaar_bb(id): 'mozallowfullscreen webkitAllowFullScreen src="//view.vzaar.com/{0}/player">'.format(id) else: return None + + +class CourseBuilder: + def __init__(self, course, material=None): + self.course = course + self.course_public = self.course.public + self.material = material # Вернуть токен вызвавшего материала + self.ready = [] + self.materials = [] + self.token = '' + + def append_in_price(self, map): + # Добавить карту в счета, куда включены все карты курса в типе, исключая текущий + #Price.objects.filter(included=map.get_befor) + pass + + def rebuild_map(self): + sort = 0 + for theme in CourseTheme.objects.filter(course=self.course): + for lesson in Lesson.objects.filter(theme=theme): + must_save = False + try: + token = '{0}#{1}'.format(self.course.id, sort) + tmp = CourseMap.objects.get(token=token) + except CourseMap.DoesNotExist: + tmp = CourseMap.objects.create(lesson=lesson, sort=sort, course=self.course) + self.append_in_price(tmp) + + if tmp.homework: + tmp.homework = None + must_save = True + + if tmp.exam: + tmp.exam = None + must_save = True + + if tmp.lesson != lesson: + tmp.lesson = lesson + must_save = True + + if lesson.token != token: + lesson.token = token + lesson.save() + + if must_save: tmp.save() + + if lesson == self.material: + self.token = tmp.token + self.materials.append(tmp.id) + sort += 1 + + for homework in Homework.objects.filter(theme=theme): + must_save = False + try: + token = '{0}#{1}'.format(self.course.id, sort) + tmp = CourseMap.objects.get(token=token) + except CourseMap.DoesNotExist: + tmp = CourseMap.objects.create(homework=homework, sort=sort, course=self.course) + self.append_in_price(tmp) + + if tmp.homework != homework: + tmp.homework = homework + must_save = True + + if tmp.exam: + tmp.exam = None + must_save = True + + if tmp.lesson: + tmp.lesson = None + must_save = True + + if homework.token != token: + homework.token = token + homework.save() + + if must_save: tmp.save() + + if homework == self.material: + self.token = tmp.token + + self.materials.append(tmp.id) + sort += 1 + + for exam in Exam.objects.filter(theme=theme): + must_save = False + try: + token = '{0}#{1}'.format(self.course.id, sort) + tmp = CourseMap.objects.get(token=token) + except CourseMap.DoesNotExist: + tmp = CourseMap.objects.create(exam=exam, sort=sort, course=self.course) + self.append_in_price(tmp) + + if tmp.exam != exam: + tmp.exam = exam + must_save = True + + if tmp.homework: + tmp.homework = None + must_save = True + + if tmp.lesson: + tmp.lesson = None + must_save = True + + if exam.token != token: + exam.token = token + exam.save() + + if must_save: tmp.save() + + if exam == self.material: + self.token = tmp.token + self.materials.append(tmp.id) + sort += 1 + + if sort != CourseMap.objects.filter(course=self.course).count(): + CourseMap.objects.filter(course=self.course).exclude(id__in=self.materials).delete() + + def course_switcher(self): + # Блокировка курса на время обработки + if self.course_public: + if self.course.public: + self.course.public = False + else: + self.course.public = True + self.course.save() + + def main(self): + self.course_switcher() + ## + self.rebuild_map() + ## + self.course_switcher() + return self.token if self.material else None # Вернуть токен для материала если он есть \ No newline at end of file diff --git a/lms/CourseBuilder.py b/lms/CourseBuilder.py deleted file mode 100644 index 8b74336..0000000 --- a/lms/CourseBuilder.py +++ /dev/null @@ -1,136 +0,0 @@ -from courses.models import CourseTheme, Lesson, CourseMap, Homework, Exam - - -class CourseBuilder: - def __init__(self, course, material=None): - self.course = course - self.course_public = self.course.public - self.material = material # Вернуть токен вызвавшего материала - self.ready = [] - self.materials = [] - self.token = '' - - def append_in_price(self, map): - # Добавить карту в счета, куда включены все карты курса в типе, исключая текущий - #Price.objects.filter(included=map.get_befor) - pass - - def rebuild_map(self): - sort = 0 - for theme in CourseTheme.objects.filter(course=self.course): - for lesson in Lesson.objects.filter(theme=theme): - must_save = False - try: - token = '{0}#{1}'.format(self.course.id, sort) - tmp = CourseMap.objects.get(token=token) - except CourseMap.DoesNotExist: - tmp = CourseMap.objects.create(lesson=lesson, sort=sort, course=self.course) - self.append_in_price(tmp) - - if tmp.homework: - tmp.homework = None - must_save = True - - if tmp.exam: - tmp.exam = None - must_save = True - - if tmp.lesson != lesson: - tmp.lesson = lesson - must_save = True - - if lesson.token != token: - lesson.token = token - lesson.save() - - if must_save: tmp.save() - - if lesson == self.material: - self.token = tmp.token - self.materials.append(tmp.id) - sort += 1 - - for homework in Homework.objects.filter(theme=theme): - must_save = False - try: - token = '{0}#{1}'.format(self.course.id, sort) - tmp = CourseMap.objects.get(token=token) - except CourseMap.DoesNotExist: - tmp = CourseMap.objects.create(homework=homework, sort=sort, course=self.course) - self.append_in_price(tmp) - - if tmp.homework != homework: - tmp.homework = homework - must_save = True - - if tmp.exam: - tmp.exam = None - must_save = True - - if tmp.lesson: - tmp.lesson = None - must_save = True - - if homework.token != token: - homework.token = token - homework.save() - - if must_save: tmp.save() - - if homework == self.material: - self.token = tmp.token - - self.materials.append(tmp.id) - sort += 1 - - for exam in Exam.objects.filter(theme=theme): - must_save = False - try: - token = '{0}#{1}'.format(self.course.id, sort) - tmp = CourseMap.objects.get(token=token) - except CourseMap.DoesNotExist: - tmp = CourseMap.objects.create(exam=exam, sort=sort, course=self.course) - self.append_in_price(tmp) - - if tmp.exam != exam: - tmp.exam = exam - must_save = True - - if tmp.homework: - tmp.homework = None - must_save = True - - if tmp.lesson: - tmp.lesson = None - must_save = True - - if exam.token != token: - exam.token = token - exam.save() - - if must_save: tmp.save() - - if exam == self.material: - self.token = tmp.token - self.materials.append(tmp.id) - sort += 1 - - if sort != CourseMap.objects.filter(course=self.course).count(): - CourseMap.objects.filter(course=self.course).exclude(id__in=self.materials).delete() - - def course_switcher(self): - # Блокировка курса на время обработки - if self.course_public: - if self.course.public: - self.course.public = False - else: - self.course.public = True - self.course.save() - - def main(self): - self.course_switcher() - ## - self.rebuild_map() - ## - self.course_switcher() - return self.token if self.material else None # Вернуть токен для материала если он есть \ No newline at end of file diff --git a/templates/profile.html b/templates/profile.html index 2f6e085..c4e5c17 100644 --- a/templates/profile.html +++ b/templates/profile.html @@ -2,6 +2,10 @@ {% load static %} {% block page_title %}Профиль{% endblock %} {% block title %}{% if in_user %}{{ in_user.get_short_name }}{% else %}{{ request.user.get_short_name }}{% endif %}{% endblock %} + + + + {% block head %} {% endblock %}