From a026d838f72149884c6bd70e1b8a3768daf9a337 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Wed, 11 Feb 2015 18:41:36 +0100 Subject: [PATCH] Explicit secondary ordering of categories --- src/pretixbase/models.py | 2 +- src/pretixpresale/views/event.py | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/pretixbase/models.py b/src/pretixbase/models.py index 1f67e8f49..756a99292 100644 --- a/src/pretixbase/models.py +++ b/src/pretixbase/models.py @@ -429,7 +429,7 @@ class ItemCategory(Versionable): class Meta: verbose_name = _("Item category") verbose_name_plural = _("Item categories") - ordering = ('position',) + ordering = ('position', 'id') def __str__(self): return self.name diff --git a/src/pretixpresale/views/event.py b/src/pretixpresale/views/event.py index dca6ebf88..12198a4e5 100644 --- a/src/pretixpresale/views/event.py +++ b/src/pretixpresale/views/event.py @@ -28,7 +28,8 @@ class EventIndex(EventViewMixin, TemplateView): # Regroup those by category context['items_by_category'] = sorted([ + # a group is a tuple of a category and a list of items (cat, [i for i in items if i.category_id == cat.identity]) - for cat in set([i.category for i in items]) - ], key=lambda group: group[0].position) + for cat in set([i.category for i in items]) # insert categories into a set for uniqueness + ], key=lambda group: (group[0].position, group[0].pk)) # a set is unsorted, so sort again by category return context