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 %}