You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
888 B
30 lines
888 B
# Erik Stein <code@classlibrary.net>, 2017 |
|
|
|
from django.db.models import Model |
|
from django.utils.translation import get_language |
|
|
|
from feincms3.renderer import Regions, TemplatePluginRenderer |
|
|
|
class MultilingualRegions(Regions): |
|
|
|
def cache_key(self, region): |
|
return '%s-%s' % (get_language(), super().cache_key(region)) |
|
|
|
|
|
class PluginRenderer(TemplatePluginRenderer): |
|
# Used as decorator |
|
def register(self): |
|
""" |
|
Usage: |
|
@renderer.register() |
|
class TextPlugin(ModelPlugin): |
|
pass |
|
|
|
""" |
|
def _renderer_wrapper(plugin_class): |
|
plugin_class.register_with_renderer(self) |
|
return plugin_class |
|
return _renderer_wrapper |
|
|
|
def regions(self, item, inherit_from=None, regions=MultilingualRegions): |
|
return super().regions(item, inherit_from=inherit_from, regions=regions)
|
|
|