Manage configuration of browser views
Project description
Introduction
This add-on does not provide new feature to Plone. It is intended to plone add-ons developers.
If you need to create a browser view with configuration this add-on will make your life easier.
Features:
Configuration providers
Configuration structure defined with zope.interface & zope.schema
Auto form to manage the configuration of the current view
Why doing this in an add-on
Because most of the time developers faced to this issue store data in the content type, or with annotation on context without trying to optimize, or without form, …
How it works
This add-ons define three components:
IConfigurableView
IConfigurationProvider
IConfigurationMutator
The main idea, is you just have to create an zope.interface to define settings schema and set this schema in the ‘settings_schema’ attributes of the view.
For example:
class IMyViewSettings(interface.Interface): width = schema.ASCIILine(title=u"Width", default='620') height = schema.ASCIILine(title=u"Height", default='620') class MyView(ConfigurableBaseView): settings_schema = IMyViewSettings def width(self): return self.settings['width'] def height(self): return self.settings['height']
IConfigurationProvider
This component is responsible to return settings. It has been implemented in different adapters
Provider (no named adapter): this provider load default values from the interface fields defaults values and it let other providers override values. It is an aggregation of all providers specified in the view throw the settings_providers attribute. Warning: The order is important, each settings are taken from the last provider which provide it.
‘site.plone.app.registry’: this provider return values from plone.app.registry (you have to register your settings_schema as records in registry.xml)
‘context.zope.app.annotation’: this provider return values stored in annotation on the context of the view.
‘user.plone.app.users’: TODO (not implemented yet)
IConfigurationMutator
This component is an extension of IConfigurationProvider with the write settings capabilities (throw its ‘set’ method).
‘context.zope.app.annontation’: this mutator store the configuration in the context of the view.
IConfigurableView
This component is implemented in a browserview you are supposed to inherits from in your own browser view.
The default behavior is to use ‘context.zope.app.annotation’ as mutator and the following providers:
site.plone.app.registry
context.zope.app.annotation
Credits
Companies
Authors
JeanMichel FRANCOIS aka toutpt <toutpt@gmail.com>
Contributors
Changelog
1.0b3 (2011-08-01)
Optimization of storage: defaults are now based on all provider except zope.app.annotation [toutpt]
fix case where site.plone.app.registry are not set (value was set to None) [toutpt]
1.0b2 (2011-06-30)
Fix config form (http://stackoverflow.com/q/6524304/622081)
1.0b1 (2011-06-08)
Initial release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for collective.configviews-1.0b3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c92a09cc2c79190e20fc72ad6fd307b9f87975230cdee03836d977f3eec8bdd |
|
MD5 | 22744d004790754c2c2eb3b495e06544 |
|
BLAKE2b-256 | e9fc7340a97685d91a97dacbee6ce75076eba3bbfa197efbf328108fb5962b66 |