diff --git a/admin_interface/admin.py b/admin_interface/admin.py index 78656aa..60eba78 100644 --- a/admin_interface/admin.py +++ b/admin_interface/admin.py @@ -17,7 +17,7 @@ class ThemeAdmin(admin.ModelAdmin): }), ('Logo', { 'classes': ('wide', ), - 'fields': ('logo', 'logo_visible', ) + 'fields': ('logo', 'logo_color', 'logo_visible', ) }), ('Title', { 'classes': ('wide', ), diff --git a/admin_interface/data/logo-django.svg b/admin_interface/data/logo-django.svg deleted file mode 100644 index 75782c0..0000000 --- a/admin_interface/data/logo-django.svg +++ /dev/null @@ -1,11 +0,0 @@ - - \ No newline at end of file diff --git a/admin_interface/migrations/0003_add_logo_color.py b/admin_interface/migrations/0003_add_logo_color.py new file mode 100644 index 0000000..2c1ab17 --- /dev/null +++ b/admin_interface/migrations/0003_add_logo_color.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +import colorfield.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('admin_interface', '0002_add_related_modal'), + ] + + operations = [ + migrations.AddField( + model_name='theme', + name='logo_color', + field=colorfield.fields.ColorField(blank=True, default='#FFFFFF', help_text='#FFFFFF', max_length=10, verbose_name='logo color'), + ), + migrations.AlterField( + model_name='theme', + name='logo', + field=models.FileField(blank=True, help_text='(leave blank to use the default Django logo)', upload_to='admin-interface/logo/'), + ), + ] diff --git a/admin_interface/models.py b/admin_interface/models.py index c9e7fc1..2810e61 100644 --- a/admin_interface/models.py +++ b/admin_interface/models.py @@ -1,15 +1,13 @@ # -*- coding: utf-8 -*- + from __future__ import unicode_literals -from django.core.files import File from django.db import models from django.db.models.signals import post_delete, post_save from django.utils.encoding import python_2_unicode_compatible, force_text from colorfield.fields import ColorField -import os - @python_2_unicode_compatible class Theme(models.Model): @@ -41,8 +39,6 @@ class Theme(models.Model): if not default_obj_created and default_obj_active: default_obj.set_active() - default_obj.set_default_logo() - obj = objs_active_qs.last() objs_active_count = objs_active_qs.count() @@ -57,7 +53,8 @@ class Theme(models.Model): title = models.CharField( max_length = 50, default = 'Django administration', blank = True ) title_visible = models.BooleanField( default = True, verbose_name = 'visible' ) - logo = models.FileField( upload_to = 'admin-interface/logo/', blank = True ) + logo = models.FileField( upload_to = 'admin-interface/logo/', blank = True, help_text = '(leave blank to use the default Django logo)' ) + logo_color = ColorField( blank = True, default = '#FFFFFF', help_text = '#FFFFFF', verbose_name = 'logo color' ) logo_visible = models.BooleanField( default = True, verbose_name = 'visible' ) css_header_background_color = ColorField( blank = True, default = '#0C4B33', help_text = '#0C4B33', verbose_name = 'background color' ) @@ -108,28 +105,6 @@ class Theme(models.Model): self.active = True self.save() - def set_default_logo(self): - - if self.logo: - # django-storages compatibility - try: - if os.path.isfile(self.logo.path): - return - except NotImplementedError: - return - - logo_filename = 'logo-django.svg' - logo_path = os.path.normpath(os.path.dirname(__file__) + '/data/' + logo_filename) - logo_file = open(logo_path) - - self.logo = File(logo_file, logo_filename) - - post_save.disconnect(Theme.post_save_handler, sender = Theme) - self.save() - post_save.connect(Theme.post_save_handler, sender = Theme) - - logo_file.close() - class Meta: app_label = 'admin_interface' diff --git a/admin_interface/templates/admin/base_site.html b/admin_interface/templates/admin/base_site.html index 284487f..0c5d20c 100644 --- a/admin_interface/templates/admin/base_site.html +++ b/admin_interface/templates/admin/base_site.html @@ -44,8 +44,12 @@ {% block branding %} {% get_admin_interface_theme as theme %}