X-Git-Url: https://git.mdrn.pl/edumed.git/blobdiff_plain/5d79e48732565dad23a8592eeebc8741972ef5cc..94e3d1b327655f92b3ea314cc581c707728e1acd:/curriculum/templatetags/curriculum_tags.py diff --git a/curriculum/templatetags/curriculum_tags.py b/curriculum/templatetags/curriculum_tags.py index 7757150..9525aec 100755 --- a/curriculum/templatetags/curriculum_tags.py +++ b/curriculum/templatetags/curriculum_tags.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- from django import template from django.utils.datastructures import SortedDict from ..models import Competence, Curriculum, CurriculumCourse @@ -11,23 +12,27 @@ 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): +def curriculum(identifiers, new=False): + # shouldn't be needed, but is + identifiers = [id for id in identifiers if id] try: currs = [Curriculum.objects.get(identifier__iexact=identifier.replace(' ', '')) - for identifier in identifiers] + for identifier in identifiers] except Curriculum.DoesNotExist: return {'identifiers': identifiers} currset = SortedDict() for curr in currs: - k = curr.course, curr.level + k = curr.course, curr.level.verbose if k not in currset: currset[k] = SortedDict() typename = Curriculum.TYPES[curr.type] @@ -37,6 +42,7 @@ def curriculum(identifiers): return { 'currset': currset, + 'new': new, } @@ -45,6 +51,7 @@ def url_for_level(comp, level): try: return comp.url_for_level(level) except: + # WTF return comp.get_absolute_url() @@ -65,16 +72,20 @@ def course_box(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 = [] - for l in Lesson.curriculum_courses.through.objects.all().select_related('lesson__level', 'curriculumcourse').order_by( - 'lesson__level', 'curriculumcourse'): + 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