Browse Source

Default plugin templates.

master 0.4.1
Erik Stein 6 years ago
parent
commit
efed9338ed
  1. 3
      CHANGES
  2. 2
      content_plugins/base.py
  3. 114
      content_plugins/plugins/media_archive.py
  4. 4
      content_plugins/templates/plugins/_base.html
  5. 6
      content_plugins/templates/plugins/_richtext.html
  6. 11
      content_plugins/templates/plugins/_sectionbreak.html

3
CHANGES

@ -1,3 +1,6 @@
0.4.1 2019-04-30
- Default plugin templates.
0.4 2019-04-29
- Slightly refactored AdminInline construction and plugin mixins.
- Added django-media-archive plugins, ImageBase and DownloadBase.

2
content_plugins/base.py

@ -13,8 +13,8 @@ from shared.utils.models.slugs import DowngradingSlugField
# TODO Rename ContentInlineBase to PluginInlineBase
from .admin import ContentInlineBase, RichTextInlineBase
from .plugins.mixins import StyleMixin # Make available for import
from .plugins.mixins import StyleMixin
from . import USE_TRANSLATABLE_FIELDS

114
content_plugins/plugins/media_archive.py

@ -0,0 +1,114 @@
"""
Plugins for use with django-shared-mediarchive.
"""
from django.apps import registry
from django.conf import settings
from django.db import models
from django.utils.translation import gettext_lazy as _
try:
from imagekit.admin import AdminThumbnail
USE_ADMIN_THUMBNAIL = True
except ImportError:
USE_ADMIN_THUMBNAIL = False
from ..admin import ContentInlineBase
from ..base import ObjectPluginBase
image_model = getattr(settings, 'CONTENTPLUGINS_IMAGE_MODEL', None)
download_model = getattr(settings, 'CONTENTPLUGINS_DOWNLOAD_MODEL', None)
if image_model:
image_model = registry.apps.get_model(image_model)
else:
from shared.media_archive.models import Image
image_model = Image
if download_model:
download_model = registry.apps.get_model(download_model)
else:
from shared.media_archive.models import Download
download_model = Download
#
# Media Plugins
def image_thumbnail(obj):
return obj.image.thumbnail
class ImageBase(ObjectPluginBase):
image = models.ForeignKey(Image, on_delete=models.CASCADE,
verbose_name=_("image"))
fk_fieldname = 'image'
class Meta:
abstract = True
verbose_name = _("image")
verbose_name_plural = _("images")
def get_type_slug(self):
return ''
class AdminInline(ContentInlineBase):
fields = ContentInlineBase.fields or []
if USE_ADMIN_THUMBNAIL:
fields = fields + ['admin_thumbnail']
admin_thumbnail = AdminThumbnail(
image_field=image_thumbnail,
template='imagekit/admin/selectable_thumbnail.html')
admin_thumbnail.short_description = _("image")
fields = fields + [
'image',
'get_is_public_display',
]
readonly_fields = ContentInlineBase.fields or [] + [
'admin_thumbnail',
'get_is_public_display',
]
def get_is_public_display(self, obj):
if not obj.image.is_public:
return _("not published/visible")
else:
return _("published")
get_is_public_display.short_description = _("published")
admin_inline_baseclass = AdminInline
class DownloadBase(ObjectPluginBase):
download = models.ForeignKey(Download, on_delete=models.CASCADE,
verbose_name=_("download"))
fk_fieldname = 'download'
class Meta:
abstract = True
verbose_name = _("download")
verbose_name_plural = _("downloads")
def get_type_slug(self):
return ''
class AdminInline(ContentInlineBase):
fields = ContentInlineBase.fields or [] + [
'download',
'get_is_public_display',
]
readonly_fields = ContentInlineBase.readonly_fields or [] + [
'get_is_public_display',
]
def get_is_public_display(self, obj):
if not obj.download.is_public:
return _("not published/visible")
else:
return _("published")
get_is_public_display.short_description = _("published")
admin_inline_baseclass = AdminInline

4
content_plugins/templates/plugins/_base.html

@ -0,0 +1,4 @@
<div class="plugin{% block plugin_class %}{% endblock plugin_class %}">
{% block plugin_content %}{% endblock plugin_content %}
</div>

6
content_plugins/templates/plugins/_richtext.html

@ -1 +1,5 @@
{{ content.prepared_richtext }}
{% extends "plugins/_base.html" %}
{% block plugin_content %}
{{ content.prepared_richtext }}
{% endblock plugin_content %}

11
content_plugins/templates/plugins/_sectionbreak.html

@ -0,0 +1,11 @@
{% load text_tags %}
</section>
<section{% if content.slug %} id="{{ content.slug }}"{% endif %} class="plugin section-break">
{% if content.subheading %}
<h1>
{% if content.url %}<a href="{{ content.url }}">{% endif %}
{{ content.subheading|slimdown }}
{% if content.url %}</a>{% endif %}
</h1>
{% endif %}
Loading…
Cancel
Save