{ "info": { "author": "Internet Development, ILRT, University of Bristol", "author_email": "internet-development@bris.ac.uk", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Plone", "Framework :: Zope2", "Framework :: Zope3", "Intended Audience :: Developers", "Intended Audience :: Other Audience", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "ILRT Formal Workflow\n====================\n\nOverview\n--------\n\nEd Crewe, `ILRT\n`_ at University of Bristol, June 23rd 2013\n\nNOTE: Updated from plone 3.* version 0.6 to Plone 4.0 compatible version 1.6\n Latest version is 1.9 tested with Plone 4.3\n\nThere are no functional changes between 0.6 and 1.9, just a skins install \ntweak and updates of the test suite. \n\nSee http://bitbucket.org/edcrewe/ilrt.formalworkflow for mecurial source \nrepository, issue tracker etc.\n\nFormal workflow is designed for sites where there may be many editors\nfor whom unmoderated access to change live published content on the \nweb site is not desired. A typical scenario may be an organistaion's \npublic website which has to comply with certain legal restrictions or\neditorial style for example. To ensure this compliance only a limited\nsubset of editors are trusted to review and publish content.\nWhilst content in the private state is available to all editors.\n\nThis package applies a workflow definition based on simple publication \nworkflow ... but it ensures that editors cannot modify public content.\nInstead it enables `plone.app.iterate`_ with which users can check out a \nworking copy of a published item to work on and resubmit for review.\n\n.. _`plone.app.iterate`: http://pypi.python.org/pypi/plone.app.iterate\n\nEditors and owners are also restricted from deleting published items or \nreverting them to past versions, essentially anything that could change \npublished content, without review.\n\nWorkflow\n--------\n\nA diagram of the workflow is available in /docs folder \n\n.. image:: http://mail.ilrt.bris.ac.uk/~cmetc/images/formalworkflow.png\n\nThe following walks through a user story::\n\n Editor\n - An editor creates a document\n - They edit and then submit it for review\n - It is now in the pending state\n\n Reviewer\n - The document appears for review in their review list so they click on it\n - They make a few minor ammendments and publish it\n\n Editor\n - A week later some more information needs to be added to the document\n - The editor goes to it, but it there is no workflow menu just \n State:Published so they cannot retract it. The edit and history tabs\n are also gone. So instead they must click on 'Make changes' from the actions menu.\n - This locks the item and marks it as being edited in a working copy.\n - The editor does their edits then clicks on submit to bring their changes to the\n attention of the reviewer\n\n Reviewer\n - The reviewer sees the page pop up in their review list\n - They click on it and look at the changes the editor has made. \n They like the changes but decide they want some modifications made to them\n by the editor. They dont want to 'Cancel changes' since the editor has done a\n lot of changes, so they just add a note of the further changes needed and make\n the working copy private again.\n\n Editor\n - The editor reads the comment and re-edits the working copy, once these final changes\n are complete is it resubmitted to the pending state. \n\n Reviewer\n - The reviewer notices the item is back again in their review list, so realises \n it has been re-edited.\n They click on it ... see that it is ready and so do the 'Accept changes' to replace \n the current published version, at which point the working copy is removed.\n\nNotes\n-----\n\nThis package is really all just xml config data and reworking skin copy, paste\nand delete security to be object specific rather than folder based.\nHowever though it contains little python aside from the functional tests, \nit is a commonly required workflow which does require some time consuming \nconfiguration tweaks.\n\nIf this workflow is applied in conjunction with a theme egg then the formalworkflow\nskin should be added near the top of the editing layer's skins listing in the \nportal_skins tool.\n\nIf this workflow is applied to an existing site you may require the \n`ilrt.migrationtool \n`_ to use its utility for mapping \nexisting content states from one workflow to another. Otherwise changing \nworkflow reverts objects to the new workflow's default state.\n\nIf you wish to use custom types with this workflow you will need to make them versionable \nvia the \n`portal_repository tool\n`_ or \nplone.app.iterate will not be available for them. \n\nIf formal workflow is applied to folders (as is the default profile setting) then types \nwithout workflow such as images and files cannot be added or deleted by editors. \nTo fix this a slightly adapted version of one_state_workflow is also included for these \ncontent types that allows for editors to modify this content unrestricted. \n\nYou can customize which types use formal_worflow, and hence enforce a review process, \nvia the the portal_workflow tool. You could also choose to only apply formal workflow \nto the high profile parts of your site, via `placeful workflow\n`_.\n\nIf you dont want users questioned over the location for their checkouts then you can\nspecify a checkout locator globally in the site properties. Currently this would be\nglobal_checkout_locator = 'plone.app.iterate.home' or 'plone.app.iterate.parent'\nIf not set then the default behaviour is used.\n\n\nChangelog for ilrt.formalworkflow\n---------------------------------\n\nilrt.formalworkflow - 1.9 Released - 23rd June\n\n - Fix formalworkflow with latest Plone 4.3, \n Use index not template attrib from plone.app.iterate\t \n - Fix doc tests wrt. templates \n - Modify setup.py to specify test requirements\n\nilrt.formalworkflow - 1.8 Released - 1st December 2011\n\n - Modify configure zcml for cmf permissions compatibility with plone 4.1\n - Add some standard content rule email notifiers related to workflow actions\n - Add ContentPanels to workflow configuration\n - Fix some deprecated syntax in tests \n\n Changes funded by the University of the Highlands and Islands - John McAlpine & Jane Fitzpatrick\n\n [Ed Crewe, R&D - University of Bristol] \n\nilrt.formalworkflow - 1.7 Released - 29th September 2011\n\n - Some files missing from the egg\n\n [Ed Crewe, R&D - University of Bristol] \n\nilrt.formalworkflow - 1.6 Released - 2nd September 2010\n\n - Tested against plone 4.0 - fixed tests for new default plone skin\n - Modified skin setup to add formalworkflow layer to the two plone skins not create its own\n\n [Ed Crewe, ILRT - University of Bristol]\n\nilrt.formalworkflow - 0.6 Released - 10th September 2009\n\n - Tested against plone 3.3 - fixed tests\n - Added option to globally set check out location in site properties.\n\n [Ed Crewe, ILRT - University of Bristol]\n\nilrt.formalworkflow - 0.5 Released - 10th June 2009\n\n - Added a subclass of the iterate info viewlet to redeclare the security so that \n editors can see it and find existing checkouts.\n\n [Dave Mote, Washtenaw County Government]\n\nilrt.formalworkflow - 0.4 Released - 20th May 2009\n\n - Added an adapted version of one_state_workflow to allow editors to add \n and delete images and files. Since the default formalworkflow profile adds \n formal_workflow to folders - blocking editor modification of unworkflowed types.\n\n [Ed Crewe, ILRT - University of Bristol]\n\nilrt.formalworkflow - 0.3 Released - 5th April 2009\n\n - Changed action names and templates to be less versioning orientated\n Now uses Make changes, Accept changes and Cancel changes\n - Fixed folder permissions checks blocking delete, copy and paste of objects\n in published folders for editors\n - Cleaned up permissions\n - Removed unnecessary formalworkflow layer\n\n [Ed Crewe, ILRT - University of Bristol]\n\nilrt.formalworkflow - 0.2 Released - 20th Jan 2009\n\n - Released to pypi with some documentation\n\n [Ed Crewe, ILRT - University of Bristol]\n\nilrt.formalworkflow - 0.1 Unreleased\n\n - Initial package structure.\n\n [zopeskel]\n\n\nTo Do list\n----------\n\n#. Find a better way to allow permissions of objects to be used rather \n than those of their containers for delete, copy and paste.\n Currently it uses a workaround that needs proxy manager then does a\n manual permission check, within the skins.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://bitbucket.org/edcrewe/ilrt.formalworkflow", "keywords": "web zope plone workflow", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "ilrt.formalworkflow", "package_url": "https://pypi.org/project/ilrt.formalworkflow/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/ilrt.formalworkflow/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://bitbucket.org/edcrewe/ilrt.formalworkflow" }, "release_url": "https://pypi.org/project/ilrt.formalworkflow/1.9/", "requires_dist": null, "requires_python": null, "summary": "Formal workflow is designed to prevent editing, deletion or reversion of published content from skipping review", "version": "1.9" }, "last_serial": 777605, "releases": { "0.2": [ { "comment_text": "", "digests": { "md5": "5ab5d589ac4e7d907828182abb6a3cd3", "sha256": "148778c8fbfaa89f0caac5446d971574a6bcd54cc875ad80675deadeb0de2310" }, "downloads": -1, "filename": "ilrt.formalworkflow-0.2-py2.4.egg", "has_sig": false, "md5_digest": "5ab5d589ac4e7d907828182abb6a3cd3", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 19111, "upload_time": "2009-01-19T17:05:43", "url": "https://files.pythonhosted.org/packages/d6/4f/fe042f84c959a6e44f2609b6d2eef7d41ae8273121618eca03d20718a2fb/ilrt.formalworkflow-0.2-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "149206a148fbc987be7dcb98f6d87807", "sha256": "503914f825e22c363a946edd57b8670a53594e80a6dc309edff974be153e13cf" }, "downloads": -1, "filename": "ilrt.formalworkflow-0.2.tar.gz", "has_sig": false, "md5_digest": "149206a148fbc987be7dcb98f6d87807", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40328, "upload_time": "2009-01-19T17:05:43", "url": "https://files.pythonhosted.org/packages/ec/8d/8eb4a69e16aff1a9fbf854ca6fdac51d6fc48c74a32b00c717a0ea546194/ilrt.formalworkflow-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "1fceaaef10be5d5e157fe26a51f07c85", "sha256": "ee90689b00fbab22c487d4d2f77e52ce32c2b5292ed6dcd08ede547aac69bf56" }, "downloads": -1, "filename": "ilrt.formalworkflow-0.3-py2.4.egg", "has_sig": false, "md5_digest": "1fceaaef10be5d5e157fe26a51f07c85", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 35652, "upload_time": "2009-04-05T16:37:13", "url": "https://files.pythonhosted.org/packages/d8/71/f9e4ee0b71071421fdb1183f6a75d2c9cd899c5d0004d56c774fa0d4d095/ilrt.formalworkflow-0.3-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "9bac5b86ae791a198af5c66516d38bf1", "sha256": "182868e848e28ccdcb2448eb84c51af0ffe2ec2b82397522a95f57ba616c5ff7" }, "downloads": -1, "filename": "ilrt.formalworkflow-0.3.tar.gz", "has_sig": false, "md5_digest": "9bac5b86ae791a198af5c66516d38bf1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46976, "upload_time": "2009-04-05T16:37:12", "url": "https://files.pythonhosted.org/packages/98/45/d9608dd5d7d005eb50fea747fd0aafb83528ba5817388a4588a9d96e146a/ilrt.formalworkflow-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "496b04fd3b75abb3ab8d0ab4f2f0bc7d", "sha256": "df74d83916f36095694c810ba74c5b01c3632cd1f18bd42ed5328dfbd91cd6bf" }, "downloads": -1, "filename": "ilrt.formalworkflow-0.4-py2.4.egg", "has_sig": false, "md5_digest": "496b04fd3b75abb3ab8d0ab4f2f0bc7d", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 37080, "upload_time": "2009-05-20T18:39:41", "url": "https://files.pythonhosted.org/packages/d9/60/6c4dcb72a1aa425fea21174ea92f51732a7bfd566392fa3347cb01709873/ilrt.formalworkflow-0.4-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "460ed2e86aa2f80f2204ede32daa358e", "sha256": "32be1cd5853532ddb700700fbe1b43ae6ddfd1b5746f93caa3f4c70e5e710988" }, "downloads": -1, "filename": "ilrt.formalworkflow-0.4.tar.gz", "has_sig": false, "md5_digest": "460ed2e86aa2f80f2204ede32daa358e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44357, "upload_time": "2009-05-20T18:39:41", "url": "https://files.pythonhosted.org/packages/4a/d1/8f8e838a6f6c5d537e744e0b7efd2ad2ed3eab790750bed11bf8d0d6a0e1/ilrt.formalworkflow-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "1038938cf35dc32c6d5fe83bf1f5b8eb", "sha256": "5a96ec90be293510133221e9234031de04f76b5cbaed422b4e2c3578684c05a2" }, "downloads": -1, "filename": "ilrt.formalworkflow-0.5-py2.4.egg", "has_sig": false, "md5_digest": "1038938cf35dc32c6d5fe83bf1f5b8eb", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 38468, "upload_time": "2009-06-10T19:38:15", "url": "https://files.pythonhosted.org/packages/86/80/2e7fa851ff026051611fbab0ac217c161fbb79fe10188fbff0a9258b2f2a/ilrt.formalworkflow-0.5-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "b838071716a427bdead7aa0c9d1ebf52", "sha256": "8ac3b6766e4d550d2911942ffd90d033c68ff539ee3dd6c9e60793ba4cb5332a" }, "downloads": -1, "filename": "ilrt.formalworkflow-0.5.tar.gz", "has_sig": false, "md5_digest": "b838071716a427bdead7aa0c9d1ebf52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44981, "upload_time": "2009-06-10T19:38:15", "url": "https://files.pythonhosted.org/packages/93/6c/5b1a5b3dad01e1216b5e97cfff0c6937d93a7b13bacc3eb1afc269571f61/ilrt.formalworkflow-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "6d5bcb89185eaaa738d2248b77ba4813", "sha256": "d6e9357412340b630e0c75f2689d54f181cbf6b0bef9f2e67d54392101d48305" }, "downloads": -1, "filename": "ilrt.formalworkflow-0.6-py2.4.egg", "has_sig": false, "md5_digest": "6d5bcb89185eaaa738d2248b77ba4813", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 41525, "upload_time": "2009-09-10T18:25:03", "url": "https://files.pythonhosted.org/packages/96/30/46bb9561c522420a861760989fd484fe246e388f75fcce5fd98b840b96d4/ilrt.formalworkflow-0.6-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "a3433b81fa5d3af78fa393a5edc9ba05", "sha256": "c402367b4e71d682a7c14a26a7e19d6b02725098b043f6a0410756cd99ae70b6" }, "downloads": -1, "filename": "ilrt.formalworkflow-0.6.tar.gz", "has_sig": false, "md5_digest": "a3433b81fa5d3af78fa393a5edc9ba05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45907, "upload_time": "2009-09-10T18:25:03", "url": "https://files.pythonhosted.org/packages/5d/ab/5c2ea2cce7ee4cc22fce2e8b1890a073d55373e495ffc3db084a38ad4ae2/ilrt.formalworkflow-0.6.tar.gz" } ], "1.6": [ { "comment_text": "", "digests": { "md5": "0c050b3275d124ebd24229a308833b6a", "sha256": "c1b5e27b9dcdbd2816349beb7ef8c8241d9b506876d475493f5f669c764b58e6" }, "downloads": -1, "filename": "ilrt.formalworkflow-1.6-py2.6.egg", "has_sig": false, "md5_digest": "0c050b3275d124ebd24229a308833b6a", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 45944, "upload_time": "2010-09-02T11:08:42", "url": "https://files.pythonhosted.org/packages/06/d3/9f063c4a89c12070047172674546dea9821a4ed95eea6f91f4dcffafa35c/ilrt.formalworkflow-1.6-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "532a36afe601e97b1ff857274ece48c4", "sha256": "0b62cdf827336b8c3a0bdfbd73bef4d8257f78a9df7fb1319f7fbe41eae95de0" }, "downloads": -1, "filename": "ilrt.formalworkflow-1.6.tar.gz", "has_sig": false, "md5_digest": "532a36afe601e97b1ff857274ece48c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46998, "upload_time": "2010-09-02T11:08:42", "url": "https://files.pythonhosted.org/packages/0b/85/34eedcef8b4f68a1e908f10e6be4abe63a7a53f0b05625a6a7f4e270be9a/ilrt.formalworkflow-1.6.tar.gz" } ], "1.7": [ { "comment_text": "", "digests": { "md5": "f93cb2ea3c7a935cd008b6fd9a77137b", "sha256": "5e842189772471a1d5fcf7a381a1276bdc2463530fc7accb7ae55af50cc47e7c" }, "downloads": -1, "filename": "ilrt.formalworkflow-1.7-py2.6.egg", "has_sig": false, "md5_digest": "f93cb2ea3c7a935cd008b6fd9a77137b", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 46016, "upload_time": "2010-09-29T14:16:07", "url": "https://files.pythonhosted.org/packages/83/16/6a47583d1596623a651dce7af41cd918232b27f82974b4c328273edcbd29/ilrt.formalworkflow-1.7-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "7bc3e994ee9168d14a7f43cb8b6b58b4", "sha256": "a68261b16fdead759cf354addcc5d35ddd8dfd0843f0b21521825bb645a1843c" }, "downloads": -1, "filename": "ilrt.formalworkflow-1.7.tar.gz", "has_sig": false, "md5_digest": "7bc3e994ee9168d14a7f43cb8b6b58b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47654, "upload_time": "2010-09-29T14:16:06", "url": "https://files.pythonhosted.org/packages/c9/27/1a68327f2ea1247d89f7777d3dd4024de097658213491deaad06a8b5434b/ilrt.formalworkflow-1.7.tar.gz" } ], "1.8": [ { "comment_text": "", "digests": { "md5": "a0e9f04a5bbe9b5a78cda2c3deb4d1a1", "sha256": "d8ad39ba55cecfcdd579f15ef490f797b5f75cd3982e933fabdd7d98d85d06c9" }, "downloads": -1, "filename": "ilrt.formalworkflow-1.8-py2.6.egg", "has_sig": false, "md5_digest": "a0e9f04a5bbe9b5a78cda2c3deb4d1a1", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 48202, "upload_time": "2011-12-02T18:14:20", "url": "https://files.pythonhosted.org/packages/71/c4/2354b9d1370f050b0b00a287ab5516997756f36b74513e8e6cab3d5d1fac/ilrt.formalworkflow-1.8-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "9462666ec33149c39d560600b8837c7b", "sha256": "72b994639bf2695e12e9a375bd6132c2e0e284d2989bde0acb8c0f58df2705f0" }, "downloads": -1, "filename": "ilrt.formalworkflow-1.8.tar.gz", "has_sig": false, "md5_digest": "9462666ec33149c39d560600b8837c7b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49041, "upload_time": "2011-12-02T18:14:21", "url": "https://files.pythonhosted.org/packages/0b/d0/75b1ef0aef8869b9e93a90d93f18943aff984782a84e188d5a43cf338dd3/ilrt.formalworkflow-1.8.tar.gz" } ], "1.9": [ { "comment_text": "", "digests": { "md5": "2dc7ee7d1ec65b3498e71af3a9e98c1f", "sha256": "0c64a966e885356039a9ae0884a7efda2c52b40b0fb0a904aacc34804c57f6db" }, "downloads": -1, "filename": "ilrt.formalworkflow-1.9-py2.7.egg", "has_sig": false, "md5_digest": "2dc7ee7d1ec65b3498e71af3a9e98c1f", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 48384, "upload_time": "2013-06-23T18:50:25", "url": "https://files.pythonhosted.org/packages/89/4b/37275267fd76de08924b9fe3e32b6407d65f21298453c025e52bd74e6e57/ilrt.formalworkflow-1.9-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "d41ba9a69cff7f4f5038d1db73a0bba4", "sha256": "834548255f52b44ebab295ce48d42021b75834219cc1796bce1bb4b27b44fc19" }, "downloads": -1, "filename": "ilrt.formalworkflow-1.9.tar.gz", "has_sig": false, "md5_digest": "d41ba9a69cff7f4f5038d1db73a0bba4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49318, "upload_time": "2013-06-23T18:50:28", "url": "https://files.pythonhosted.org/packages/75/e6/0b2cdbf23d815be062abba81d1447de85141a3f720f738bcc5bcabfe054b/ilrt.formalworkflow-1.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2dc7ee7d1ec65b3498e71af3a9e98c1f", "sha256": "0c64a966e885356039a9ae0884a7efda2c52b40b0fb0a904aacc34804c57f6db" }, "downloads": -1, "filename": "ilrt.formalworkflow-1.9-py2.7.egg", "has_sig": false, "md5_digest": "2dc7ee7d1ec65b3498e71af3a9e98c1f", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 48384, "upload_time": "2013-06-23T18:50:25", "url": "https://files.pythonhosted.org/packages/89/4b/37275267fd76de08924b9fe3e32b6407d65f21298453c025e52bd74e6e57/ilrt.formalworkflow-1.9-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "d41ba9a69cff7f4f5038d1db73a0bba4", "sha256": "834548255f52b44ebab295ce48d42021b75834219cc1796bce1bb4b27b44fc19" }, "downloads": -1, "filename": "ilrt.formalworkflow-1.9.tar.gz", "has_sig": false, "md5_digest": "d41ba9a69cff7f4f5038d1db73a0bba4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49318, "upload_time": "2013-06-23T18:50:28", "url": "https://files.pythonhosted.org/packages/75/e6/0b2cdbf23d815be062abba81d1447de85141a3f720f738bcc5bcabfe054b/ilrt.formalworkflow-1.9.tar.gz" } ] }