From 9d32a512dc2a276a47c1436344e53376c3cf2b30 Mon Sep 17 00:00:00 2001 From: Erik Stein Date: Tue, 2 Apr 2019 11:06:37 +0200 Subject: [PATCH] Added ObjectPluginBase class. --- content_plugins/base.py | 61 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/content_plugins/base.py b/content_plugins/base.py index 2830bfd..f8ba81e 100644 --- a/content_plugins/base.py +++ b/content_plugins/base.py @@ -1,4 +1,6 @@ +import os import re + from django.conf import settings from django.core.exceptions import ImproperlyConfigured from django.db import models @@ -182,6 +184,65 @@ class SectionBase(StyleMixin, FilesystemTemplateRendererPlugin): return context +class ObjectPluginBase(FilesystemTemplateRendererPlugin): + fk_fieldname = None + regions = None + + class Meta: + abstract = True + + def __str__(self): + return str(getattr(self, self.fk_fieldname, "")) + + @property + def object(self): + assert self.fk_fieldname, "fk_fieldname not set." + return getattr(self, self.fk_fieldname) + + def get_type_slug(self): + type = getattr(self.object, 'type', None) + if type: + return getattr(type, 'internal_slug', "") + return "" + + def get_template_names(self): + """" + __/_