183 self.bindingsNames.append(name) |
183 self.bindingsNames.append(name) |
184 |
184 |
185 |
185 |
186 ConfigurableSettings = ConfigurableBindings() |
186 ConfigurableSettings = ConfigurableBindings() |
187 |
187 |
188 def newExtensionSetting(ext_name): |
188 def newExtensionSetting(display, token): |
189 global extensions_settings_od |
189 global extensions_settings_od |
190 settings = ConfigurableBindings() |
190 settings = ConfigurableBindings() |
191 extensions_settings_od[ext_name] = settings |
191 extensions_settings_od[token] = (settings, display) |
192 return settings |
192 return settings |
193 |
193 |
194 def removeExtensionSetting(ext_name): |
194 def removeExtensionSetting(token): |
195 global extensions_settings_od |
195 global extensions_settings_od |
196 extensions_settings_od.pop(ext_name) |
196 extensions_settings_od.pop(token) |
197 |
197 |
198 class ISettings(annotate.TypedInterface): |
198 class ISettings(annotate.TypedInterface): |
199 platform = annotate.String(label=_("Platform"), |
199 platform = annotate.String(label=_("Platform"), |
200 default=platform_module.system() + |
200 default=platform_module.system() + |
201 " " + platform_module.release(), |
201 " " + platform_module.release(), |
234 implements(ISettings) |
234 implements(ISettings) |
235 |
235 |
236 def __getattr__(self, name): |
236 def __getattr__(self, name): |
237 global extensions_settings_od |
237 global extensions_settings_od |
238 if name.startswith('configurable_'): |
238 if name.startswith('configurable_'): |
239 ext_name = name[13:] |
239 token = name[13:] |
240 def configurable_something(ctx): |
240 def configurable_something(ctx): |
241 return extensions_settings_od[ext_name] |
241 settings, _display = extensions_settings_od[token] |
|
242 return settings |
242 return configurable_something |
243 return configurable_something |
243 raise AttributeError |
244 raise AttributeError |
244 |
245 |
245 def extensions_settings(self, context, data): |
246 def extensions_settings(self, context, data): |
246 """ Project extensions settings |
247 """ Project extensions settings |
247 Extensions added to Configuration Tree in IDE have their setting rendered here |
248 Extensions added to Configuration Tree in IDE have their setting rendered here |
248 """ |
249 """ |
249 global extensions_settings_od |
250 global extensions_settings_od |
250 res = [] |
251 res = [] |
251 for ext_name in extensions_settings_od: |
252 for token in extensions_settings_od: |
252 res += [tags.h2[ext_name], webform.renderForms(ext_name)] |
253 _settings, display = extensions_settings_od[token] |
|
254 res += [tags.h2[display], webform.renderForms(token)] |
253 return res |
255 return res |
254 |
256 |
255 docFactory = loaders.stan([tags.html[ |
257 docFactory = loaders.stan([tags.html[ |
256 tags.head[ |
258 tags.head[ |
257 tags.title[_("Beremiz Runtime Settings")], |
259 tags.title[_("Beremiz Runtime Settings")], |