src/pyams_content/features/renderer/zmi/__init__.py
changeset 434 a1c31d22e042
parent 433 76a597a42c19
child 444 a20522cd41f6
equal deleted inserted replaced
433:76a597a42c19 434:a1c31d22e042
    41 
    41 
    42 class BaseRenderedContentPreview(BaseContentProvider):
    42 class BaseRenderedContentPreview(BaseContentProvider):
    43     """Base renderer preview"""
    43     """Base renderer preview"""
    44 
    44 
    45     language = None
    45     language = None
    46     context_attrs = ()
       
    47     i18n_context_attrs = ()
       
    48 
    46 
    49     def __init__(self, context, request):
    47     def __init__(self, context, request):
    50         super(BaseRenderedContentPreview, self).__init__(context, request)
    48         super(BaseRenderedContentPreview, self).__init__(context, request)
    51         self.renderer = self.context.get_renderer()
    49         self.renderer = self.context.get_renderer()
    52 
    50 
    53     def update(self):
    51     def update(self):
    54         renderer = self.renderer
    52         renderer = self.renderer
    55         if renderer is not None:
    53         if renderer is not None:
    56             renderer.language = self.language
    54             renderer.language = self.language
    57             for attr in self.context_attrs:
       
    58                 setattr(renderer, attr, getattr(self.context, attr, None))
       
    59             if self.i18n_context_attrs:
       
    60                 i18n = II18n(self.context, None)
       
    61                 if i18n is not None:
       
    62                     for attr in self.i18n_context_attrs:
       
    63                         setattr(renderer, attr, i18n.get_attribute(attr, lang=self.language, request=self.request))
       
    64             renderer.update()
    55             renderer.update()
    65 
    56 
    66     def render(self):
    57     def render(self):
    67         if self.renderer is None:
    58         if self.renderer is None:
    68             return ''
    59             return ''
    79 
    70 
    80     label = None
    71     label = None
    81     weight = 0
    72     weight = 0
    82     settings_interface = None
    73     settings_interface = None
    83 
    74 
       
    75     language = None
       
    76     context_attrs = ()
       
    77     i18n_context_attrs = ()
       
    78 
    84     @property
    79     @property
    85     def settings(self):
    80     def settings(self):
    86         if self.settings_interface is None:
    81         if self.settings_interface is None:
    87             return None
    82             return None
    88         return IRendererSettings(self.context)
    83         return IRendererSettings(self.context)
    89 
    84 
    90     def update(self):
    85     def update(self):
    91         pass
    86         for attr in self.context_attrs:
       
    87             setattr(self, attr, getattr(self.context, attr, None))
       
    88         if self.i18n_context_attrs:
       
    89             i18n = II18n(self.context, None)
       
    90             if i18n is not None:
       
    91                 for attr in self.i18n_context_attrs:
       
    92                     setattr(self, attr, i18n.get_attribute(attr, lang=self.language, request=self.request))
    92 
    93 
    93     render = get_view_template()
    94     render = get_view_template()
    94 
    95 
    95 
    96 
    96 @pagelet_config(name='renderer-properties.html', context=IRenderedContent, layer=IPyAMSLayer,
    97 @pagelet_config(name='renderer-properties.html', context=IRenderedContent, layer=IPyAMSLayer,