{ "info": { "author": "David Glick", "author_email": "UNKNOWN", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Plone", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": ".. image:: https://travis-ci.org/collective/collective.workspace.svg?branch=master\n :target: https://travis-ci.org/collective/collective.workspace\n\ncollective.workspace\n====================\n\nIntroduction\n------------\n\ncollective.workspace package for providing 'membership' in specific areas of a Plone Site. \n\nIt allows you to grant people access to areas of content using a membership group rather than local roles for each user, and to delegate control over that group to people who don't have access to the site-wide user/group control panel.\n\ncollective.workspace provides a behavior that can be enabled for any Dexterity content type. When enabled, it adds a \"Roster\" tab which is where you can manage the team. \n\nAll the functionality takes place via an IWorkspace adapter, which can be overridden to specify:\n\n* A list of groups, and the roles that each group should receive. These groups are created automatically via a PAS plugin, and automatically granted local roles using a borg.localrole adapter.\n* The schema for which fields should be stored for each member in the roster. This includes checkboxes for the groups, to determine which groups the member is in.\n* Action links for each row in the roster. The default is an \"Edit\" link which brings up a popup to edit the fields for that person's roster membership.\n* Action buttons at the bottom of the roster which apply to the rows the user selects. An example of this could be a 'Send email' action, so a roster admin can easily email users in the roster.\n\nUnlike similar previous packages (see slc.teamfolder and collective.local.*), collective.workspace supplies its own PAS groups plugin, instead of using standard Plone groups. This means that Workspace-specific groups do not appear in the sitewide group control panel.\n\nSome other features are:\n\n* Membership in a roster is indexed, so you can search the catalog for items of portal_type X that have a particular user in their roster.\n* Events are fired when roster memberships are added/modified/removed.\n\nBasic Installation\n------------------\n\n* Add collective.workspace to your buildout eggs.\n* Install collective.workspace in the 'Add-ons' section of Plone's Site Setup.\n* Enable the behaviour on your dexterity content type (Either using GenericSetup or Site Setup -> Dexterity Content Types).\n\nCustom Workspace Groups\n-----------------------\n\nThe default groups available on a workspace are 'Members' and 'Admins'. You can customise the groups that are available and the default permissions they are given by adding a custom IWorkspace adapter:\n\n``configure.zcml``\n\n.. code:: xml\n\n \n\n``adapters.py``\n\n.. code:: python\n\n from collective.workspace.workspace import Workspace\n\n class MyWorkspace(Workspace):\n \"\"\"\n A custom workspace behaviour, based on collective.workspace\n \"\"\"\n # A list of groups to which team members can be assigned.\n # Maps group name -> roles\n available_groups = {\n u'Supervillians': ('Reader', ),\n u'Superheroes': ('Reader', 'Contributor', 'Reviewer', 'Editor',),\n }\n\nContributors\n============\n\n- David Glick - Original Author\n- Adam Forsythe-Cheasley - Documentation/Testing\n- Ben Cole - Documentation/Testing\n- Matthew Sital-Singh - Documentation\n- Paul Grunewald - German translation\n\nChangelog\n=========\n\n1.3 (2016-06-29)\n----------------\n\n- Added msgids with i18n domain\n- Added German translation\n- Show status message after adding, removing or updating a roster entry.\n- Fixed issues with caching\n\n\n1.2 (2016-06-22)\n----------------\n\n- Performance improvements\n- Intelligent caching of groups, plus cache invalidation on changes to a workspace\n- Added a new role TeamGuest that can be used to grant reduced access\n permissions to a workspace\n\n\n1.1 (2014-07-04)\n----------------\n\n- Fixed distribution issues\n\n\n1.0 (2014-07-04)\n----------------\n\n- Initial release", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/collective/collective.workspace", "keywords": "plone workspace collaboration", "license": "gpl", "maintainer": null, "maintainer_email": null, "name": "collective.workspace", "package_url": "https://pypi.org/project/collective.workspace/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/collective.workspace/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/collective/collective.workspace" }, "release_url": "https://pypi.org/project/collective.workspace/1.3/", "requires_dist": null, "requires_python": null, "summary": "Provide 'membership' in specific areas of a Plone Site", "version": "1.3" }, "last_serial": 3831327, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "a8cc4d4e7d6834eec19057c4745b6e8f", "sha256": "efaa098cfdf2c8252edbc62e739db3dc80d16a5b3fd1e0f5e8f5240ce09c4f38" }, "downloads": -1, "filename": "collective.workspace-1.0.zip", "has_sig": false, "md5_digest": "a8cc4d4e7d6834eec19057c4745b6e8f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36107, "upload_time": "2014-07-04T13:42:19", "url": "https://files.pythonhosted.org/packages/79/6e/4a1fbf36cb393e526786ab2f96a2c5b469f669fa51f4d5967247e8223b3f/collective.workspace-1.0.zip" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "3b721c565dd5a94a2b651c10723b1448", "sha256": "ff032c4a5b138ad761584becbc59be269bdae3848b4e569a5d7b0f615a43a246" }, "downloads": -1, "filename": "collective.workspace-1.1.zip", "has_sig": false, "md5_digest": "3b721c565dd5a94a2b651c10723b1448", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37600, "upload_time": "2014-07-04T13:47:48", "url": "https://files.pythonhosted.org/packages/ce/02/be20e3a809323ea73c44d1ae2dc657e4bd276ab3ee91cf1e303f472bb382/collective.workspace-1.1.zip" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "bbb714adfeed94eff663da1eec1ba5cd", "sha256": "226397ff93e782109f4123f8b3651a59b55c0fcbf19978c4ffbddedb156c1cdd" }, "downloads": -1, "filename": "collective.workspace-1.2.zip", "has_sig": false, "md5_digest": "bbb714adfeed94eff663da1eec1ba5cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44290, "upload_time": "2016-06-22T14:00:59", "url": "https://files.pythonhosted.org/packages/08/8a/f8e567d34e444dbce37529ba8cf5716f248b2f826abe1b437390a6ac0029/collective.workspace-1.2.zip" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "8c7a5901f54fddb67f1b4c07f9434b2f", "sha256": "3d6c97ea2d1959df6292811ea7748ff8f4019ceabf4cc6f07388b5c69d028774" }, "downloads": -1, "filename": "collective.workspace-1.3.zip", "has_sig": false, "md5_digest": "8c7a5901f54fddb67f1b4c07f9434b2f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50767, "upload_time": "2016-06-29T14:40:14", "url": "https://files.pythonhosted.org/packages/0b/44/f50280a2b26c40e79237c46d42f33bb7caf986176367ef3192a844b7a018/collective.workspace-1.3.zip" } ], "2.0b1": [ { "comment_text": "", "digests": { "md5": "840e1540adbce61090dd3029028f1ebc", "sha256": "a2d9fa30380cd6ab431c7b82ca31517e853ef6cabf90150d4b4a5bedd50f580e" }, "downloads": -1, "filename": "collective.workspace-2.0b1.tar.gz", "has_sig": false, "md5_digest": "840e1540adbce61090dd3029028f1ebc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34617, "upload_time": "2018-03-16T14:53:43", "url": "https://files.pythonhosted.org/packages/5d/3e/72717609b607e65dd8b77dedc72c7435d807336f7d352d4889bc6326dcac/collective.workspace-2.0b1.tar.gz" } ], "2.0b2": [ { "comment_text": "", "digests": { "md5": "377aca84dd08a4b77c3185927cd4dc9d", "sha256": "c60239e6e9fca52c07f9b8f48010c04cc0494bd29063224e186e42fd824f265c" }, "downloads": -1, "filename": "collective.workspace-2.0b2.tar.gz", "has_sig": false, "md5_digest": "377aca84dd08a4b77c3185927cd4dc9d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34718, "upload_time": "2018-04-10T08:23:52", "url": "https://files.pythonhosted.org/packages/3b/fc/92a57f749959bc97768c1603fd1958f73d8c7b63b7644880c81c8f9ed946/collective.workspace-2.0b2.tar.gz" } ], "2.0b3": [ { "comment_text": "", "digests": { "md5": "e265dc23c871a3b4985d464c96692576", "sha256": "883e9b11ed142f80e8605dfdb48e2b5a82ced3b9ebcc8327894cafc37a567592" }, "downloads": -1, "filename": "collective.workspace-2.0b3.tar.gz", "has_sig": false, "md5_digest": "e265dc23c871a3b4985d464c96692576", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35378, "upload_time": "2018-05-03T15:11:16", "url": "https://files.pythonhosted.org/packages/5a/43/1d71af2e554dcff894688880b05ace114e6d37536753f5d58d5344618540/collective.workspace-2.0b3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8c7a5901f54fddb67f1b4c07f9434b2f", "sha256": "3d6c97ea2d1959df6292811ea7748ff8f4019ceabf4cc6f07388b5c69d028774" }, "downloads": -1, "filename": "collective.workspace-1.3.zip", "has_sig": false, "md5_digest": "8c7a5901f54fddb67f1b4c07f9434b2f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50767, "upload_time": "2016-06-29T14:40:14", "url": "https://files.pythonhosted.org/packages/0b/44/f50280a2b26c40e79237c46d42f33bb7caf986176367ef3192a844b7a018/collective.workspace-1.3.zip" } ] }