Code refactoring
parent
00f60c222d
commit
d29515c4ae
|
|
@ -13,30 +13,35 @@ class Theme(models.Model):
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def post_migrate_handler(sender, **kwargs):
|
def post_migrate_handler(sender, **kwargs):
|
||||||
Theme.get_or_create_default_theme()
|
Theme.get_active_theme()
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def post_delete_handler(instance, **kwargs):
|
def post_delete_handler(instance, **kwargs):
|
||||||
Theme.get_or_create_default_theme()
|
Theme.get_active_theme()
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def post_save_handler(instance, created, **kwargs):
|
def post_save_handler(instance, created, **kwargs):
|
||||||
instance.set_active(instance.active)
|
Theme.get_active_theme()
|
||||||
Theme.get_or_create_default_theme()
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_or_create_default_theme():
|
def get_active_theme():
|
||||||
|
|
||||||
obj_active = (True if len(list(Theme.objects.filter(active = True))) == 0 else False)
|
#get or create default theme and enforce default logo if deleted
|
||||||
obj, obj_created = Theme.objects.get_or_create(pk = '1', defaults = { 'active':obj_active })
|
default_obj_active = (Theme.objects.filter( active = True ).count() == 0)
|
||||||
|
default_obj, default_obj_created = Theme.objects.get_or_create(pk = '1', defaults = { 'active':default_obj_active })
|
||||||
|
|
||||||
if not obj.logo:
|
if not default_obj_created and default_obj_active:
|
||||||
obj.set_default_logo()
|
default_obj.set_active()
|
||||||
|
|
||||||
if not obj_created and obj_active:
|
if not default_obj.logo:
|
||||||
obj.set_active(True)
|
default_obj.set_default_logo()
|
||||||
|
|
||||||
|
objs_active_count = Theme.objects.filter( active = True ).count()
|
||||||
|
|
||||||
|
obj = Theme.objects.filter( active = True ).last()
|
||||||
|
obj.set_active()
|
||||||
|
return obj
|
||||||
|
|
||||||
return (obj, obj_created, )
|
|
||||||
|
|
||||||
name = models.CharField( max_length = 50, default = 'Django' )
|
name = models.CharField( max_length = 50, default = 'Django' )
|
||||||
active = models.BooleanField( default = True )
|
active = models.BooleanField( default = True )
|
||||||
|
|
@ -74,15 +79,13 @@ class Theme(models.Model):
|
||||||
|
|
||||||
list_filter_dropdown = models.BooleanField( default = False )
|
list_filter_dropdown = models.BooleanField( default = False )
|
||||||
|
|
||||||
|
def set_active(self):
|
||||||
|
|
||||||
def set_active(self, value):
|
Theme.objects.exclude( pk = self.pk ).update( active = False )
|
||||||
|
|
||||||
if value:
|
|
||||||
Theme.objects.exclude(pk = self.pk).update(active = False)
|
|
||||||
Theme.objects.filter(pk = self.pk).update(active = True)
|
|
||||||
else:
|
|
||||||
Theme.objects.filter(pk = self.pk).update(active = False)
|
|
||||||
|
|
||||||
|
if not self.active:
|
||||||
|
self.active = True
|
||||||
|
self.save()
|
||||||
|
|
||||||
def set_default_logo(self):
|
def set_default_logo(self):
|
||||||
|
|
||||||
|
|
@ -109,3 +112,4 @@ class Theme(models.Model):
|
||||||
|
|
||||||
post_delete.connect(Theme.post_delete_handler, sender = Theme)
|
post_delete.connect(Theme.post_delete_handler, sender = Theme)
|
||||||
post_save.connect(Theme.post_save_handler, sender = Theme)
|
post_save.connect(Theme.post_save_handler, sender = Theme)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,14 +11,5 @@ register = template.Library()
|
||||||
@register.assignment_tag(takes_context = True)
|
@register.assignment_tag(takes_context = True)
|
||||||
def get_admin_interface_theme(context):
|
def get_admin_interface_theme(context):
|
||||||
|
|
||||||
obj_qs = Theme.objects.filter(active = True)[:1]
|
return Theme.get_active_theme()
|
||||||
obj_ls = list(obj_qs)
|
|
||||||
obj = None
|
|
||||||
|
|
||||||
if len(obj_ls):
|
|
||||||
obj = obj_ls[0]
|
|
||||||
else:
|
|
||||||
obj = Theme.get_or_create_default_theme()
|
|
||||||
|
|
||||||
return obj
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue