From a28fe1c5e02f952b76bf9b0c3afadfc1e3daee23 Mon Sep 17 00:00:00 2001 From: Fabio Caccamo Date: Wed, 29 Mar 2017 18:57:01 +0200 Subject: [PATCH] Improved Theme.get_active_theme method --- admin_interface/models.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/admin_interface/models.py b/admin_interface/models.py index 811ee4f..5e33509 100644 --- a/admin_interface/models.py +++ b/admin_interface/models.py @@ -26,8 +26,10 @@ class Theme(models.Model): @staticmethod def get_active_theme(): + objs_active_qs = Theme.objects.filter( active = True ) + #get or create default theme and enforce default logo if deleted - default_obj_active = (Theme.objects.filter( active = True ).count() == 0) + default_obj_active = (objs_active_qs.count() == 0) default_obj, default_obj_created = Theme.objects.get_or_create(pk = '1', defaults = { 'active':default_obj_active }) if not default_obj_created and default_obj_active: @@ -36,10 +38,12 @@ class Theme(models.Model): if not default_obj.logo: default_obj.set_default_logo() - objs_active_count = Theme.objects.filter( active = True ).count() + obj = objs_active_qs.last() + objs_active_count = objs_active_qs.count() + + if objs_active_count > 1: + obj.set_active() - obj = Theme.objects.filter( active = True ).last() - obj.set_active() return obj