98d516c4b3f02c1c070ade8755695e509d93d4ea
[wolnelektury.git] / src / pdcounter / templatetags / time_tags.py
1 # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
2 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
3 #
4 import datetime
5 import pytz
6 from django.conf import settings
7 from django import template
8 from django.utils import timezone
9
10
11 register = template.Library()
12
13
14 @register.filter
15 def date_to_utc(date, day_end=False):
16     """ Converts a datetime.date to UTC datetime.
17
18     The datetime represents the start (or end) of the given day in
19     the server's timezone.
20     """
21     if day_end:
22         date += datetime.timedelta(1)
23     localtime = datetime.datetime.combine(date, datetime.time(0, 0))
24     return timezone.utc.normalize(
25         pytz.timezone(settings.TIME_ZONE).localize(localtime)
26     )
27
28
29 @register.filter
30 def utc_for_js(dt):
31     return dt.strftime('%Y/%m/%d %H:%M:%S UTC')