Browse Source

Slightly refactored AdminInline construction and plugin mixins.

master 0.4
Erik Stein 6 years ago
parent
commit
073ef90dc6
  1. 4
      CHANGES
  2. 3
      content_plugins/base.py
  3. 14
      content_plugins/plugins/mixins.py

4
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.

3
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:

14
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("_", "-")

Loading…
Cancel
Save