from django import template
from django.utils.datastructures import SortedDict
-from ..models import Section
+from ..models import Lesson, Section
+from librarian.dcparser import WLURI, Person
register = template.Library()
"object_list": Section.objects.all()
}
-@register.inclusion_tag("catalogue/snippets/chosen_topics.html")
-def catalogue_chosen_topics():
- return {
- }
-
@register.inclusion_tag("catalogue/snippets/section_box.html")
def section_box(section):
lessons = SortedDict()
for lesson in section.lesson_set.all():
if lesson.level not in lessons:
- lessons[lesson.level] = SortedDict()
- if lesson.depth not in lessons[lesson.level]:
- lessons[lesson.level][lesson.depth] = []
- lessons[lesson.level][lesson.depth].append(lesson)
+ newdict = SortedDict()
+ newdict['synthetic'] = []
+ newdict['course'] = []
+ lessons[lesson.level] = newdict
+ if lesson.type not in lessons[lesson.level]:
+ lessons[lesson.level][lesson.type] = []
+ lessons[lesson.level][lesson.type].append(lesson)
return {
+ "section": section,
"lessons": lessons,
}
+@register.inclusion_tag("catalogue/snippets/lesson_nav.html")
+def lesson_nav(lesson):
+ if lesson.type == 'course':
+ root = lesson.section
+ siblings = root.lesson_set.filter(type='course', level=lesson.level)
+ mark_level = False
+ else:
+ root = None
+ siblings = Lesson.objects.filter(type=lesson.type)
+ mark_level = True
+ return {
+ "lesson": lesson,
+ "root": root,
+ "siblings": siblings,
+ "mark_level": mark_level
+ }
+
+@register.inclusion_tag("catalogue/snippets/lesson_link.html")
+def lesson_link(uri):
+ try:
+ return {'lesson': Lesson.objects.get(slug=WLURI(uri).slug)}
+ except Lesson.DoesNotExist:
+ return {}
+
+@register.filter
+def person_list(persons):
+ return u", ".join(Person.from_text(p).readable() for p in persons)
+
# FIXME: Move to fnpdjango
import feedparser