diff --git a/src/pretix/base/models/fields.py b/src/pretix/base/models/fields.py index 67c782fc92..76852b6b4b 100644 --- a/src/pretix/base/models/fields.py +++ b/src/pretix/base/models/fields.py @@ -37,7 +37,7 @@ class MultiStringField(TextField): def get_prep_lookup(self, lookup_type, value): # NOQA raise TypeError('Lookups on multi strings are currently not supported.') - def from_db_value(self, value, expression, connection, context): + def from_db_value(self, value, expression, connection): if value: return [v for v in value.split(DELIMITER) if v] else: diff --git a/src/pretix/base/services/invoices.py b/src/pretix/base/services/invoices.py index f765a20c71..a9f1b9464a 100644 --- a/src/pretix/base/services/invoices.py +++ b/src/pretix/base/services/invoices.py @@ -120,7 +120,7 @@ def build_invoice(invoice: Invoice) -> Invoice: positions = list( invoice.order.positions.select_related('addon_to', 'item', 'tax_rule', 'subevent', 'variation').annotate( addon_c=Count('addons') - ) + ).order_by('positionid', 'id') ) reverse_charge = False diff --git a/src/pretix/base/templates/400.html b/src/pretix/base/templates/400.html index a86a2d3f1d..6eadd1a705 100644 --- a/src/pretix/base/templates/400.html +++ b/src/pretix/base/templates/400.html @@ -1,6 +1,6 @@ {% extends "error.html" %} {% load i18n %} -{% load staticfiles %} +{% load static %} {% block title %}{% trans "Bad Request" %}{% endblock %} {% block content %} diff --git a/src/pretix/base/templates/403.html b/src/pretix/base/templates/403.html index 28df94c6b0..edadd07a93 100644 --- a/src/pretix/base/templates/403.html +++ b/src/pretix/base/templates/403.html @@ -1,6 +1,6 @@ {% extends "error.html" %} {% load i18n %} -{% load staticfiles %} +{% load static %} {% block title %}{% trans "Permission denied" %}{% endblock %} {% block content %} diff --git a/src/pretix/base/templates/404.html b/src/pretix/base/templates/404.html index b157a58723..762b9b4470 100644 --- a/src/pretix/base/templates/404.html +++ b/src/pretix/base/templates/404.html @@ -1,6 +1,6 @@ {% extends "error.html" %} {% load i18n %} -{% load staticfiles %} +{% load static %} {% block title %}{% trans "Not found" %}{% endblock %} {% block content %} diff --git a/src/pretix/base/templates/500.html b/src/pretix/base/templates/500.html index c99d6ce459..f8b01ed13c 100644 --- a/src/pretix/base/templates/500.html +++ b/src/pretix/base/templates/500.html @@ -1,6 +1,6 @@ {% extends "error.html" %} {% load i18n %} -{% load staticfiles %} +{% load static %} {% block title %}{% trans "Internal Server Error" %}{% endblock %} {% block content %} diff --git a/src/pretix/base/templates/csrffail.html b/src/pretix/base/templates/csrffail.html index bdd8642a6f..7710effc1f 100644 --- a/src/pretix/base/templates/csrffail.html +++ b/src/pretix/base/templates/csrffail.html @@ -1,6 +1,6 @@ {% extends "error.html" %} {% load i18n %} -{% load staticfiles %} +{% load static %} {% block title %}{% trans "Verification failed" %}{% endblock %} {% block content %} diff --git a/src/pretix/base/templates/error.html b/src/pretix/base/templates/error.html index fcb1f223cc..ad1e120a77 100644 --- a/src/pretix/base/templates/error.html +++ b/src/pretix/base/templates/error.html @@ -1,6 +1,6 @@ {% load compress %} {% load i18n %} -{% load staticfiles %} +{% load static %} diff --git a/src/pretix/control/templates/pretixcontrol/auth/base.html b/src/pretix/control/templates/pretixcontrol/auth/base.html index 4a55d8a84c..6f27cf29e7 100644 --- a/src/pretix/control/templates/pretixcontrol/auth/base.html +++ b/src/pretix/control/templates/pretixcontrol/auth/base.html @@ -1,6 +1,6 @@ {% load compress %} {% load i18n %} -{% load staticfiles %} +{% load static %} diff --git a/src/pretix/control/templates/pretixcontrol/organizers/device_connect.html b/src/pretix/control/templates/pretixcontrol/organizers/device_connect.html index c7ce67ff2e..ee91f73d1d 100644 --- a/src/pretix/control/templates/pretixcontrol/organizers/device_connect.html +++ b/src/pretix/control/templates/pretixcontrol/organizers/device_connect.html @@ -1,6 +1,6 @@ {% extends "pretixcontrol/organizers/base.html" %} {% load i18n %} -{% load staticfiles %} +{% load static %} {% load bootstrap3 %} {% block inner %}

