From e58bbbeacfc00c453b25f0c262bc0640f600b430 Mon Sep 17 00:00:00 2001 From: Fabio Caccamo Date: Wed, 20 Mar 2019 12:33:53 +0100 Subject: [PATCH] Added environment options - Fixed #56 --- admin_interface/admin.py | 6 +- .../0011_add_environment_options.py | 59 +++++++++++++++++++ admin_interface/models.py | 45 +++++--------- .../templates/admin/base_site.html | 2 +- .../admin_interface/css/admin-interface.css | 38 +----------- .../templates/admin_interface/favicon.html | 2 +- 6 files changed, 84 insertions(+), 68 deletions(-) create mode 100644 admin_interface/migrations/0011_add_environment_options.py diff --git a/admin_interface/admin.py b/admin_interface/admin.py index 1e0b571..4cad1d2 100644 --- a/admin_interface/admin.py +++ b/admin_interface/admin.py @@ -19,8 +19,10 @@ class ThemeAdmin(admin.ModelAdmin): (_('Environment'), { 'classes': ('wide', ), 'fields': ( - 'env', - 'env_visible', + 'env_name', + 'env_color', + 'env_visible_in_header', + 'env_visible_in_favicon', ) }), (_('Logo'), { diff --git a/admin_interface/migrations/0011_add_environment_options.py b/admin_interface/migrations/0011_add_environment_options.py new file mode 100644 index 0000000..d6b4e31 --- /dev/null +++ b/admin_interface/migrations/0011_add_environment_options.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- + +from __future__ import unicode_literals + +import colorfield.fields + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('admin_interface', '0010_add_localization'), + ] + + operations = [ + migrations.RenameField( + model_name='theme', + old_name='env', + new_name='env_name', + ), + migrations.AlterField( + model_name='theme', + name='env_name', + field=models.CharField( + blank=True, + max_length=50, + verbose_name='name'), + ), + migrations.AddField( + model_name='theme', + name='env_color', + field=colorfield.fields.ColorField( + blank=True, + default='#E74C3C', + help_text='(red: #E74C3C, orange: #E67E22, yellow: #F1C40F, green: #2ECC71, blue: #3498DB)', + max_length=10, + verbose_name='color'), + ), + migrations.RenameField( + model_name='theme', + old_name='env_visible', + new_name='env_visible_in_header', + ), + migrations.AlterField( + model_name='theme', + name='env_visible_in_header', + field=models.BooleanField( + default=True, + verbose_name='visible in header (marker and name)'), + ), + migrations.AddField( + model_name='theme', + name='env_visible_in_favicon', + field=models.BooleanField( + default=True, + verbose_name='visible in favicon (marker)'), + ), + ] diff --git a/admin_interface/models.py b/admin_interface/models.py index 0288c46..43ec872 100644 --- a/admin_interface/models.py +++ b/admin_interface/models.py @@ -67,7 +67,7 @@ class Theme(models.Model): default='#F5DD5D', help_text='#F5DD5D', max_length=10, - verbose_name=_('title color')) + verbose_name=_('color')) title_visible = models.BooleanField( default=True, verbose_name=_('visible')) @@ -82,7 +82,7 @@ class Theme(models.Model): default='#FFFFFF', help_text='#FFFFFF', max_length=10, - verbose_name=_('logo color')) + verbose_name=_('color')) logo_visible = models.BooleanField( default=True, verbose_name=_('visible')) @@ -93,35 +93,22 @@ class Theme(models.Model): help_text=_('(.ico|.png|.gif - 16x16|32x32 px)'), verbose_name=_('favicon')) - envs = ( - 'development', - 'testing', - 'staging', - 'production', - ) - env_choices = ( - (envs[0], _('Development'), ), - (envs[1], _('Testing'), ), - (envs[2], _('Staging'), ), - (envs[3], _('Production'), ), - ) - env = models.CharField( + env_name = models.CharField( + blank=True, max_length=50, - choices=env_choices, - default=env_choices[0][0], - verbose_name=_('environment')) - env_visible = models.BooleanField( + verbose_name=_('name')) + env_color = ColorField( + blank=True, + default='#E74C3C', + help_text=_('(red: #E74C3C, orange: #E67E22, yellow: #F1C40F, green: #2ECC71, blue: #3498DB)'), + max_length=10, + verbose_name=_('color')) + env_visible_in_header = models.BooleanField( default=True, - verbose_name=_('visible')) - env_colors = { - envs[0]: '#e74c3c', - envs[1]: '#e67e22', - envs[2]: '#f1c40f', - envs[3]: '#2ecc71', - } - @property - def env_color(self): - return Theme.env_colors.get(self.env, '') + verbose_name=_('visible in header (marker and name)')) + env_visible_in_favicon = models.BooleanField( + default=True, + verbose_name=_('visible in favicon (marker)')) css_header_background_color = ColorField( blank=True, diff --git a/admin_interface/templates/admin/base_site.html b/admin_interface/templates/admin/base_site.html index 80c97c1..a6394b3 100644 --- a/admin_interface/templates/admin/base_site.html +++ b/admin_interface/templates/admin/base_site.html @@ -64,5 +64,5 @@ https://github.com/fabiocaccamo/django-admin-interface {% block welcome-msg %} {% get_admin_interface_theme as theme %} -{% if theme.env_visible %} - {% endif %}{{ block.super }}
+{% if theme.env_visible_in_header %} - {% endif %}{{ block.super }}
{% endblock %} \ No newline at end of file diff --git a/admin_interface/templates/admin_interface/css/admin-interface.css b/admin_interface/templates/admin_interface/css/admin-interface.css index 4171e6a..1a8122a 100644 --- a/admin_interface/templates/admin_interface/css/admin-interface.css +++ b/admin_interface/templates/admin_interface/css/admin-interface.css @@ -11,7 +11,7 @@ display: inline-block; width: 8px; height: 8px; - background-color: #CCCCCC; + background-color: {{ theme.env_color }}; border-radius: 100%; margin-right: 6px; box-sizing: border-box; @@ -19,44 +19,12 @@ -webkit-box-sizing: border-box; } -.admin-interface .enviroment-label.development::before { - background-color: {{ theme.env_colors.development }}; -} - -.admin-interface .enviroment-label.testing::before { - background-color: {{ theme.env_colors.testing }}; -} - -.admin-interface .enviroment-label.staging::before { - background-color: {{ theme.env_colors.staging }}; -} - -.admin-interface .enviroment-label.production::before { - background-color: {{ theme.env_colors.production }}; -} - .admin-interface .enviroment-label::after { - content: ""; -} - -.admin-interface .enviroment-label.development::after { - content: "development"; -} - -.admin-interface .enviroment-label.testing::after { - content: "testing"; -} - -.admin-interface .enviroment-label.staging::after { - content: "staging"; -} - -.admin-interface .enviroment-label.production::after { - content: "production"; + content: "{{ theme.env_name }}"; } .admin-interface #branding h1 { - color:{{ theme.title_color }}; + color: {{ theme.title_color }}; } .admin-interface #branding h1 .logo.default { diff --git a/admin_interface/templates/admin_interface/favicon.html b/admin_interface/templates/admin_interface/favicon.html index c489157..4a4cf18 100644 --- a/admin_interface/templates/admin_interface/favicon.html +++ b/admin_interface/templates/admin_interface/favicon.html @@ -2,7 +2,7 @@ {% if theme.favicon %} -{% if theme.env_visible %} +{% if theme.env_visible_in_favicon %}