{ "info": { "author": "Asko Soukka", "author_email": "asko.soukka@iki.fi", "bugtrack_url": null, "classifiers": [ "Framework :: Plone :: 4.1", "Framework :: Plone :: 4.2", "Framework :: Plone :: 4.3", "Programming Language :: Python" ], "description": "collective.themesitesetup\n=========================\n\n.. image:: https://secure.travis-ci.org/datakurre/collective.themesitesetup.png\n :target: https://travis-ci.org/datakurre/collective.themesitesetup\n\n**collective.themesitesetup** is a `plone.app.theming`_-plugin for\nembedding GenericSetup_-steps into zipped theme packages.\n\n**collective.themesitesetup** can automatically import one embedded set of\ngeneric setup steps during theme activation and another one (so called\n*uninstall profile*) when theme is deactivated. Yet, also additionals ets\ncan be embedded and imported manually.\n\nSee it activating theme site setup at: https://youtu.be/3vkrc7JFUU0\n\n.. _plone.app.theming: https://pypi.python.org/pypi/plone.app.theming\n.. _GenericSetup: https://pypi.python.org/pypi/Products.GenericSetup\n\n\nInstallation\n------------\n\nSimply include this package into your Plone site buildout by following\n`the official instructions`_. This add-on doesn't require other activation,\nbut, of course, requires `plone.app.theming`_ to be activated.\n\n.. _the official instructions: http://docs.plone.org/manage/installing/installing_addons.html\n\n\nConfiguration\n-------------\n\nThis plugin is enabled for any theme by simply adding the following line into\ntheme's ``manifest.cfg``:\n\n.. code:: ini\n\n [theme:genericsetup]\n\nBy default, this looks for the setup steps to be imported during activation\nfrom theme's ``install``-subdirectory and the steps to be imported during\ndeactivation from theme's ``uninstall``-subdirectory. If such directory does\nnot exist, this plugin simply does not import any steps.\n\nThe default lookup directories can be customized by overriding the defaults\nwith custom values in theme's ``manifest.cfg``:\n\n.. code:: ini\n\n [theme:genericsetup]\n install = my-install\n uninstall = my-uninstall\n\nThis plugin can also be disabled at any time simply by adding the line\n``disabled = true`` into plugin's configuration in theme's ``manifest.cfg``:\n\n.. code:: ini\n\n [theme:genericsetup]\n disabled = true\n\n\nAbout security\n--------------\n\nThe use of this package encourages storing importable Generic Setup profiles\n(and later Dexterity XML models, localization catalogs and other resource\ndirectories data) in theme. Because all the resources in theme are public with\nknow URLs, also all the data in theme meant to be imported by this package are\nmade public.\n\nIf you don't want to publish your Generic Setup profiles and other theme data\nincluded only to be imported by this plugin, use the following option\n``self-destruct = true`` to remove all the imported resources after theme\nactivation:\n\n.. code:: ini\n\n [theme:genericsetup]\n self-destruct = true\n\n\nDexterity models\n----------------\n\nA usual use for this plugin is to ship a theme with pre-configured Dexterity\ncontent types. Unfortunately, describing a Dexterity XML schema in type\ndescription inline in type description XML is inconvenient (because the schema\nmust be escaped) and Dexterity only supports reading separate XML model\nfiles from filesystem and filesystem Python packages. Fortunately, this\nplugin allows populating existing Dexterity content types (and also the\nones installed with this plugin) with a matching model XML from the theme.\n\nBy default, the plugin loads model files from ``models``-subdirectory of the\nthem. Models must have matching filename with the content type id (with\n``.xml`` extension). The default import directory can be changed with:\n\n.. code:: ini\n\n [theme:genericsetup]\n models = my_models\n\nThe plugin does not overwrite existing models by default (unless they seem\nempty), but this can be changed (e.g. for development purposes) with:\n\n.. code:: ini\n\n [theme:genericsetup]\n models-overwrite = true\n\n\nMessage catalogs\n----------------\n\nThis plugin can also be used to register (and unregister) i18n message\ncatalogs directly from the theme. By default, the plugin looks for message\ncatalogs from ``locales``-subdirectory of the theme, expecting the usual\nmessage catalog directory structure:\n\n.. code::\n\n ./locales/en/LC_MESSAGES/foo.po\n ./locales/en/LC_MESSAGES/bar.po\n\nIn the above example, two message catalogs, one for language ``en`` for domain\n``foo`` and another for language ``en`` for domain ``bar`` are registered.\n\nThe default locales directory name can be changed with:\n\n.. code:: ini\n\n [theme:genericsetup]\n locales = my_locales\n\nThe registered message catalogs are unregistered when the theme is deactivated.\n\n.. note::\n\n The registered message catalogs use the persistent message catalog\n classes from *zope.app.i18n*. The existence of these catalogs can\n be confirmed from ZMI *Components*-tab from Plone site root by looking\n for *translationdomain* utilities with themesitesetup in their names.\n\n\nMosaic layouts (and other resources)\n------------------------------------\n\nThis plugin can also be used to populate also other persistent resource\ndirectories than theme directories. For example, with this plugin, your theme\ncould contain site and content layouts for Plone Mosaic. Layouts are copied\nfrom theme into their own resource directory namespaces when theme is activated\n(or updated). One layouts are copied, they are not removed, unless this plugin\nis configured to purge those directories.\n\nFor example, theme containing single site layout and content layout, could\ncontain the following file structure:\n\n.. code::\n\n ./resources/sitelayout/manifest.cfg\n ./resources/sitelayout/layout.html\n ./resources/contentlayout/manifest.cfg\n ./resources/contentlayout/layout.html\n\nThe default resources directory name can be from ``resources`` to e.g.\n``designs`` with:\n\n.. code:: ini\n\n [theme:genericsetup]\n resources = design\n\nBy default, this plugin never overwrites existing resources unless its\nconfiguration option ``resources-overwrite`` is enabled:\n\n.. code:: ini\n\n [theme:genericsetup]\n resources-overwrite = true\n\nIn addition, this plugin can be configured to purge existing directories\nbefore copying with:\n\n.. code:: ini\n\n [theme:genericsetup]\n resources-purge= true\n\nAlthough, the plugin will still never remove top-level resources directories\n(like ``theme``, ``sitelayout`` or ``contentlayout``).\n\n.. note::\n\n Technically resources are simply copied into ``portal_resources`` and they\n can be manually removed via ZMI. Please, note that changes made in theme\n editor are not copied unless theme has been re-activated (or updated).\n\n\nPermissions\n-----------\n\nThis plugin has also experimental support for TTW custom permissions, which\nare useful for more complex content management scenarios involving Dexterity\ncontent types and workflows. New permissions are registered before the\nGenericSetup profile get imported, to make to new permission to be available\nduring import.\n\nCustom permissions are listed in theme's ``manifest.cfg`` in *id Title* format\nas follow:\n\n.. code:: ini\n\n [theme:genericsetup]\n permissions =\n mydomain.addMyProduct MyDomain: Add My Product\n mydomain.removeMyProduct MyDomain: Remove My Product\n\nCustom permissions are removed when theme is disabled. Yet, they disappear\nfrom ZMI only when the site is restarted.\n\n.. note::\n\n The registered persistent permissions use and depend on LocalPermission\n class from *zope.app.localpermission*. If this package is removed without\n uninstalling theme with permisions at first, *zope.app.localpermission*\n must exit to prevent possible errors caused by missing object class.\n\n In addition, permissions must be registered for Zope 2 in a non-persistent\n way, which requires restart to remove permissions from ZMI screens.\n Because of this, even installed permissions continue to work only as long\n as this package is available.\n\n The existence of these permissions can be confirmed from ZMI\n *Components*-tab from Plone site root by looking for *Permission* utilities,\n on ZMI security tab and e.g. in the options for Add permission in ZMI portal\n type factory information pages.\n\n\nExporting the site setup\n------------------------\n\nThis plugin provides helper forms for exporting the current site setup\ninto a through-the-web created (writable) theme and importing that site setup\nmanually from the theme folder.\n\nThe export form is registered for the theme resource directory as\n``@@export-site-setup`` and the import form as ``@@import-site-setup``.\n\nThe export form is useful for creating the initial site setup into the theme\ndirectory. Simply\n\n1. Create a new theme from Theming control panel\n\n2. Go to the export form URL, e.g.\n ``http://localhost:8080/Plone/++theme++my-theme/@@export-site-setup``:\n\n3. Choose the steps you wish to export and click *Export*.\n\n.. image:: https://raw.githubusercontent.com/collective/collective.themesitesetup/master/docs/images/export-site-setup.png\n :width: 768px\n :align: center\n\n\nEditing the site setup\n----------------------\n\nThe site setup steps can be edited like any theme file through the\ntheme editor:\n\n.. image:: https://raw.githubusercontent.com/collective/collective.themesitesetup/master/docs/images/edit-site-setup.png\n :width: 768px\n :align: center\n\n**Tip:** You can Use `six feet up`_'s great `Generic Setup reference card`__ as\ncheat cheet for editing the site setup files.\n\n.. _six feet up: http://www.sixfeetup.com\n__ http://www.sixfeetup.com/plone-cms/quick-reference-cards/generic_setup.pdf/view\n\n**Note:** Because the theme editor hides all *dotfiles*, files starting with a\ndot must be renamed to end with ``.dotfile`` (and to not start with a dot).\n\n\nImporting the setup\n-------------------\n\nBy default, this plugin is configured import setup steps from a directory\n``install`` whenever the theme is activated, and steps from a directory\n``uninstall``, when the theme is deactivated. Both, install and uninstall\nstep directory can be changed in the plugin configuration.\n\nIn addition, it's possible to import the embedded steps manually using\nthe import setup form. Simply\n\n1. Go to the import form URL for your theme, e.g.\n ``http://localhost:8080/Plone/++theme++my-theme/@@import-site-setup``:\n\n2. Choose the steps you wish to import and click *Import*.\n\n\nBetter site structure export and import\n---------------------------------------\n\nThis package includes optional enhancements for the default Plone site\nstructure export and import.\n\nThe enhancements include:\n\n- support for News Item contents\n- support for Zope Page Templates\n- support for Python Scripts\n- support for exporting tagged hidden folders (like ``portal_skins/custom``)\n\nThe enhancements can be activated by including a special component\nconfiguration file in your Plone buildout's instance parts with:\n\n.. code:: ini\n\n [instance]\n ...\n zcml = collective.themesitesetup-extras\n\nZMI-only content, which is hidden in Plone (folders like ``portal_skins``) can\nbe included in the export by tagging the folders in ZMI interface tab with a\nspecial marker interface::\n\n ``collective.themesitesetup.interfaces.IGenericSetupExportableContainer``\n\n\nPageTemplates and PythonScripts can only be exported when they are located in a\nZMI-only container with this marker interface. So, if you'd like to export\ncontents in ``portal_skins/custom``, you should add one marker for\n``portal_skins`` and the other for ``custom``.\n\nThis is only required when exporting ZMI-only content. Importing ZMI-only\ncontent works according to normal structure import rules without these marker\ninterfaces.\n\n\nAbout plone.app.contenttypes support\n------------------------------------\n\n`Better site structure export and import`_ described above must be enabled\nto support exporting and importing site structures with\n`plone.app.contenttypes`_ based content.\n\nIn addition, `plone.app.textfield`_ ``>=1.2.5`` is recommended to fix issue,\nwhere structure import does not decode field value properly, causing\nUnicodeDecodeErrors later.\n\n.. _plone.app.contenttypes: https://pypi.python.org/pypi/plone.app.contenttypes\n.. _plone.app.textfield: https://pypi.python.org/pypi/plone.app.textfield\n\n\nAbout custom Dexterity content support\n--------------------------------------\n\nImporting site structures with custom Dexterity content types require custom\nadapter to be implemented and registered for each content type\n\n.. code:: python\n\n from Products.GenericSetup.interfaces import IContentFactory\n from collective.themesitesetup.content import DexterityContentFactoryBase\n from plone.dexterity.interfaces import IDexterityContent\n from zope.component import adapter\n from zope.interface import implementer\n\n @adapter(IDexterityContent)\n @implementer(IContentFactory)\n class MyTypeFactory(DexterityContentFactoryBase):\n portal_type = 'MyType'\n\n.. code:: xml\n\n \n\nThis is not required when Dexterity content is only created into site root\nor Archetypes based container.\n\nChangelog\n=========\n\n2.1.2 (2018-03-22)\n------------------\n\n- Fix to ensure that dynamically created message catalogs can have unicode message ids\n [datakurre]\n\n\n2.1.1 (2017-10-18)\n------------------\n\n- Fix issue where theme defined permissions were not properly activated on\n first theme activation due to theme settings cache\n [datakurre]\n\n\n2.1.0 (2017-10-08)\n------------------\n\n- Add feature to remove imported directories after theme activation to not\n expose those by theme traverser\n [datakurre]\n\n\n2.0.1 (2017-09-24)\n------------------\n\n- Fix issue where uninstalling theme raised error because unregistering\n localizations mutated list it was iterating\n [datakurre]\n\n\n2.0.0 (2017-09-24)\n------------------\n\n- Change to always unregister all themesitesetup based utilities on theme\n deactivation instead of the previous behavior to only unregister those\n currently desfined in theme\n [datakurre]\n\n\n1.5.1 (2017-06-15)\n------------------\n\n- Fix issue where it was not possible to install message catalogs with dot in domain\n [datakurre]\n\n\n1.5.0 (2017-05-27)\n------------------\n\n- Pin zope.app.i18n < 4.0.0\n [datakurre]\n\n\n1.4.1 (2017-04-11)\n------------------\n\n- Removed debug print\n [datakurre]\n\n\n1.4.0 (2017-04-11)\n------------------\n\n- Patch TTW message catalogs to support plonejs18n view (translate-pattern),\n but note that with plonejsi18n TTW catalog overrides don't cascade with\n the existing catalogs\n [datakurre]\n\n- Use theme cache for TTW permissions, because TTW permissions require that\n their existence is checked on each request\n [datakurre]\n\n\n1.3.2 (2017-01-03)\n------------------\n\n- Fix issue where message catalog support allowed (mostly accidentally)\n overriding messages with empty strings. Messages with empty strings are\n now ignored.\n [datakurre]\n\n\n1.3.1 (2016-12-14)\n------------------\n\n- Add to purge plone.app.blocks' site layout cache after resource directory\n copy\n [datakurre]\n\n\n1.3.0 (2016-11-22)\n------------------\n\n- Add support for populating persistent (plone.resource) resource directories\n [datakurre]\n\n- Refactor permission support to use zope.app.localpermission\n [datakurre]\n\n\n1.2.0 (2016-08-17)\n------------------\n\n- Add support for TTW custom permissions\n [datakurre]\n\n\n1.1.0 (2016-08-12)\n------------------\n\n- Add support for populating Dexterity content type models from theme\n from ``./models/Xxxxxx.xml``\n [datakurre]\n\n\n1.0.1 (2016-08-11)\n------------------\n\n- Fix issue where translationdomain internals prevented updating existing\n catalog\n [datakurre]\n\n\n1.0.0 (2016-08-11)\n------------------\n\n- Add support for registering i18n message catalogs directly from theme\n from ``./locales/xx/LC_MESSAGES/yyyyy.po``\n [datakurre]\n\n\n0.13.0 (2015-04-23)\n-------------------\n\n- Add support for exporting and importing plone.app.contenttypes -content\n [datakurre]\n\n\n0.12.0 (2015-04-04)\n-------------------\n\n- Move custom GS import export adapters to external configuration\n [datakurre]\n\n- Fix to register setup forms for p.a.theming layer\n [datakurre]\n\n\n0.11.1 (2015-04-04)\n-------------------\n\n- Update README\n [datakurre]\n\n\n0.11.0 (2015-04-04)\n-------------------\n\n- Add site setup import view to allow testing or manual upgrading of site\n setups\n [datakurre]\n\n- Add option to disable setup steps import via plugin configuration variable in\n theme manifest (either with ``enabled = false`` or ``disabled = true``)\n [datakurre]\n\n\n0.10.0 (2015-04-03)\n-------------------\n\n- Add GS content export support to include non-CMF-containers\n marked with\n ``collective.themesitesetup.interfaces.IGenericSetupExportableContainer``\n [datakurre]\n\n- Add GS content export/import to support non-CMF-containers, PythonScripts\n and PageTemplates.\n [datakurre]\n\n\n0.9.0 (2015-04-01)\n------------------\n\n- First release.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/collective/collective.themesitesetup/", "keywords": "", "license": "GPL", "maintainer": "", "maintainer_email": "", "name": "collective.themesitesetup", "package_url": "https://pypi.org/project/collective.themesitesetup/", "platform": "", "project_url": "https://pypi.org/project/collective.themesitesetup/", "project_urls": { "Homepage": "https://github.com/collective/collective.themesitesetup/" }, "release_url": "https://pypi.org/project/collective.themesitesetup/2.1.2/", "requires_dist": [ "collective.monkeypatcher", "plone.api", "plone.app.controlpanel", "plone.app.theming", "plone.autoform", "plone.dexterity", "plone.supermodel", "plone.z3cform", "polib", "Products.GenericSetup", "setuptools", "z3c.form", "zope.app.i18n (<4.0.0)", "zope.app.localpermission", "zope.event", "zope.globalrequest", "zope.i18n", "zope.lifecycleevent", "zope.schema", "plone.app.testing; extra == 'test'", "plone.app.robotframework; extra == 'test'", "robotframework-selenium2screenshots; extra == 'test'" ], "requires_python": "", "summary": "GenericSetup profiles for plone.app.theming", "version": "2.1.2" }, "last_serial": 5588065, "releases": { "0.10.0": [ { "comment_text": "", "digests": { "md5": "4d65f66fa200b90268321e28b263d6fb", "sha256": "47da4bd6710fa2e6039f5a56b920fdabb76a07029a9c614fa431b2f626839aae" }, "downloads": -1, "filename": "collective.themesitesetup-0.10.0.tar.gz", "has_sig": false, "md5_digest": "4d65f66fa200b90268321e28b263d6fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13832, "upload_time": "2015-04-03T01:39:28", "url": "https://files.pythonhosted.org/packages/07/aa/cd51fbd5eee495e5011248245146ca3a7161d9d2044f021e7dcc418b27a9/collective.themesitesetup-0.10.0.tar.gz" } ], "0.11.0": [ { "comment_text": "", "digests": { "md5": "7e3d723bebfe12a6a68b4b3f339c8966", "sha256": "1c5ad045c3b9b5cab8f6ee89391b4afbff595e24d860fdc3363bc73cc485d7df" }, "downloads": -1, "filename": "collective.themesitesetup-0.11.0.tar.gz", "has_sig": false, "md5_digest": "7e3d723bebfe12a6a68b4b3f339c8966", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15763, "upload_time": "2015-04-04T01:18:30", "url": "https://files.pythonhosted.org/packages/ad/09/40183eb0fdc9ef0897c059ba4cfff0106fed7ba9db6e4df5d55c12105972/collective.themesitesetup-0.11.0.tar.gz" } ], "0.11.1": [ { "comment_text": "", "digests": { "md5": "76b7644461f14264cc637664beb32a56", "sha256": "99b0e00295a00c75efe8ec767b8d46a9a986bfaca3b0340e75b3c655bc8c06c1" }, "downloads": -1, "filename": "collective.themesitesetup-0.11.1.tar.gz", "has_sig": false, "md5_digest": "76b7644461f14264cc637664beb32a56", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15852, "upload_time": "2015-04-04T01:21:20", "url": "https://files.pythonhosted.org/packages/08/8e/69f9e64f3e3ace4aaea68723186d1ed829bf48aab08400136a5d47edd8ee/collective.themesitesetup-0.11.1.tar.gz" } ], "0.12.0": [ { "comment_text": "", "digests": { "md5": "42516b21f4ef48f8194575fb3b46b56b", "sha256": "70d72e55bbe04c6c84e5b91c2ca6d41f8625d74eae98e1f1ed428d619a395b4d" }, "downloads": -1, "filename": "collective.themesitesetup-0.12.0.tar.gz", "has_sig": false, "md5_digest": "42516b21f4ef48f8194575fb3b46b56b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18496, "upload_time": "2015-04-04T07:57:04", "url": "https://files.pythonhosted.org/packages/41/ab/1b366e202347c135b8dea960aad06815bf241174c44b105e6a89bb45b8dd/collective.themesitesetup-0.12.0.tar.gz" } ], "0.13.0": [ { "comment_text": "", "digests": { "md5": "13be239d94432f3997877e41261798bb", "sha256": "41ab0cc30de7c2b2927fe9a923b8446873bb6ece0432f415daafddd2db98aeab" }, "downloads": -1, "filename": "collective.themesitesetup-0.13.0.tar.gz", "has_sig": false, "md5_digest": "13be239d94432f3997877e41261798bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19917, "upload_time": "2015-04-23T02:29:45", "url": "https://files.pythonhosted.org/packages/a7/a8/611f263ae1486f471279904fdbaf28c8d9d0c3f78546b5dc49342dc60d14/collective.themesitesetup-0.13.0.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "c5516eac76f9d9bd95bf4bd09b4fa5a6", "sha256": "c8865de42e1e95ebfefc1bf37ee988432a6e58f72366b715703fa239b6e1c62b" }, "downloads": -1, "filename": "collective.themesitesetup-0.9.0.tar.gz", "has_sig": false, "md5_digest": "c5516eac76f9d9bd95bf4bd09b4fa5a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12432, "upload_time": "2015-04-01T16:55:18", "url": "https://files.pythonhosted.org/packages/e9/39/cd49c145185a69ea8291a5d634329f6fd6efc06fb81d04660f2501870d9f/collective.themesitesetup-0.9.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "7d338a2c3bb29931df8ba3b1cb29407e", "sha256": "e00f330b3cce399507e56862367120073137d024d73499dfe4852ae8e2e65b8e" }, "downloads": -1, "filename": "collective.themesitesetup-1.0.0.tar.gz", "has_sig": false, "md5_digest": "7d338a2c3bb29931df8ba3b1cb29407e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20924, "upload_time": "2016-08-11T12:22:05", "url": "https://files.pythonhosted.org/packages/82/d2/e3c666e05bc97d37e6f8cd7eae4ea7cba91d46fe8fc622414f10a24cbecc/collective.themesitesetup-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "277c5f764b16b3c41bce3bd0a4623e5e", "sha256": "4c6bc033dce77f9819fa4b0915c8690245256e40d28314a00a9a92dcdf4dd0b2" }, "downloads": -1, "filename": "collective.themesitesetup-1.0.1.tar.gz", "has_sig": false, "md5_digest": "277c5f764b16b3c41bce3bd0a4623e5e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21020, "upload_time": "2016-08-11T13:03:35", "url": "https://files.pythonhosted.org/packages/3c/66/f6102870dd0766c676f37f26b47292cc37d7a6ec6b198498e0f01ad2c393/collective.themesitesetup-1.0.1.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "5c1edd2a48c83a9d2b696c33913c8d3e", "sha256": "3756610088017abbd7447ce1f73f53d56d05d3b216147ff262667c2a62cd3dcd" }, "downloads": -1, "filename": "collective.themesitesetup-1.1.0.tar.gz", "has_sig": false, "md5_digest": "5c1edd2a48c83a9d2b696c33913c8d3e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22418, "upload_time": "2016-08-12T07:54:06", "url": "https://files.pythonhosted.org/packages/2f/5f/a0270f888fc847c55756a11019db901665602b4492bc29d75e35ccf0a5f8/collective.themesitesetup-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "6a8a4a5ef9a3aa3605985518a5697658", "sha256": "02171fca628bbb52ac356979880520ca44571e9b4fa024e9ae94a414fc42919b" }, "downloads": -1, "filename": "collective.themesitesetup-1.2.0.tar.gz", "has_sig": false, "md5_digest": "6a8a4a5ef9a3aa3605985518a5697658", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23857, "upload_time": "2016-08-17T10:28:28", "url": "https://files.pythonhosted.org/packages/32/67/4a192304c8f2a0a2c44824af0702b7c1232e25cd78fc04c5d2c2a8ecbe50/collective.themesitesetup-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "413004fcb44694234d69d6fe23a14669", "sha256": "9e02e70433119a2936d9be3cd6d73d7c451b267754449ee4ada463e75e92c015" }, "downloads": -1, "filename": "collective.themesitesetup-1.2.1.tar.gz", "has_sig": false, "md5_digest": "413004fcb44694234d69d6fe23a14669", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 108821, "upload_time": "2016-09-01T07:25:04", "url": "https://files.pythonhosted.org/packages/76/4a/6dde456baa7be981264196a6add1b71388156828db6ea837492903c039de/collective.themesitesetup-1.2.1.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "57ad857695f1acaee71f8aa31e64c1f0", "sha256": "3556e7457146114d2a7867446ab139e3108438701981a500b65585643c55caab" }, "downloads": -1, "filename": "collective.themesitesetup-1.3.0.tar.gz", "has_sig": false, "md5_digest": "57ad857695f1acaee71f8aa31e64c1f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25355, "upload_time": "2016-11-22T20:15:54", "url": "https://files.pythonhosted.org/packages/62/a2/09a331a8e363d95013d07fa2403809b5a1badb0d4ea7027764b9404caa86/collective.themesitesetup-1.3.0.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "81d446b4d5056d4715045894eb7bf678", "sha256": "f10759ab540d5ebe09b943c6b2876192bac5a35d021702780859ac0543783890" }, "downloads": -1, "filename": "collective.themesitesetup-1.3.1.tar.gz", "has_sig": false, "md5_digest": "81d446b4d5056d4715045894eb7bf678", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 113241, "upload_time": "2016-12-14T07:27:34", "url": "https://files.pythonhosted.org/packages/fb/6b/e90f35f1fa221f556a38b766eb0aa9d3ca0d90f811beebfc6138101a1630/collective.themesitesetup-1.3.1.tar.gz" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "23edcda0d3622a1828a1e502d02716a4", "sha256": "1279b6c6d2eed611527c573a74152777d693699cac92518f9e5750c436e46b9f" }, "downloads": -1, "filename": "collective.themesitesetup-1.3.2.tar.gz", "has_sig": false, "md5_digest": "23edcda0d3622a1828a1e502d02716a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 113132, "upload_time": "2017-01-03T08:29:42", "url": "https://files.pythonhosted.org/packages/e9/ce/44e631e6485d357aa1df1f356ae52b2556ce4e01bfb8dc843ba12e840caf/collective.themesitesetup-1.3.2.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "37fd4db99846b29e5941d0a76a9b3768", "sha256": "813ea1587307feff2f431f348f7e72140d7340078904735c93d298f0eb24bc5f" }, "downloads": -1, "filename": "collective.themesitesetup-1.4.0.tar.gz", "has_sig": false, "md5_digest": "37fd4db99846b29e5941d0a76a9b3768", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 110821, "upload_time": "2017-04-11T12:16:32", "url": "https://files.pythonhosted.org/packages/f6/ee/1f8cd05bc6a6b2fe25ad56f3b6e4dd8cf9adbbabae46eb7014d0039e4225/collective.themesitesetup-1.4.0.tar.gz" } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "3e32f675cff50260dc14f672fe2b5aca", "sha256": "f3630da373baea3509884fd57a43871228e0b5db6e72fa237a663687f75d1879" }, "downloads": -1, "filename": "collective.themesitesetup-1.4.1.tar.gz", "has_sig": false, "md5_digest": "3e32f675cff50260dc14f672fe2b5aca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 110829, "upload_time": "2017-04-11T12:21:25", "url": "https://files.pythonhosted.org/packages/85/b9/9b5ea103ee64e4e52f24c097debc9b1da1f28c452f55cb748bcd56f98c94/collective.themesitesetup-1.4.1.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "0b1a9628bfeb60a222f4a4228dcbaef0", "sha256": "110ae7dc019cecab50d45b1ef49bc465437f62a0b6939d0c4b906d8d9a9135ef" }, "downloads": -1, "filename": "collective.themesitesetup-1.5.0.tar.gz", "has_sig": false, "md5_digest": "0b1a9628bfeb60a222f4a4228dcbaef0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 110915, "upload_time": "2017-05-27T18:11:07", "url": "https://files.pythonhosted.org/packages/18/df/1ba3216771764ae1fec1ad7ad3f983de4d0b3c3c5cbd90d17844aca5bf0f/collective.themesitesetup-1.5.0.tar.gz" } ], "1.5.1": [ { "comment_text": "", "digests": { "md5": "f4365ae5a960ec4d58a9aa402992bb47", "sha256": "6d6d7e583814a2962027dc4a6db00789ea7f055d52b28ff0e3fac109255786f4" }, "downloads": -1, "filename": "collective.themesitesetup-1.5.1.tar.gz", "has_sig": false, "md5_digest": "f4365ae5a960ec4d58a9aa402992bb47", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 110946, "upload_time": "2017-06-15T06:02:58", "url": "https://files.pythonhosted.org/packages/5e/aa/a672eef914324dfdb41a28d8d501be85f13fea4edbc7b4db3be969196987/collective.themesitesetup-1.5.1.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "d175e7945fa37ee4963368ca6fc29484", "sha256": "f71ed72479aff7a49c67e3d93fd06f254590e6df764aa7b7430809609dd45b91" }, "downloads": -1, "filename": "collective.themesitesetup-2.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "d175e7945fa37ee4963368ca6fc29484", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 31847, "upload_time": "2017-09-23T21:55:17", "url": "https://files.pythonhosted.org/packages/cb/75/276c4bfdd876e70af48509a15bf7e9c47d01bd135de53522e420f4e68cb2/collective.themesitesetup-2.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e08eaf25972d6314d7ad8f39002a9799", "sha256": "9d22fff1be71540e8e7c5b6d3d5f2cf5318e2cc520a0327afe1a210a6c7fc1dc" }, "downloads": -1, "filename": "collective.themesitesetup-2.0.0.tar.gz", "has_sig": false, "md5_digest": "e08eaf25972d6314d7ad8f39002a9799", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 111148, "upload_time": "2017-09-23T21:55:20", "url": "https://files.pythonhosted.org/packages/b2/92/6a51544e1879d5b7b78b19ca1a9a95ffa900bf171cfade8866b6f168a25a/collective.themesitesetup-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "0315d58fffbe28083888b175884eeadb", "sha256": "46c292d3b026dce5bbdb2c293ad12650be911bce297817451e57e35369b3cd09" }, "downloads": -1, "filename": "collective.themesitesetup-2.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "0315d58fffbe28083888b175884eeadb", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 31953, "upload_time": "2017-09-24T19:45:32", "url": "https://files.pythonhosted.org/packages/73/bf/abb30002a2f7a367e0388f9bb35072a089cc43864a4af86262deb627de9c/collective.themesitesetup-2.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bd4d461a458d347f26615b2817c3f71c", "sha256": "dc1bbf4ba7115817dac4209fd5abe46198f64866ace8a30e0dffe9e299960a69" }, "downloads": -1, "filename": "collective.themesitesetup-2.0.1.tar.gz", "has_sig": false, "md5_digest": "bd4d461a458d347f26615b2817c3f71c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 111228, "upload_time": "2017-09-24T19:45:35", "url": "https://files.pythonhosted.org/packages/d0/97/fb7aa7c36419bc587e265c461f0ee42c2aef165d10fca1ecae015d0ae2cf/collective.themesitesetup-2.0.1.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "b8de1170368deecb23ac30e26b05e34a", "sha256": "38dcfe601f5e90848770874c826bdc68d9f4e44b1e0e355018a96852aacf1d22" }, "downloads": -1, "filename": "collective.themesitesetup-2.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "b8de1170368deecb23ac30e26b05e34a", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 32618, "upload_time": "2017-10-08T12:14:28", "url": "https://files.pythonhosted.org/packages/4f/02/ac4610c735847b1a09ea8f9587d5ef3ddf94b5f098f7c844e55e87f4d205/collective.themesitesetup-2.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "47b13672475a12184a7df90dd7ee0430", "sha256": "84a0e85d6ec1fe836a92ebee387af1467a5ae1fdfa7a1e04e1bcc4be111f8a04" }, "downloads": -1, "filename": "collective.themesitesetup-2.1.0.tar.gz", "has_sig": false, "md5_digest": "47b13672475a12184a7df90dd7ee0430", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 111774, "upload_time": "2017-10-08T12:14:30", "url": "https://files.pythonhosted.org/packages/bf/35/c0b9a953fa1b56757c161e9d13e6cde42ffebf669ba44b3cb424295a85da/collective.themesitesetup-2.1.0.tar.gz" } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "1db819df0e162173b7ccf34d33ec42fb", "sha256": "2f375fe57c5c1e0a460fec87b1fecef59e3157a0e1f6a0f65d0821588e63d103" }, "downloads": -1, "filename": "collective.themesitesetup-2.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "1db819df0e162173b7ccf34d33ec42fb", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 32712, "upload_time": "2017-10-17T22:38:19", "url": "https://files.pythonhosted.org/packages/d4/f0/9eb7cd42e025ff674a07b547206fbaa74da8242ab3f8955586194e433380/collective.themesitesetup-2.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "18bb2571b68f3445c5a6d427db423c24", "sha256": "6f50fad9930896cdfa0a942c1278344e637439c0de6518d6fa395c917625067c" }, "downloads": -1, "filename": "collective.themesitesetup-2.1.1.tar.gz", "has_sig": false, "md5_digest": "18bb2571b68f3445c5a6d427db423c24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 111826, "upload_time": "2017-10-17T22:38:21", "url": "https://files.pythonhosted.org/packages/5d/57/cb79f3eb74b6a8940ceccf9fd9c6fb6ac9d2417e4fbf5f97d6011dbe6d22/collective.themesitesetup-2.1.1.tar.gz" } ], "2.1.2": [ { "comment_text": "", "digests": { "md5": "e271a7c71c0c589a80741dc9c1c07358", "sha256": "0eeba17f20835eac6eb307e4fca09dcc274aefcf8fe529a6f80868f9f225047c" }, "downloads": -1, "filename": "collective.themesitesetup-2.1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "e271a7c71c0c589a80741dc9c1c07358", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 32900, "upload_time": "2018-03-22T13:35:08", "url": "https://files.pythonhosted.org/packages/59/6c/88a0c19276225965b18a07af185ab7ddf7e5d802ef8b73b43b87e5469ced/collective.themesitesetup-2.1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a079ec83766404b7837db44e7c8598b1", "sha256": "f483c1daaabc20846aee8054d25dda2b3385bf8293d1a59210940372fe0e6bb3" }, "downloads": -1, "filename": "collective.themesitesetup-2.1.2.tar.gz", "has_sig": false, "md5_digest": "a079ec83766404b7837db44e7c8598b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 112322, "upload_time": "2018-03-22T13:35:10", "url": "https://files.pythonhosted.org/packages/24/73/6300a99420599876804293cce5e6e532426a6ea827ef9f883eb66bf318ce/collective.themesitesetup-2.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e271a7c71c0c589a80741dc9c1c07358", "sha256": "0eeba17f20835eac6eb307e4fca09dcc274aefcf8fe529a6f80868f9f225047c" }, "downloads": -1, "filename": "collective.themesitesetup-2.1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "e271a7c71c0c589a80741dc9c1c07358", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 32900, "upload_time": "2018-03-22T13:35:08", "url": "https://files.pythonhosted.org/packages/59/6c/88a0c19276225965b18a07af185ab7ddf7e5d802ef8b73b43b87e5469ced/collective.themesitesetup-2.1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a079ec83766404b7837db44e7c8598b1", "sha256": "f483c1daaabc20846aee8054d25dda2b3385bf8293d1a59210940372fe0e6bb3" }, "downloads": -1, "filename": "collective.themesitesetup-2.1.2.tar.gz", "has_sig": false, "md5_digest": "a079ec83766404b7837db44e7c8598b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 112322, "upload_time": "2018-03-22T13:35:10", "url": "https://files.pythonhosted.org/packages/24/73/6300a99420599876804293cce5e6e532426a6ea827ef9f883eb66bf318ce/collective.themesitesetup-2.1.2.tar.gz" } ] }