{% trans "Connect to device:" %} {{ device.name }}

diff --git a/src/pretix/control/views/item.py b/src/pretix/control/views/item.py index 851848c3a3..baddaa4e6c 100644 --- a/src/pretix/control/views/item.py +++ b/src/pretix/control/views/item.py @@ -49,7 +49,9 @@ class ItemList(ListView): event=self.request.event ).annotate( var_count=Count('variations') - ).prefetch_related("category") + ).prefetch_related("category").order_by( + 'category__position', 'category', 'position' + ) def item_move(request, item, up=True): diff --git a/src/requirements/dev.txt b/src/requirements/dev.txt index e1937fe86e..7c6b7422d0 100644 --- a/src/requirements/dev.txt +++ b/src/requirements/dev.txt @@ -7,15 +7,16 @@ pep8-naming flake8==3.7.* codecov coverage -pytest==3.6.* +pytest==4.4.* pytest-django -pytest-xdist==1.27.* isort -pytest-rerunfailures==4.* -pytest-mock==1.6.* -pytest-cache -pytest-sugar +pytest-rerunfailures==7.* +pytest-mock==1.10.* responses potypo freezegun +# Not really required, just nice to have +pytest-xdist==1.28.* +pytest-cache +pytest-sugar diff --git a/src/setup.cfg b/src/setup.cfg index 5873633d91..bc3753c560 100644 --- a/src/setup.cfg +++ b/src/setup.cfg @@ -18,6 +18,9 @@ skip = make_testdata.py,wsgi.py,bootstrap,celery_app.py,pretix/settings.py,tests [tool:pytest] DJANGO_SETTINGS_MODULE=tests.settings addopts =--reruns 3 -rw +filterwarnings = + ignore:The 'warn' method is deprecated:DeprecationWarning + ignore:django.contrib.staticfiles.templatetags.static:DeprecationWarning [coverage:run] source = pretix diff --git a/src/setup.py b/src/setup.py index 3f0b3ea9fe..0bf1b73036 100644 --- a/src/setup.py +++ b/src/setup.py @@ -144,7 +144,7 @@ setup( ], extras_require={ 'dev': [ - 'django-debug-toolbar==1.1111', + 'django-debug-toolbar==1.11', 'sqlparse==0.2.1', 'pycodestyle==2.5.*', 'pyflakes==2.1.*', @@ -152,13 +152,14 @@ setup( 'pep8-naming', 'coveralls', 'coverage', - 'pytest==3.6.*', + 'pytest==4.4.*', 'pytest-django', - 'pytest-xdist==1.27.*', + 'pytest-xdist==1.28.*', 'isort', - 'pytest-mock==1.6.*', - 'pytest-rerunfailures', + 'pytest-mock==1.10.*', + 'pytest-rerunfailures==7.*', 'responses', + 'potypo', 'freezegun', ], 'memcached': ['pylibmc'],