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, |