{ "info": { "author": "JeanMichel FRANCOIS aka toutpt", "author_email": "toutpt@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Plone", "Framework :: Plone :: 4.0", "Framework :: Plone :: 4.1", "Framework :: Plone :: 4.2", "Framework :: Plone :: 4.3", "Framework :: Plone :: 5.0", "Framework :: Zope2", "License :: OSI Approved :: GNU General Public License (GPL)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7" ], "description": "Introduction\n============\n\nThis add-on does not provide feature to Plone.\nIt is intended to plone add-ons developers.\n\nIt provides base class to let your view being configurable (ie have 'settings').\n\nFeatures:\n\n* Configuration providers\n* Configuration structure defined with zope.interface & zope.schema\n* Store configuration using plugins\n* Generated form from the schema to let owner configure the current view\n\nNotes on VERSIONS\n=================\n\n\n.. image:: https://secure.travis-ci.org/collective/collective.configviews.png\n :target: http://travis-ci.org/collective/collective.configviews\n\n\n3.0 is a back to 1.0.\n\n2.0 branch was about to use plone.app.registry on the context using\ncollective.registry. After doing this the addon loose the ability to have\noptimized settings (mixin of globals and locals). So lets revert this and\ncontinue the 1.0 in 3.0 !\n\nWhy doing this in an add-on\n===========================\n\nBecause most of the time developers faced to this issue store data in the\ncontent type, or with annotation on context without trying to optimize,\nor without form, ...\n\nHow it works\n============\n\nThis add-ons define three components:\n\n* ConfigurableView\n* ConfigurationProvider\n* ConfigurationMutator\n\nThe main idea, is you just have to create an zope.interface to define settings\nschema and set this schema in the 'settings_schema' attributes of the view.\n\nFor example::\n\n class IMyViewSettings(interface.Interface):\n width = schema.ASCIILine(title=u\"Width\",\n default='620')\n\n height = schema.ASCIILine(title=u\"Height\",\n default='620')\n\n class MyView(ConfigurableBaseView):\n settings_schema = IMyViewSettings\n\n def width(self):\n return self.settings.width\n\n def height(self):\n return self.settings.height\n\n\nIConfigurationProvider\n======================\n\nThis component is responsible to return settings.\nIt has been implemented in different adapters\n\nProvider (no named adapter): this provider load default values from the\ninterface fields defaults values and it let other providers override values.\nIt is an aggregation of all providers specified in the view throw the\nsettings_providers attribute. Warning: The order is important, each settings\nare taken from the last provider which provide it.\n\n'site.plone.app.registry': this provider return values from plone.app.registry\n(you have to register your settings_schema as records in registry.xml)\n\n'context.zope.app.annotation': this provider return values stored in annotation\non the context of the view.\n\nIConfigurationMutator\n=====================\n\nThis component is an extension of IConfigurationProvider with the write\nsettings capabilities (throw its 'set' method).\n\n'context.zope.app.annontation': this mutator store the configuration in\nthe context of the view.\n\nIConfigurableView\n=================\n\nThis component is implemented in a browserview you are supposed to inherits\nfrom in your own browser view.\n\nThe default behavior is to use 'context.zope.app.annotation' as mutator and\nthe following providers:\n\n* site.plone.app.registry\n* context.zope.app.annotation\n\nCommon use case: use a javascript library for a view\n====================================================\n\nMost of javascript libraries wait for a dict to load their configuration. You\ncan achieve this in a very easy way. You just have to define a configuration\nschema and add the following snippet in your template to create a javascript\nvariable with the configuration ::\n\n \n\nYou can set the variable name throw the jsvarname attribute of your browserview.\n\nYou will find examples in the following addons:\n\n* collective.galleria\n* collective.galleriffic\n* collective.googledocsviewer\n\nCredits\n=======\n\nCompanies\n---------\n\n|makinacom|_\n\n* `Planet Makina Corpus `_\n* `Contact us `_\n\nPeople\n------\n\n- JeanMichel FRANCOIS aka toutpt \n- Radim Novotny aka naro\n- Luca Fabbri aka keul \n\n.. |makinacom| image:: http://depot.makina-corpus.org/public/logo.gif\n.. _makinacom: http://www.makina-corpus.com\n\nChangelog\n=========\n\n3.1.0 (2016-08-23)\n------------------\n\n- When configuration is changed, an ``IConfigurationChangedEvent`` event is fired\n [keul]\n- When view settings is modified also store a modification date inside a ``__modified__`` key.\n This may help in rare cases when you need to check if configuration is \"fresh\"\n [keul]\n\n3.0.3 (2016-05-12)\n------------------\n\n- Added italian translation\n [keul]\n- Fixed i18n machinery\n [keul]\n- Add uninstall profile.\n [thet]\n\n\n3.0.2 (2013-04-30)\n------------------\n\n- Fix configuration error by forcing the load zcml of CMFDynamicViewFTI [toutpt]\n\n\n3.0.1 (2013-04-29)\n------------------\n\n- protect configviews form with a permission [toutpt]\n\n\n3.0 (2013-03-25)\n----------------\n\n- add support for viewlet [toutpt]\n\n\n3.0a1 (2013-02-15)\n------------------\n\n- Revert to 1.0 internal design. [toutpt]\n\n\n2.0 (2012-01-30)\n----------------\n\n- Use collective.registry instead of provider/mutator [toutpt]\n\n1.0b4 (2011-12-07)\n------------------\n\n- add new classifiers [toutpt]\n- fix tests [toutpt]\n- fix issue making edit configuration not working [naro]\n\n1.0b3 (2011-08-01)\n------------------\n\n- Optimization of storage: defaults are now based on all provider except zope.app.annotation\n [toutpt]\n- fix case where site.plone.app.registry are not set (value was set to None)\n [toutpt]\n\n1.0b2 (2011-06-30)\n------------------\n\n- Fix config form (http://stackoverflow.com/q/6524304/622081)\n\n\n1.0b1 (2011-06-08)\n------------------\n\n- Initial release", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/collective/collective.configviews", "keywords": "plone configuration view", "license": "GPL", "maintainer": "", "maintainer_email": "", "name": "collective.configviews", "package_url": "https://pypi.org/project/collective.configviews/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/collective.configviews/", "project_urls": { "Homepage": "https://github.com/collective/collective.configviews" }, "release_url": "https://pypi.org/project/collective.configviews/3.1.0/", "requires_dist": null, "requires_python": "", "summary": "Manage configuration of browser views", "version": "3.1.0" }, "last_serial": 3422856, "releases": { "1.0b1": [ { "comment_text": "", "digests": { "md5": "a97195b3df572e5176c43160dab41486", "sha256": "5a9725bdb5588fcd60e8101e1f3e981213bb36573c110ad96f83285bc2235afd" }, "downloads": -1, "filename": "collective.configviews-1.0b1.tar.gz", "has_sig": false, "md5_digest": "a97195b3df572e5176c43160dab41486", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11611, "upload_time": "2011-06-08T16:53:44", "url": "https://files.pythonhosted.org/packages/6f/33/2ad27522d84048c663044658691cd2d1569a542070823216e948c5816dc6/collective.configviews-1.0b1.tar.gz" } ], "1.0b2": [ { "comment_text": "", "digests": { "md5": "e9d17498dced9cb88b41e43c16ff0f79", "sha256": "64f28c4bfb98a2618fb92441737bed8e3ccd34c57fe38bf01133cdbcf34b8e28" }, "downloads": -1, "filename": "collective.configviews-1.0b2.tar.gz", "has_sig": false, "md5_digest": "e9d17498dced9cb88b41e43c16ff0f79", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11982, "upload_time": "2011-06-30T09:53:00", "url": "https://files.pythonhosted.org/packages/65/1b/b076e51bb5dfe043f24d1c8c6d6644ee97b54081da982f7eed055dd5afba/collective.configviews-1.0b2.tar.gz" } ], "1.0b3": [ { "comment_text": "", "digests": { "md5": "22744d004790754c2c2eb3b495e06544", "sha256": "6c92a09cc2c79190e20fc72ad6fd307b9f87975230cdee03836d977f3eec8bdd" }, "downloads": -1, "filename": "collective.configviews-1.0b3.tar.gz", "has_sig": false, "md5_digest": "22744d004790754c2c2eb3b495e06544", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12231, "upload_time": "2011-08-01T17:52:24", "url": "https://files.pythonhosted.org/packages/e9/fc/7340a97685d91a97dacbee6ce75076eba3bbfa197efbf328108fb5962b66/collective.configviews-1.0b3.tar.gz" } ], "1.0b4": [ { "comment_text": "", "digests": { "md5": "418587c2dba08eaf986e13ebf2fa3523", "sha256": "8cd37a21a45591500b95ac2be30a161a1178e61a6a6b462c493e7167a27d83d3" }, "downloads": -1, "filename": "collective.configviews-1.0b4.tar.gz", "has_sig": false, "md5_digest": "418587c2dba08eaf986e13ebf2fa3523", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22549, "upload_time": "2011-12-07T14:24:08", "url": "https://files.pythonhosted.org/packages/a0/88/a1b2e7072916643668bfed6f708e2a6b93d46063b9df94562d7021ca688f/collective.configviews-1.0b4.tar.gz" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "d9880e6288f40017c14c2588a8e6cf70", "sha256": "cb94bfb3b0d00806e412332ad1657b7bada975a6ec4aabc7d0441df60e8890cc" }, "downloads": -1, "filename": "collective.configviews-2.0.tar.gz", "has_sig": false, "md5_digest": "d9880e6288f40017c14c2588a8e6cf70", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22501, "upload_time": "2012-01-30T22:31:46", "url": "https://files.pythonhosted.org/packages/42/70/fbf42fb3b936c9ea1b6211833b447d669382c60efe59a28f10e9ab9b2f5a/collective.configviews-2.0.tar.gz" } ], "3.0": [ { "comment_text": "", "digests": { "md5": "c40912492c8ea6e284b0352833f4c9e8", "sha256": "fabcb1fc9fa94a9310e0d19f1b0b4381c70cd83edf132d25a8fa47d708a8500c" }, "downloads": -1, "filename": "collective.configviews-3.0.zip", "has_sig": false, "md5_digest": "c40912492c8ea6e284b0352833f4c9e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27633, "upload_time": "2013-03-25T11:12:43", "url": "https://files.pythonhosted.org/packages/7f/e8/88b962090dc0e987487c408e300e10b654c34ab789b532d7343911d6918d/collective.configviews-3.0.zip" } ], "3.0.1": [ { "comment_text": "", "digests": { "md5": "8bfca6b6922e57224e1a20be74d02d34", "sha256": "50a9d07871fcdd0995bf8f7de92a4505814cfd16013c90ddc162b29141a1d779" }, "downloads": -1, "filename": "collective.configviews-3.0.1.zip", "has_sig": false, "md5_digest": "8bfca6b6922e57224e1a20be74d02d34", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28000, "upload_time": "2013-04-29T10:05:57", "url": "https://files.pythonhosted.org/packages/07/06/1068bbe2b4db68edbac5d35c9690f8db216c9ea57a9f4883a0dc37758dd1/collective.configviews-3.0.1.zip" } ], "3.0.2": [ { "comment_text": "", "digests": { "md5": "d05fabbf7d9b4c22c7b229c1645d4982", "sha256": "793d097e4562b97fcc1dc95297d0ea732566783dec25e4bdb7843ad8bf2c286b" }, "downloads": -1, "filename": "collective.configviews-3.0.2.zip", "has_sig": false, "md5_digest": "d05fabbf7d9b4c22c7b229c1645d4982", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28158, "upload_time": "2013-04-30T13:36:56", "url": "https://files.pythonhosted.org/packages/6f/3b/324ce3d66e6c3a93abfdb5d376bfd4a225486b70035e57182bdca6e59cb1/collective.configviews-3.0.2.zip" } ], "3.0.3": [ { "comment_text": "", "digests": { "md5": "2a2bf98736360954bc6989625196cad3", "sha256": "8c94051729d587b21fc1335b68d3b7496c99f9f97b0da2271071ef2a8c3177d7" }, "downloads": -1, "filename": "collective.configviews-3.0.3.tar.gz", "has_sig": false, "md5_digest": "2a2bf98736360954bc6989625196cad3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21441, "upload_time": "2016-05-12T13:48:31", "url": "https://files.pythonhosted.org/packages/cc/fb/a24491a524147a749256548d2a4a22eb36eb74b161914924d2e316cc5699/collective.configviews-3.0.3.tar.gz" } ], "3.0a1": [ { "comment_text": "", "digests": { "md5": "1cecb77643a6f1e4eaac75165c700730", "sha256": "050abd8dad6740e92d585d7142a89e65be44c899c189411bbbb8ad7ca570e418" }, "downloads": -1, "filename": "collective.configviews-3.0a1.zip", "has_sig": false, "md5_digest": "1cecb77643a6f1e4eaac75165c700730", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39633, "upload_time": "2013-02-15T10:18:55", "url": "https://files.pythonhosted.org/packages/39/c8/e0787ae6927ee52e280441c555f4c552116f362d429e8720b39d69c375de/collective.configviews-3.0a1.zip" } ], "3.1.0": [ { "comment_text": "", "digests": { "md5": "025766ed746dd964b7d17b57143add35", "sha256": "2b7f2f4f705dd55408f720143ec27143e1e6d67ce918fbca9fc8d5861e258b6a" }, "downloads": -1, "filename": "collective.configviews-3.1.0.tar.gz", "has_sig": false, "md5_digest": "025766ed746dd964b7d17b57143add35", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21999, "upload_time": "2016-08-23T13:41:03", "url": "https://files.pythonhosted.org/packages/e6/8e/697df24ce2a8539be2bf1569f7f0d8218290b1babc48b068067d6395bb0a/collective.configviews-3.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "025766ed746dd964b7d17b57143add35", "sha256": "2b7f2f4f705dd55408f720143ec27143e1e6d67ce918fbca9fc8d5861e258b6a" }, "downloads": -1, "filename": "collective.configviews-3.1.0.tar.gz", "has_sig": false, "md5_digest": "025766ed746dd964b7d17b57143add35", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21999, "upload_time": "2016-08-23T13:41:03", "url": "https://files.pythonhosted.org/packages/e6/8e/697df24ce2a8539be2bf1569f7f0d8218290b1babc48b068067d6395bb0a/collective.configviews-3.1.0.tar.gz" } ] }