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 }};
}