From f14c12546d53620abb3ebe3421698c7d6f1fb146 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Sat, 6 Apr 2019 20:20:32 +0200 Subject: [PATCH] Provide explicit orderings to all models used in paginated queries --- src/pretix/api/models.py | 3 +++ src/pretix/base/models/auth.py | 1 + src/pretix/base/models/tax.py | 3 +++ src/pretix/plugins/badges/models.py | 3 +++ src/pretix/plugins/banktransfer/models.py | 4 ++++ src/pretix/plugins/ticketoutputpdf/models.py | 1 + 6 files changed, 15 insertions(+) diff --git a/src/pretix/api/models.py b/src/pretix/api/models.py index 7f63b9e5e3..87e23febb9 100644 --- a/src/pretix/api/models.py +++ b/src/pretix/api/models.py @@ -77,6 +77,9 @@ class WebHook(models.Model): all_events = models.BooleanField(default=True, verbose_name=_("All events (including newly created ones)")) limit_events = models.ManyToManyField('pretixbase.Event', verbose_name=_("Limit to events"), blank=True) + class Meta: + ordering = ('id',) + @property def action_types(self): return [ diff --git a/src/pretix/base/models/auth.py b/src/pretix/base/models/auth.py index d2263da56d..414f895d6b 100644 --- a/src/pretix/base/models/auth.py +++ b/src/pretix/base/models/auth.py @@ -111,6 +111,7 @@ class User(AbstractBaseUser, PermissionsMixin, LoggingMixin): class Meta: verbose_name = _("User") verbose_name_plural = _("Users") + ordering = ('email',) def save(self, *args, **kwargs): self.email = self.email.lower() diff --git a/src/pretix/base/models/tax.py b/src/pretix/base/models/tax.py index 76f4a9db51..303873dab1 100644 --- a/src/pretix/base/models/tax.py +++ b/src/pretix/base/models/tax.py @@ -118,6 +118,9 @@ class TaxRule(LoggedModel): ) custom_rules = models.TextField(blank=True, null=True) + class Meta: + ordering = ('event', 'rate', 'id') + def allow_delete(self): from pretix.base.models.orders import OrderFee, OrderPosition diff --git a/src/pretix/plugins/badges/models.py b/src/pretix/plugins/badges/models.py index dadce25ebe..57f32daee5 100644 --- a/src/pretix/plugins/badges/models.py +++ b/src/pretix/plugins/badges/models.py @@ -52,3 +52,6 @@ class BadgeItem(models.Model): on_delete=models.CASCADE) layout = models.ForeignKey('BadgeLayout', on_delete=models.CASCADE, related_name='item_assignments', null=True, blank=True) + + class Meta: + ordering = ('id',) diff --git a/src/pretix/plugins/banktransfer/models.py b/src/pretix/plugins/banktransfer/models.py index ed1b239ae2..23fde52454 100644 --- a/src/pretix/plugins/banktransfer/models.py +++ b/src/pretix/plugins/banktransfer/models.py @@ -21,6 +21,9 @@ class BankImportJob(models.Model): created = models.DateTimeField(auto_now_add=True) state = models.CharField(max_length=32, choices=STATES, default=STATE_PENDING) + class Meta: + ordering = ('id',) + @property def owner_kwargs(self): if self.event: @@ -76,3 +79,4 @@ class BankTransaction(models.Model): class Meta: unique_together = ('event', 'organizer', 'checksum') + ordering = ('date', 'id') diff --git a/src/pretix/plugins/ticketoutputpdf/models.py b/src/pretix/plugins/ticketoutputpdf/models.py index c8a9ecc573..4ed9a7172a 100644 --- a/src/pretix/plugins/ticketoutputpdf/models.py +++ b/src/pretix/plugins/ticketoutputpdf/models.py @@ -73,3 +73,4 @@ class TicketLayoutItem(models.Model): class Meta: unique_together = (('item', 'layout', 'sales_channel'),) + ordering = ("id",)