Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4351751193 | |||
| 044ad518e0 | |||
| 5b976adb1d | |||
| 74732ec9a9 |
@@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [0.16.3](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.16.3) - 2021-04-26
|
||||
- Added `compat` module.
|
||||
- Added missing `0021_file_extension_validator` migration. #126
|
||||
- Formatted migrations.
|
||||
|
||||
## [0.16.2](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.16.2) - 2021-04-23
|
||||
- Added `python 3.9` and `django 3.2` to CI.
|
||||
- Added `FileExtensionValidator` to `logo` and `favicon` fields. #112
|
||||
|
||||
@@ -1,13 +1,9 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from admin_interface.compat import gettext_lazy as _
|
||||
from admin_interface.models import Theme
|
||||
|
||||
import django
|
||||
from django.contrib import admin
|
||||
if django.VERSION < (2, 0):
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
else:
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
|
||||
class ThemeAdmin(admin.ModelAdmin):
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import django
|
||||
from admin_interface.compat import gettext_lazy as _
|
||||
|
||||
from django.apps import AppConfig
|
||||
from django.db.models.signals import post_migrate
|
||||
if django.VERSION < (2, 0):
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
else:
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
|
||||
class AdminInterfaceConfig(AppConfig):
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import django
|
||||
|
||||
if django.VERSION < (2, 0):
|
||||
from django.utils.encoding import force_text as force_str
|
||||
from django.utils.translation import ugettext_lazy as gettext_lazy
|
||||
else:
|
||||
from django.utils.encoding import force_str
|
||||
from django.utils.translation import gettext_lazy
|
||||
|
||||
if django.VERSION >= (1, 11):
|
||||
from django.core.validators import FileExtensionValidator
|
||||
else:
|
||||
FileExtensionValidator = lambda allowed_extensions: None
|
||||
@@ -15,11 +15,21 @@ class Migration(migrations.Migration):
|
||||
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'),
|
||||
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'),
|
||||
field=models.BooleanField(
|
||||
default=True,
|
||||
verbose_name='visible'),
|
||||
),
|
||||
]
|
||||
|
||||
@@ -15,31 +15,55 @@ class Migration(migrations.Migration):
|
||||
migrations.AlterField(
|
||||
model_name='theme',
|
||||
name='active',
|
||||
field=models.BooleanField(default=True, verbose_name='active'),
|
||||
field=models.BooleanField(
|
||||
default=True,
|
||||
verbose_name='active'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='theme',
|
||||
name='css',
|
||||
field=models.TextField(blank=True, verbose_name='text color'),
|
||||
field=models.TextField(
|
||||
blank=True,
|
||||
verbose_name='text color'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='theme',
|
||||
name='env',
|
||||
field=models.CharField(choices=[('development', 'Development'), ('testing', 'Testing'), ('staging', 'Staging'), ('production', 'Production')], default='development', max_length=50, verbose_name='environment'),
|
||||
field=models.CharField(
|
||||
choices=[
|
||||
('development', 'Development'),
|
||||
('testing', 'Testing'),
|
||||
('staging', 'Staging'),
|
||||
('production', 'Production')
|
||||
],
|
||||
default='development',
|
||||
max_length=50,
|
||||
verbose_name='environment'),
|
||||
),
|
||||
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/', verbose_name='logo'),
|
||||
field=models.FileField(
|
||||
blank=True,
|
||||
help_text='Leave blank to use the default Django logo',
|
||||
upload_to='admin-interface/logo/',
|
||||
verbose_name='logo'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='theme',
|
||||
name='name',
|
||||
field=models.CharField(default='Django', max_length=50, verbose_name='name'),
|
||||
field=models.CharField(
|
||||
default='Django',
|
||||
max_length=50,
|
||||
verbose_name='name'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='theme',
|
||||
name='title',
|
||||
field=models.CharField(blank=True, default='Django administration', max_length=50, verbose_name='title'),
|
||||
field=models.CharField(
|
||||
blank=True,
|
||||
default='Django administration',
|
||||
max_length=50,
|
||||
verbose_name='title'),
|
||||
),
|
||||
]
|
||||
|
||||
@@ -17,11 +17,21 @@ class Migration(migrations.Migration):
|
||||
migrations.AlterField(
|
||||
model_name='theme',
|
||||
name='logo_color',
|
||||
field=colorfield.fields.ColorField(blank=True, default='#FFFFFF', help_text='#FFFFFF', max_length=10, verbose_name='color'),
|
||||
field=colorfield.fields.ColorField(
|
||||
blank=True,
|
||||
default='#FFFFFF',
|
||||
help_text='#FFFFFF',
|
||||
max_length=10,
|
||||
verbose_name='color'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='theme',
|
||||
name='title_color',
|
||||
field=colorfield.fields.ColorField(blank=True, default='#F5DD5D', help_text='#F5DD5D', max_length=10, verbose_name='color'),
|
||||
field=colorfield.fields.ColorField(
|
||||
blank=True,
|
||||
default='#F5DD5D',
|
||||
help_text='#F5DD5D',
|
||||
max_length=10,
|
||||
verbose_name='color'),
|
||||
),
|
||||
]
|
||||
|
||||
@@ -15,6 +15,8 @@ class Migration(migrations.Migration):
|
||||
migrations.AddField(
|
||||
model_name='theme',
|
||||
name='related_modal_close_button_visible',
|
||||
field=models.BooleanField(default=True, verbose_name='close button visible'),
|
||||
field=models.BooleanField(
|
||||
default=True,
|
||||
verbose_name='close button visible'),
|
||||
),
|
||||
]
|
||||
|
||||
@@ -15,6 +15,10 @@ class Migration(migrations.Migration):
|
||||
migrations.AlterField(
|
||||
model_name='theme',
|
||||
name='name',
|
||||
field=models.CharField(default='Django', max_length=50, unique=True, verbose_name='name'),
|
||||
field=models.CharField(
|
||||
default='Django',
|
||||
max_length=50,
|
||||
unique=True,
|
||||
verbose_name='name'),
|
||||
),
|
||||
]
|
||||
|
||||
@@ -15,6 +15,8 @@ class Migration(migrations.Migration):
|
||||
migrations.AddField(
|
||||
model_name='theme',
|
||||
name='language_chooser_active',
|
||||
field=models.BooleanField(default=True, verbose_name='active'),
|
||||
field=models.BooleanField(
|
||||
default=True,
|
||||
verbose_name='active'),
|
||||
),
|
||||
]
|
||||
|
||||
@@ -15,6 +15,13 @@ class Migration(migrations.Migration):
|
||||
migrations.AddField(
|
||||
model_name='theme',
|
||||
name='language_chooser_display',
|
||||
field=models.CharField(choices=[('code', 'code'), ('name', 'name')], default='code', max_length=10, verbose_name='display'),
|
||||
field=models.CharField(
|
||||
choices=[
|
||||
('code', 'code'),
|
||||
('name', 'name')
|
||||
],
|
||||
default='code',
|
||||
max_length=10,
|
||||
verbose_name='display'),
|
||||
),
|
||||
]
|
||||
|
||||
@@ -15,6 +15,8 @@ class Migration(migrations.Migration):
|
||||
migrations.AlterField(
|
||||
model_name='theme',
|
||||
name='list_filter_dropdown',
|
||||
field=models.BooleanField(default=True, verbose_name='use dropdown'),
|
||||
field=models.BooleanField(
|
||||
default=True,
|
||||
verbose_name='use dropdown'),
|
||||
),
|
||||
]
|
||||
|
||||
@@ -15,6 +15,8 @@ class Migration(migrations.Migration):
|
||||
migrations.AddField(
|
||||
model_name='theme',
|
||||
name='list_filter_sticky',
|
||||
field=models.BooleanField(default=True, verbose_name='sticky position'),
|
||||
field=models.BooleanField(
|
||||
default=True,
|
||||
verbose_name='sticky position'),
|
||||
),
|
||||
]
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
# Generated by Django 3.1.5 on 2021-01-29 20:29
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
@@ -13,11 +15,15 @@ class Migration(migrations.Migration):
|
||||
migrations.AddField(
|
||||
model_name='theme',
|
||||
name='form_pagination_sticky',
|
||||
field=models.BooleanField(default=False, verbose_name='sticky pagination'),
|
||||
field=models.BooleanField(
|
||||
default=False,
|
||||
verbose_name='sticky pagination'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='theme',
|
||||
name='form_submit_sticky',
|
||||
field=models.BooleanField(default=False, verbose_name='sticky submit'),
|
||||
field=models.BooleanField(
|
||||
default=False,
|
||||
verbose_name='sticky submit'),
|
||||
),
|
||||
]
|
||||
|
||||
@@ -1,10 +1,18 @@
|
||||
import colorfield.fields
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
from django.db.models import F
|
||||
|
||||
import colorfield.fields
|
||||
|
||||
|
||||
def default_link_selected(apps, schema_editor):
|
||||
Theme = apps.get_model("admin_interface", "Theme")
|
||||
Theme.objects.update(css_module_link_selected_color=F('css_module_link_color'))
|
||||
Theme.objects.update(
|
||||
css_module_link_selected_color=F('css_module_link_color'))
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
@@ -16,12 +24,22 @@ class Migration(migrations.Migration):
|
||||
migrations.AddField(
|
||||
model_name='theme',
|
||||
name='css_module_background_selected_color',
|
||||
field=colorfield.fields.ColorField(blank=True, default='#FFFFCC', help_text='#FFFFCC', max_length=10, verbose_name='background selected color'),
|
||||
field=colorfield.fields.ColorField(
|
||||
blank=True,
|
||||
default='#FFFFCC',
|
||||
help_text='#FFFFCC',
|
||||
max_length=10,
|
||||
verbose_name='background selected color'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='theme',
|
||||
name='css_module_link_selected_color',
|
||||
field=colorfield.fields.ColorField(blank=True, default='#FFFFFF', help_text='#FFFFFF', max_length=10, verbose_name='link selected color'),
|
||||
field=colorfield.fields.ColorField(
|
||||
blank=True,
|
||||
default='#FFFFFF',
|
||||
help_text='#FFFFFF',
|
||||
max_length=10,
|
||||
verbose_name='link selected color'),
|
||||
),
|
||||
migrations.RunPython(default_link_selected),
|
||||
]
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from admin_interface.compat import FileExtensionValidator
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('admin_interface', '0020_module_selected_colors'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='theme',
|
||||
name='favicon',
|
||||
field=models.FileField(
|
||||
blank=True,
|
||||
help_text='(.ico|.png|.gif - 16x16|32x32 px)',
|
||||
upload_to='admin-interface/favicon/',
|
||||
validators=[
|
||||
FileExtensionValidator(allowed_extensions=[
|
||||
'gif', 'ico', 'jpg', 'jpeg', 'png', 'svg'
|
||||
])
|
||||
],
|
||||
verbose_name='favicon'),
|
||||
),
|
||||
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/',
|
||||
validators=[
|
||||
FileExtensionValidator(allowed_extensions=[
|
||||
'gif', 'jpg', 'jpeg', 'png', 'svg'
|
||||
])
|
||||
],
|
||||
verbose_name='logo'),
|
||||
),
|
||||
]
|
||||
@@ -3,23 +3,12 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from admin_interface.cache import del_cached_active_theme
|
||||
from admin_interface.compat import FileExtensionValidator, force_str, gettext_lazy as _
|
||||
|
||||
from colorfield.fields import ColorField
|
||||
|
||||
import django
|
||||
if django.VERSION >= (1, 11):
|
||||
from django.core.validators import FileExtensionValidator
|
||||
else:
|
||||
FileExtensionValidator = lambda allowed_extensions: None
|
||||
|
||||
from django.db import models
|
||||
from django.db.models.signals import post_delete, post_save, pre_save
|
||||
if django.VERSION < (2, 0):
|
||||
from django.utils.encoding import force_text as force_str
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
else:
|
||||
from django.utils.encoding import force_str
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from six import python_2_unicode_compatible
|
||||
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
__version__ = '0.16.2'
|
||||
__version__ = '0.16.3'
|
||||
|
||||
Reference in New Issue
Block a user