diff --git a/CHANGES b/CHANGES index 4790ae8..2f892dd 100644 --- a/CHANGES +++ b/CHANGES @@ -1,4 +1,8 @@ +0.4 2019-04-29 +- Slightly refactored AdminInline construction and plugin mixins. +- Added django-media-archive plugins, ImageBase and DownloadBase. - Added SimpleImagePlugin and SimpleDownloadPlugin. +- Renamed 'SectionBase' to 'SectionBreakBase'. 0.3.19 2019-04-02 - Again better template_name handling. diff --git a/content_plugins/base.py b/content_plugins/base.py index f7c3213..5891d2b 100644 --- a/content_plugins/base.py +++ b/content_plugins/base.py @@ -40,7 +40,6 @@ class BasePlugin(models.Model): @classmethod def admin_inline(cls, base_class=None): - # TODO Cache inline class Inline(base_class or cls.admin_inline_baseclass): model = cls regions = cls.regions @@ -158,7 +157,7 @@ class RichTextBase(PrepareRichtextMixin, FilesystemTemplateRendererPlugin): return Truncator(strip_tags(self.richtext)).words(10, truncate=" ...") -class SectionBreakBase(StyleMixin, FilesystemTemplateRendererPlugin): +class SectionBreakBase(FilesystemTemplateRendererPlugin): if USE_TRANSLATABLE_FIELDS: subheading = TranslatableCharField(_("subheading"), null=True, blank=True, max_length=500) else: diff --git a/content_plugins/plugins/mixins.py b/content_plugins/plugins/mixins.py index 863ae2c..ee59315 100644 --- a/content_plugins/plugins/mixins.py +++ b/content_plugins/plugins/mixins.py @@ -24,6 +24,20 @@ class StyleMixin(models.Model): class Meta: abstract = True + class AdminMixin: + def get_fields(self, request, obj=None): + fields = super().get_fields(request, obj) + if 'style' not in fields: + fields.append('style') + return fields + + @classmethod + def admin_inline(cls): + class MixedClass(super().admin_inline(), cls.AdminMixin): + pass + + return MixedClass + def get_style_slug(self): style = getattr(self, 'style', None) or 'default' return slugify(style).replace("_", "-")