Правка

remotes/origin/pm_task_31703
Baryshnikov Nikolay 9 years ago
parent 01f7521d98
commit 3bb880a481
  1. 2
      _utils/open_lesson.py
  2. 136
      courses/models.py
  3. 136
      lms/CourseBuilder.py
  4. 4
      templates/profile.html

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

@ -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"></iframe>'.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 # Вернуть токен для материала если он есть

@ -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 # Вернуть токен для материала если он есть

@ -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 %}
<meta name="description" content="{% block head_description1 %}{{ in_user.in_role }} - {{ in_user.get_full_name }}{% endblock %}" />
<meta property="og:title" content="{% block head_title %}{{ in_user.in_role }} - {{ in_user.get_full_name }}{% endblock %}" />
<meta property="og:description" content="{% block head_description2 %}{{ NAME }}{% endblock %}" />
<meta property="og:image" content="{% block head_image %}{{ in_user.get_image_url }}{% endblock %}" />
{% block head %}
<link rel="stylesheet" href="/static/css/pie_chart.css" type="text/css" />
{% endblock %}

Loading…
Cancel
Save