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.
31 lines
888 B
31 lines
888 B
7 years ago
|
# 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)
|