calendarium.templatetags.calendarium_tags: 16 total statements, 100.0% covered

Generated: Thu 2013-05-02 12:21 SGT

Source file: /Users/martin/Repos/django-calendarium/calendarium/templatetags/calendarium_tags.py

Stats: 12 executed, 0 missed, 4 excluded, 22 ignored

  1. """Templatetags for the ``calendarium`` project."""
  2. from django.core.urlresolvers import reverse
  3. from django import template
  4. from django.utils.timezone import datetime, now, timedelta, utc
  5. from ..models import Event, EventCategory
  6. register = template.Library()
  7. @register.filter
  8. def get_week_URL(date, day=0):
  9. """
  10. Returns the week view URL for a given date.
  11. :param date: A date instance.
  12. :param day: Day number in a month.
  13. """
  14. if day < 1:
  15. day = 1
  16. date = datetime(year=date.year, month=date.month, day=day, tzinfo=utc)
  17. return reverse('calendar_week', kwargs={'year': date.isocalendar()[0],
  18. 'week': date.isocalendar()[1]})
  19. @register.inclusion_tag('calendarium/upcoming_events.html')
  20. def render_upcoming_events(event_amount=5, category=None):
  21. """Template tag to render a list of upcoming events."""
  22. if not isinstance(category, EventCategory):
  23. category = None
  24. return {
  25. 'occurrences': Event.objects.get_occurrences(
  26. now(),
  27. now() + timedelta(days=100),
  28. category,
  29. )[:event_amount]
  30. }