From 63a53a947dfa83a929a1bf2a8e730b3a36d8b5b3 Mon Sep 17 00:00:00 2001
From: Todd Dembrey <todd.dembrey@torchbox.com>
Date: Fri, 19 Jan 2018 12:53:11 +0000
Subject: [PATCH] Make the ordering consistent across backend and frontend

---
 opentech/public/projects/models.py  | 2 +-
 opentech/public/projects/widgets.py | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/opentech/public/projects/models.py b/opentech/public/projects/models.py
index 9dc4f6dac..e2a2b8307 100644
--- a/opentech/public/projects/models.py
+++ b/opentech/public/projects/models.py
@@ -135,7 +135,7 @@ class ProjectPage(FundingMixin, BasePage):
     def category_options(self):
         categories = json.loads(self.categories)
         options = [int(id) for options in categories.values() for id in options]
-        return Option.objects.select_related().filter(id__in=options).order_by('category')
+        return Option.objects.select_related().filter(id__in=options).order_by('category_id', 'sort_order')
 
 
 class ProjectIndexPage(BasePage):
diff --git a/opentech/public/projects/widgets.py b/opentech/public/projects/widgets.py
index b91bfcbe2..8b0b2c2b1 100644
--- a/opentech/public/projects/widgets.py
+++ b/opentech/public/projects/widgets.py
@@ -21,7 +21,7 @@ class LazyWidgets:
         self.widget = widget
 
     def __iter__(self):
-        for obj in self.model.objects.all():
+        for obj in self.model.objects.order_by('id'):
             yield self.widget(
                 attrs={'id': obj.id, 'label_tag': obj.name},
                 choices=LazyChoices(obj.options, ['id', 'value']),
-- 
GitLab