X-Git-Url: https://git.mdrn.pl/edumed.git/blobdiff_plain/0fb18b38f2379e67d0098658eb2822c11a341d25..c047053dab0ec7d125fd5b2540a01045e64dd3fa:/curriculum/templatetags/curriculum_tags.py diff --git a/curriculum/templatetags/curriculum_tags.py b/curriculum/templatetags/curriculum_tags.py index f772485..cc37d0e 100755 --- a/curriculum/templatetags/curriculum_tags.py +++ b/curriculum/templatetags/curriculum_tags.py @@ -1,25 +1,30 @@ +# -*- coding: utf-8 -*- from django import template from django.utils.datastructures import SortedDict from ..models import Competence, Curriculum, CurriculumCourse +from catalogue.models import Lesson register = template.Library() @register.inclusion_tag("curriculum/snippets/competence.html") -def competence(texts): +def competence(texts, level): try: comps = [Competence.from_text(text) for text in texts] except: + # WTF return {'texts': texts} return { 'comps': comps, + 'level': level, } + @register.inclusion_tag("curriculum/snippets/curriculum.html") def curriculum(identifiers): try: - currs = [Curriculum.objects.get(identifier=identifier) - for identifier in identifiers] + currs = [Curriculum.objects.get(identifier__iexact=identifier.replace(' ', '')) + for identifier in identifiers] except Curriculum.DoesNotExist: return {'identifiers': identifiers} @@ -41,8 +46,9 @@ def curriculum(identifiers): @register.filter def url_for_level(comp, level): try: - return comp.for_level(level).get_absolute_url() + return comp.url_for_level(level) except: + # WTF return comp.get_absolute_url() @@ -59,16 +65,32 @@ def course_box(course): lessons[lesson.level][lesson.type] = [] lessons[lesson.level][lesson.type].append(lesson) return { + "course": course, "lessons": lessons, } + @register.inclusion_tag("curriculum/snippets/course_boxes.html") def course_boxes(): return {'object_list': CurriculumCourse.objects.all()} + @register.inclusion_tag("curriculum/snippets/course_boxes_toc.html") def course_boxes_toc(accusative=False): + last = None, None + object_list = [] + lessons = Lesson.curriculum_courses.through.objects\ + .select_related('lesson__level', 'curriculumcourse')\ + .order_by('lesson__level', 'curriculumcourse') + for l in lessons: + level, course = l.lesson.level, l.curriculumcourse + if (level, course) == last: + continue + if level != last[0]: + object_list.append((level, [])) + object_list[-1][1].append(course) + last = (level, course) return { - 'object_list': CurriculumCourse.objects.all(), + 'object_list': object_list, 'accusative': accusative, }