Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d81c7fcdd8 | |||
| 4d07e9fec5 | |||
| 3b982a84c3 | |||
| 072fdcdc95 |
@@ -19,6 +19,10 @@ class ThemeAdmin(admin.ModelAdmin):
|
|||||||
'classes': ('wide', ),
|
'classes': ('wide', ),
|
||||||
'fields': ('logo', 'logo_color', 'logo_visible', )
|
'fields': ('logo', 'logo_color', 'logo_visible', )
|
||||||
}),
|
}),
|
||||||
|
('Favicon', {
|
||||||
|
'classes': ('wide', ),
|
||||||
|
'fields': ('favicon', )
|
||||||
|
}),
|
||||||
('Title', {
|
('Title', {
|
||||||
'classes': ('wide', ),
|
'classes': ('wide', ),
|
||||||
'fields': ('title', 'title_color', 'title_visible', )
|
'fields': ('title', 'title_color', 'title_visible', )
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.11 on 2017-08-24 10:49
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('admin_interface', '0006_bytes_to_str'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='theme',
|
||||||
|
name='favicon',
|
||||||
|
field=models.FileField(blank=True, help_text='(.ico|.png|.gif - 16x16|32x32 px)', upload_to='admin-interface/favicon/', verbose_name='favicon'),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -31,18 +31,20 @@ class Theme(models.Model):
|
|||||||
def get_active_theme():
|
def get_active_theme():
|
||||||
|
|
||||||
objs_active_qs = Theme.objects.filter( active = True )
|
objs_active_qs = Theme.objects.filter( active = True )
|
||||||
|
objs_active_ls = list(objs_active_qs)
|
||||||
|
objs_active_count = len(objs_active_ls)
|
||||||
|
|
||||||
#get or create default theme and enforce default logo if deleted
|
if objs_active_count == 0:
|
||||||
default_obj_active = (objs_active_qs.count() == 0)
|
default_obj, default_obj_created = Theme.objects.get_or_create(pk = '1', defaults = { 'active':True })
|
||||||
default_obj, default_obj_created = Theme.objects.get_or_create(pk = '1', defaults = { 'active':default_obj_active })
|
if not default_obj_created:
|
||||||
|
|
||||||
if not default_obj_created and default_obj_active:
|
|
||||||
default_obj.set_active()
|
default_obj.set_active()
|
||||||
|
obj = default_obj
|
||||||
|
|
||||||
obj = objs_active_qs.last()
|
elif objs_active_count == 1:
|
||||||
objs_active_count = objs_active_qs.count()
|
obj = objs_active_ls[0]
|
||||||
|
|
||||||
if objs_active_count > 1:
|
elif objs_active_count > 1:
|
||||||
|
obj = objs_active_ls[-1]
|
||||||
obj.set_active()
|
obj.set_active()
|
||||||
|
|
||||||
return obj
|
return obj
|
||||||
@@ -58,6 +60,8 @@ class Theme(models.Model):
|
|||||||
logo_color = ColorField( blank = True, default = '#FFFFFF', help_text = '#FFFFFF', max_length = 10, verbose_name = 'logo color' )
|
logo_color = ColorField( blank = True, default = '#FFFFFF', help_text = '#FFFFFF', max_length = 10, verbose_name = 'logo color' )
|
||||||
logo_visible = models.BooleanField( default = True, verbose_name = 'visible' )
|
logo_visible = models.BooleanField( default = True, verbose_name = 'visible' )
|
||||||
|
|
||||||
|
favicon = models.FileField( upload_to = 'admin-interface/favicon/', blank = True, help_text = '(.ico|.png|.gif - 16x16|32x32 px)', verbose_name = 'favicon' )
|
||||||
|
|
||||||
css_header_background_color = ColorField( blank = True, default = '#0C4B33', help_text = '#0C4B33', max_length = 10, verbose_name = 'background color' )
|
css_header_background_color = ColorField( blank = True, default = '#0C4B33', help_text = '#0C4B33', max_length = 10, verbose_name = 'background color' )
|
||||||
css_header_text_color = ColorField( blank = True, default = '#44B78B', help_text = '#44B78B', max_length = 10, verbose_name = 'text color' )
|
css_header_text_color = ColorField( blank = True, default = '#44B78B', help_text = '#44B78B', max_length = 10, verbose_name = 'text color' )
|
||||||
css_header_link_color = ColorField( blank = True, default = '#FFFFFF', help_text = '#FFFFFF', max_length = 10, verbose_name = 'link color' )
|
css_header_link_color = ColorField( blank = True, default = '#FFFFFF', help_text = '#FFFFFF', max_length = 10, verbose_name = 'link color' )
|
||||||
|
|||||||
@@ -38,6 +38,9 @@ https://github.com/fabiocaccamo/django-admin-interface
|
|||||||
{# https://github.com/elky/django-flat-responsive#important-note #}
|
{# https://github.com/elky/django-flat-responsive#important-note #}
|
||||||
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0">
|
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0">
|
||||||
<link rel="stylesheet" type="text/css" href="{% static 'admin/css/responsive.css' %}?v={{ version }}" />
|
<link rel="stylesheet" type="text/css" href="{% static 'admin/css/responsive.css' %}?v={{ version }}" />
|
||||||
|
{% if theme.favicon %}
|
||||||
|
<link rel="icon" type="image/x-icon" href="{{ theme.favicon.url }}?v={{ version }}" />
|
||||||
|
{% endif %}
|
||||||
{% if theme.related_modal_active %}
|
{% if theme.related_modal_active %}
|
||||||
<link rel="stylesheet" type="text/css" href="{% static 'admin_interface/magnific-popup/magnific-popup.css' %}?v={{ version }}" />
|
<link rel="stylesheet" type="text/css" href="{% static 'admin_interface/magnific-popup/magnific-popup.css' %}?v={{ version }}" />
|
||||||
<script type="text/javascript" src="{% static 'admin_interface/magnific-popup/jquery.magnific-popup.js' %}?v={{ version }}"></script>
|
<script type="text/javascript" src="{% static 'admin_interface/magnific-popup/jquery.magnific-popup.js' %}?v={{ version }}"></script>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
__version__ = '0.5.1'
|
__version__ = '0.5.2'
|
||||||
|
|
||||||
|
|||||||
+8
-1
@@ -9,6 +9,7 @@ import random
|
|||||||
import shutil
|
import shutil
|
||||||
|
|
||||||
from admin_interface.models import Theme
|
from admin_interface.models import Theme
|
||||||
|
from admin_interface.version import __version__
|
||||||
|
|
||||||
|
|
||||||
class AdminInterfaceTestCase(TestCase):
|
class AdminInterfaceTestCase(TestCase):
|
||||||
@@ -107,6 +108,12 @@ class AdminInterfaceTestCase(TestCase):
|
|||||||
rendered = self.__render_template('{% load admin_interface_tags %}{% get_admin_interface_theme as theme %}{{ theme.name }}', context)
|
rendered = self.__render_template('{% load admin_interface_tags %}{% get_admin_interface_theme as theme %}{{ theme.name }}', context)
|
||||||
self.assertEqual(rendered, 'Django')
|
self.assertEqual(rendered, 'Django')
|
||||||
|
|
||||||
|
def test_templatetags_version(self):
|
||||||
|
|
||||||
|
context = Context({})
|
||||||
|
rendered = self.__render_template('{% load admin_interface_tags %}{% get_admin_interface_version as version %}{{ version }}', context)
|
||||||
|
self.assertEqual(rendered, __version__)
|
||||||
|
|
||||||
def test_templatetags_with_request(self):
|
def test_templatetags_with_request(self):
|
||||||
|
|
||||||
Theme.objects.all().delete()
|
Theme.objects.all().delete()
|
||||||
@@ -118,5 +125,5 @@ class AdminInterfaceTestCase(TestCase):
|
|||||||
|
|
||||||
def test_repr(self):
|
def test_repr(self):
|
||||||
theme = Theme.get_active_theme()
|
theme = Theme.get_active_theme()
|
||||||
self.assertEqual( "{0}".format(theme), 'Django' )
|
self.assertEqual( '{0}'.format(theme), 'Django' )
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user