add lesson stubs
[edumed.git] / catalogue / templatetags / catalogue_tags.py
index fd1fc62..c642f18 100755 (executable)
@@ -8,8 +8,12 @@ register = template.Library()
 
 @register.inclusion_tag("catalogue/snippets/carousel.html")
 def catalogue_carousel():
-    return {
-    }
+    lessons_count = Lesson.objects.filter(type__in=('course', 'synthetic')).count()
+    if 1 < lessons_count % 10 < 5 and lessons_count / 10 % 10 != 1:
+        lessons_desc = u'kompletne lekcje'
+    else:
+        lessons_desc = u'kompletnych lekcji'
+    return locals()
 
 @register.inclusion_tag("catalogue/snippets/section_buttons.html")
 def catalogue_section_buttons():
@@ -20,7 +24,16 @@ def catalogue_section_buttons():
 @register.inclusion_tag("catalogue/snippets/section_box.html")
 def section_box(section):
     lessons = SortedDict()
-    for lesson in section.lesson_set.all():
+    lesson_lists = [alist for alist in [
+        list(section.lesson_set.all()),
+        list(section.lessonstub_set.all())
+    ] if alist]
+    while lesson_lists:
+        min_index, min_list = min(enumerate(lesson_lists), key=lambda x: x[1][0].order)
+        lesson = min_list.pop(0)
+        if not min_list:
+            lesson_lists.pop(min_index)
+
         if lesson.level not in lessons:
             newdict = SortedDict()
             newdict['synthetic'] = []
@@ -30,6 +43,7 @@ def section_box(section):
             lessons[lesson.level][lesson.type] = []
         lessons[lesson.level][lesson.type].append(lesson)
     return {
+        "section": section,
         "lessons": lessons,
     }
 
@@ -37,7 +51,7 @@ def section_box(section):
 def lesson_nav(lesson):
     if lesson.type == 'course':
         root = lesson.section
-        siblings = root.lesson_set.filter(type='course', level=lesson.level)
+        siblings = Lesson.objects.filter(type='course', level=lesson.level, section=root)
         mark_level = False
     else:
         root = None