Add compat function for date.fromisocalendar for Python 3.6-3.7

This commit is contained in:
Raphael Michel
2020-10-12 11:30:11 +02:00
parent 3ec15fa529
commit 0105b9642d
3 changed files with 13 additions and 2 deletions

View File

@@ -0,0 +1,9 @@
import datetime
import sys
def date_fromisocalendar(isoyear, isoweek, isoday):
if sys.version_info < (3, 8):
return datetime.datetime.strptime(f'{isoyear}-W{isoweek}-{isoday}', "%G-W%V-%u")
else:
return datetime.datetime.fromisocalendar(isoyear, isoweek, isoday)

View File

@@ -29,6 +29,7 @@ from pretix.base.models.items import (
ItemBundle, SubEventItem, SubEventItemVariation,
)
from pretix.base.services.quotas import QuotaAvailability
from pretix.helpers.compat import date_fromisocalendar
from pretix.multidomain.urlreverse import eventreverse
from pretix.presale.ical import get_ical
from pretix.presale.signals import item_description
@@ -466,7 +467,7 @@ class EventIndex(EventViewMixin, EventListMixin, CartMixin, TemplateView):
) < 2
context['days'] = days_for_template(ebd, week)
context['weeks'] = [
(date.fromisocalendar(self.year, i + 1, 1), date.fromisocalendar(self.year, i + 1, 7))
(date_fromisocalendar(self.year, i + 1, 1), date_fromisocalendar(self.year, i + 1, 7))
for i in range(53 if date(self.year, 12, 31).isocalendar()[1] == 53 else 52)
]
context['years'] = range(now().year - 2, now().year + 3)

View File

@@ -21,6 +21,7 @@ from pretix.base.models import (
Event, EventMetaValue, SubEvent, SubEventMetaValue,
)
from pretix.base.services.quotas import QuotaAvailability
from pretix.helpers.compat import date_fromisocalendar
from pretix.helpers.daterange import daterange
from pretix.helpers.formats.de.formats import WEEK_FORMAT
from pretix.multidomain.urlreverse import eventreverse
@@ -524,7 +525,7 @@ class WeekCalendarView(OrganizerViewMixin, EventListMixin, TemplateView):
ctx['days'] = days_for_template(ebd, week)
ctx['weeks'] = [
(date.fromisocalendar(self.year, i + 1, 1), date.fromisocalendar(self.year, i + 1, 7))
(date_fromisocalendar(self.year, i + 1, 1), date_fromisocalendar(self.year, i + 1, 7))
for i in range(53 if date(self.year, 12, 31).isocalendar()[1] == 53 else 52)
]
ctx['years'] = range(now().year - 2, now().year + 3)