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

# 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)