Upgrade to Django 3.0 and other dependencies (#1568)

* Upgrade Django to 3.0 and other dependencies to recent versions

* Fix otp version contsraint

* Remove six dependency

* Resolve some warnings

* Fix failing tests

* Update django-countries

* Resolve all RemovedInDjango31Warnings in test suite

* Run isort

* Fix import

* Update PostgreSQL version on travis
This commit is contained in:
Raphael Michel
2020-03-23 15:02:20 +01:00
committed by GitHub
parent 7e9c9beace
commit af23d6e4bf
174 changed files with 380 additions and 380 deletions

View File

@@ -18,7 +18,7 @@ from django.template import Context, Engine
from django.template.loader import get_template
from django.utils.formats import date_format
from django.utils.timezone import now
from django.utils.translation import get_language, pgettext, ugettext
from django.utils.translation import get_language, gettext, pgettext
from django.utils.translation.trans_real import DjangoTranslation
from django.views import View
from django.views.decorators.cache import cache_page
@@ -27,7 +27,7 @@ from django.views.decorators.http import condition
from django.views.i18n import (
JavaScriptCatalog, get_formats, js_catalog_template,
)
from lxml import etree
from lxml import html
from pretix.base.i18n import language
from pretix.base.models import CartPosition, Event, Quota, SubEvent, Voucher
@@ -74,7 +74,7 @@ def widget_css(request, **kwargs):
return resp
else:
tpl = get_template('pretixpresale/widget_dummy.html')
et = etree.fromstring(tpl.render({})).attrib['href'].replace(settings.STATIC_URL, '')
et = html.fromstring(tpl.render({})).xpath('/html/head/link')[0].attrib['href'].replace(settings.STATIC_URL, '')
f = finders.find(et)
resp = FileResponse(open(f, 'rb'), content_type='text/css')
return resp
@@ -274,7 +274,7 @@ class WidgetAPIProductList(EventListMixin, View):
if not request.event.live:
return self.response({
'error': ugettext('This ticket shop is currently disabled.')
'error': gettext('This ticket shop is currently disabled.')
})
self.subevent = None
@@ -283,14 +283,14 @@ class WidgetAPIProductList(EventListMixin, View):
self.subevent = request.event.subevents.filter(pk=kwargs['subevent'], active=True).first()
if not self.subevent:
return self.response({
'error': ugettext('The selected date does not exist in this event series.')
'error': gettext('The selected date does not exist in this event series.')
})
else:
return self._get_event_list(request, **kwargs)
else:
if 'subevent' in kwargs:
return self.response({
'error': ugettext('This is not an event series.')
'error': gettext('This is not an event series.')
})
return self._get_event_view(request, **kwargs)
@@ -306,28 +306,28 @@ class WidgetAPIProductList(EventListMixin, View):
if ev.presale_is_running and event.settings.event_list_availability and ev.best_availability_state is not None:
if ev.best_availability_state == Quota.AVAILABILITY_OK:
availability['color'] = 'green'
availability['text'] = ugettext('Book now')
availability['text'] = gettext('Book now')
elif event.settings.waiting_list_enabled and ev.best_availability_state >= 0:
availability['color'] = 'orange'
availability['text'] = ugettext('Waiting list')
availability['text'] = gettext('Waiting list')
elif ev.best_availability_state == Quota.AVAILABILITY_RESERVED:
availability['color'] = 'orange'
availability['text'] = ugettext('Reserved')
availability['text'] = gettext('Reserved')
elif ev.best_availability_state < Quota.AVAILABILITY_RESERVED:
availability['color'] = 'red'
availability['text'] = ugettext('Sold out')
availability['text'] = gettext('Sold out')
elif ev.presale_is_running:
availability['color'] = 'green'
availability['text'] = ugettext('Book now')
availability['text'] = gettext('Book now')
elif ev.presale_has_ended:
availability['color'] = 'red'
availability['text'] = ugettext('Sale over')
availability['text'] = gettext('Sale over')
elif event.settings.presale_start_show_date and ev.presale_start:
availability['color'] = 'orange'
availability['text'] = ugettext('from %(start_date)s') % {'start_date': date_format(ev.presale_start, "SHORT_DATE_FORMAT")}
availability['text'] = gettext('from %(start_date)s') % {'start_date': date_format(ev.presale_start, "SHORT_DATE_FORMAT")}
else:
availability['color'] = 'orange'
availability['text'] = ugettext('Sale soon')
availability['text'] = gettext('Sale soon')
return availability
def _serialize_events(self, ebd):
@@ -442,7 +442,7 @@ class WidgetAPIProductList(EventListMixin, View):
event.min_from.astimezone(tz),
(event.max_fromto or event.max_to or event.max_from).astimezone(tz)
)
avail = {'color': 'none', 'text': ugettext('Event series')}
avail = {'color': 'none', 'text': gettext('Event series')}
else:
dr = event.get_date_range_display(tz) + (
" " + event.get_time_from_display(tz) if event.settings.show_times else ""
@@ -498,14 +498,14 @@ class WidgetAPIProductList(EventListMixin, View):
if request.event.settings.presale_has_ended_text:
data['error'] = str(request.event.settings.presale_has_ended_text)
else:
data['error'] = ugettext('The presale period for this event is over.')
data['error'] = gettext('The presale period for this event is over.')
elif request.event.settings.presale_start_show_date:
data['error'] = ugettext('The presale for this event will start on %(date)s at %(time)s.') % {
data['error'] = gettext('The presale for this event will start on %(date)s at %(time)s.') % {
'date': date_format(ev.presale_start.astimezone(request.event.timezone), "SHORT_DATE_FORMAT"),
'time': date_format(ev.presale_start.astimezone(request.event.timezone), "TIME_FORMAT"),
}
else:
data['error'] = ugettext('The presale for this event has not yet started.')
data['error'] = gettext('The presale for this event has not yet started.')
self.voucher = None
if 'voucher' in request.GET: