Added environment options - Fixed #56
parent
1c2ac2a308
commit
e58bbbeacf
|
|
@ -19,8 +19,10 @@ class ThemeAdmin(admin.ModelAdmin):
|
||||||
(_('Environment'), {
|
(_('Environment'), {
|
||||||
'classes': ('wide', ),
|
'classes': ('wide', ),
|
||||||
'fields': (
|
'fields': (
|
||||||
'env',
|
'env_name',
|
||||||
'env_visible',
|
'env_color',
|
||||||
|
'env_visible_in_header',
|
||||||
|
'env_visible_in_favicon',
|
||||||
)
|
)
|
||||||
}),
|
}),
|
||||||
(_('Logo'), {
|
(_('Logo'), {
|
||||||
|
|
|
||||||
|
|
@ -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)'),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
@ -67,7 +67,7 @@ class Theme(models.Model):
|
||||||
default='#F5DD5D',
|
default='#F5DD5D',
|
||||||
help_text='#F5DD5D',
|
help_text='#F5DD5D',
|
||||||
max_length=10,
|
max_length=10,
|
||||||
verbose_name=_('title color'))
|
verbose_name=_('color'))
|
||||||
title_visible = models.BooleanField(
|
title_visible = models.BooleanField(
|
||||||
default=True,
|
default=True,
|
||||||
verbose_name=_('visible'))
|
verbose_name=_('visible'))
|
||||||
|
|
@ -82,7 +82,7 @@ class Theme(models.Model):
|
||||||
default='#FFFFFF',
|
default='#FFFFFF',
|
||||||
help_text='#FFFFFF',
|
help_text='#FFFFFF',
|
||||||
max_length=10,
|
max_length=10,
|
||||||
verbose_name=_('logo color'))
|
verbose_name=_('color'))
|
||||||
logo_visible = models.BooleanField(
|
logo_visible = models.BooleanField(
|
||||||
default=True,
|
default=True,
|
||||||
verbose_name=_('visible'))
|
verbose_name=_('visible'))
|
||||||
|
|
@ -93,35 +93,22 @@ class Theme(models.Model):
|
||||||
help_text=_('(.ico|.png|.gif - 16x16|32x32 px)'),
|
help_text=_('(.ico|.png|.gif - 16x16|32x32 px)'),
|
||||||
verbose_name=_('favicon'))
|
verbose_name=_('favicon'))
|
||||||
|
|
||||||
envs = (
|
env_name = models.CharField(
|
||||||
'development',
|
blank=True,
|
||||||
'testing',
|
|
||||||
'staging',
|
|
||||||
'production',
|
|
||||||
)
|
|
||||||
env_choices = (
|
|
||||||
(envs[0], _('Development'), ),
|
|
||||||
(envs[1], _('Testing'), ),
|
|
||||||
(envs[2], _('Staging'), ),
|
|
||||||
(envs[3], _('Production'), ),
|
|
||||||
)
|
|
||||||
env = models.CharField(
|
|
||||||
max_length=50,
|
max_length=50,
|
||||||
choices=env_choices,
|
verbose_name=_('name'))
|
||||||
default=env_choices[0][0],
|
env_color = ColorField(
|
||||||
verbose_name=_('environment'))
|
blank=True,
|
||||||
env_visible = models.BooleanField(
|
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,
|
default=True,
|
||||||
verbose_name=_('visible'))
|
verbose_name=_('visible in header (marker and name)'))
|
||||||
env_colors = {
|
env_visible_in_favicon = models.BooleanField(
|
||||||
envs[0]: '#e74c3c',
|
default=True,
|
||||||
envs[1]: '#e67e22',
|
verbose_name=_('visible in favicon (marker)'))
|
||||||
envs[2]: '#f1c40f',
|
|
||||||
envs[3]: '#2ecc71',
|
|
||||||
}
|
|
||||||
@property
|
|
||||||
def env_color(self):
|
|
||||||
return Theme.env_colors.get(self.env, '')
|
|
||||||
|
|
||||||
css_header_background_color = ColorField(
|
css_header_background_color = ColorField(
|
||||||
blank=True,
|
blank=True,
|
||||||
|
|
|
||||||
|
|
@ -64,5 +64,5 @@ https://github.com/fabiocaccamo/django-admin-interface
|
||||||
|
|
||||||
{% block welcome-msg %}
|
{% block welcome-msg %}
|
||||||
{% get_admin_interface_theme as theme %}
|
{% get_admin_interface_theme as theme %}
|
||||||
{% if theme.env_visible %}<span class="enviroment-label {{ theme.env }}"></span> - {% endif %}{{ block.super }}<br>
|
{% if theme.env_visible_in_header %}<span class="enviroment-label {{ theme.env_name }}"></span> - {% endif %}{{ block.super }}<br>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 8px;
|
width: 8px;
|
||||||
height: 8px;
|
height: 8px;
|
||||||
background-color: #CCCCCC;
|
background-color: {{ theme.env_color }};
|
||||||
border-radius: 100%;
|
border-radius: 100%;
|
||||||
margin-right: 6px;
|
margin-right: 6px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
|
@ -19,44 +19,12 @@
|
||||||
-webkit-box-sizing: border-box;
|
-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 {
|
.admin-interface .enviroment-label::after {
|
||||||
content: "";
|
content: "{{ theme.env_name }}";
|
||||||
}
|
|
||||||
|
|
||||||
.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 {
|
.admin-interface #branding h1 {
|
||||||
color:{{ theme.title_color }};
|
color: {{ theme.title_color }};
|
||||||
}
|
}
|
||||||
|
|
||||||
.admin-interface #branding h1 .logo.default {
|
.admin-interface #branding h1 .logo.default {
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
{% if theme.favicon %}
|
{% if theme.favicon %}
|
||||||
<link rel="icon" type="image/x-icon" href="{{ theme.favicon.url }}?v={{ version }}" />
|
<link rel="icon" type="image/x-icon" href="{{ theme.favicon.url }}?v={{ version }}" />
|
||||||
{% if theme.env_visible %}
|
{% if theme.env_visible_in_favicon %}
|
||||||
<script type="text/javascript" src="{% static 'admin_interface/favico/favico-0.3.10-patched.min.js' %}?v={{ version }}"></script>
|
<script type="text/javascript" src="{% static 'admin_interface/favico/favico-0.3.10-patched.min.js' %}?v={{ version }}"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var favicon = new Favico({
|
var favicon = new Favico({
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue