From e5791341522dd10833ae26aa6230a6436fb5d296 Mon Sep 17 00:00:00 2001 From: Fabio Caccamo Date: Wed, 31 Jan 2018 12:24:08 +0100 Subject: [PATCH] Added enviroment display and customization --- admin_interface/admin.py | 7 +++ .../migrations/0009_add_enviroment.py | 25 ++++++++ admin_interface/models.py | 13 ++++ .../templates/admin/base_site.html | 5 ++ .../admin_interface/css/admin-interface.css | 61 +++++++++++++++++++ 5 files changed, 111 insertions(+) create mode 100644 admin_interface/migrations/0009_add_enviroment.py diff --git a/admin_interface/admin.py b/admin_interface/admin.py index 8f6d212..ad83b26 100644 --- a/admin_interface/admin.py +++ b/admin_interface/admin.py @@ -15,6 +15,13 @@ class ThemeAdmin(admin.ModelAdmin): 'classes': ('wide', ), 'fields': ('name', 'active', ) }), + ('Enviroment', { + 'classes': ('wide', ), + 'fields': ( + 'env', + 'env_visible', + ) + }), ('Logo', { 'classes': ('wide', ), 'fields': ( diff --git a/admin_interface/migrations/0009_add_enviroment.py b/admin_interface/migrations/0009_add_enviroment.py new file mode 100644 index 0000000..5cdb129 --- /dev/null +++ b/admin_interface/migrations/0009_add_enviroment.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11 on 2018-01-31 11:00 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('admin_interface', '0008_change_related_modal_background_opacity_type'), + ] + + operations = [ + migrations.AddField( + model_name='theme', + name='env', + field=models.CharField(choices=[('development', 'Development'), ('testing', 'Testing'), ('staging', 'Staging'), ('production', 'Production')], default='development', max_length=50, verbose_name='enviroment'), + ), + migrations.AddField( + model_name='theme', + name='env_visible', + field=models.BooleanField(default=True, verbose_name='visible'), + ), + ] diff --git a/admin_interface/models.py b/admin_interface/models.py index fb744c4..122ebbf 100644 --- a/admin_interface/models.py +++ b/admin_interface/models.py @@ -73,6 +73,19 @@ class Theme(models.Model): upload_to='admin-interface/favicon/', blank=True, help_text='(.ico|.png|.gif - 16x16|32x32 px)', verbose_name='favicon') + env_choices = ( + ('development', 'Development', ), + ('testing', 'Testing', ), + ('staging', 'Staging', ), + ('production', 'Production', ), + ) + env = models.CharField( + max_length=50, + choices=env_choices, + default='development', verbose_name='enviroment') + env_visible = models.BooleanField( + default=True, verbose_name='visible') + css_header_background_color = ColorField( blank=True, default='#0C4B33', help_text='#0C4B33', max_length=10, verbose_name='background color') diff --git a/admin_interface/templates/admin/base_site.html b/admin_interface/templates/admin/base_site.html index 2cee31a..fc0062d 100644 --- a/admin_interface/templates/admin/base_site.html +++ b/admin_interface/templates/admin/base_site.html @@ -64,4 +64,9 @@ https://github.com/fabiocaccamo/django-admin-interface {% if theme.title %}{% trans theme.title %}{% else %}{% trans 'Django administration' %}{% endif %} {% endif %} +{% endblock %} + +{% block welcome-msg %} +{% get_admin_interface_theme as theme %} +{% if theme.env_visible %} - {% 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 0c60d10..8796118 100644 --- a/admin_interface/templates/admin_interface/css/admin-interface.css +++ b/admin_interface/templates/admin_interface/css/admin-interface.css @@ -3,6 +3,58 @@ color:{{ theme.css_header_text_color }}; } +.admin-interface .enviroment-label { +} + +.admin-interface .enviroment-label::before { + content: ""; + display: inline-block; + width: 8px; + height: 8px; + background-color: #CCCCCC; + border-radius: 100%; + margin-right: 6px; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; +} + +.admin-interface .enviroment-label.development::before { + background-color: #e74c3c; +} + +.admin-interface .enviroment-label.testing::before { + background-color: #e67e22; +} + +.admin-interface .enviroment-label.staging::before { + background-color: #f1c40f; +} + +.admin-interface .enviroment-label.production::before { + background-color: #2ecc71; +} + +.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"; +} + .admin-interface #branding h1 { color:{{ theme.title_color }}; } @@ -15,6 +67,15 @@ background-image: url("data:image/svg+xml;utf8,"); } +.admin-interface #user-tools br { + display: none; +} +@media (max-width: 768px){ + .admin-interface #user-tools br { + display: block; + } +} + .admin-interface #header #user-tools a { color:{{ theme.css_header_link_color }}; }