معرفی شرکت ها


collective.contentgroup-0.1b3


Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر

توضیحات

Plone add-on that allows to associate users groups with content objects
ویژگی مقدار
سیستم عامل -
نام فایل collective.contentgroup-0.1b3
نام collective.contentgroup
نسخه کتابخانه 0.1b3
نگهدارنده []
ایمیل نگهدارنده []
نویسنده Rafael Oliveira
ایمیل نویسنده rafaelbco@gmail.com
آدرس صفحه اصلی http://svn.plone.org/svn/collective/collective.contentgroup
آدرس اینترنتی https://pypi.org/project/collective.contentgroup/
مجوز GPL
collective.contentgroup ======================== Overview -------- This package is a Plone add-on that allows to associate users groups with content objects. It works this way: the content type class implement ``IObjectWithGroup``, normally inheriting from ``ObjectWithGroupMixin``, and this package takes care of creating a correspondent users group for each new content object. Compatibility ------------- Tested with Plone 3.2.3, *probably* works with 3.x and 4.x. Example usage ------------- Use case: We want to create a ``Company`` content type. Each ``Company`` must have a correspondent users group. First we create the content type class. It could be a common Archetype class, but here we'll create a simpler one, without the AT base classes. We'll use ``ObjectWithGroupMixin`` from the ``base`` module in order to get associated group support:: >>> from zope.event import notify >>> from zope.app.container.contained import ObjectRemovedEvent >>> from Products.Archetypes.event import (ObjectInitializedEvent, ... ObjectEditedEvent) >>> from collective.contentgroup.base import ObjectWithGroupMixin >>> class Company(ObjectWithGroupMixin): ... __parent__ = None ... ... def __init__(self, id, title): ... self.id = self.__name__ = id ... self.title = title ... notify(ObjectInitializedEvent(self)) ... ... def getId(self): ... return self.id ... ... def Title(self): ... return self.title ... ... def setTitle(self, title): ... self.title = title ... notify(ObjectEditedEvent(self)) ... ... def delete_me(self): ... notify(ObjectRemovedEvent(self)) ... self.id = self.title = None Now we can create a ``Company`` instance and see if we get a correspondent group created:: >>> from Products.CMFCore.utils import getToolByName >>> c = Company('acme', 'The ACME Corporation') >>> gtool = getToolByName(portal, 'portal_groups') >>> group = gtool.getGroupById(c.get_group_name()) >>> group.getProperty('title') == c.get_group_title() True Let's check if the group's name and title were generated as expected by the ``ContentWithGroupMixin`` class:: >>> c.getId() in c.get_group_name() True >>> c.Title() in c.get_group_title() True Let's change the company title and see if the group's title also changes:: >>> c.setTitle('ACME co.') >>> group = gtool.getGroupById(c.get_group_name()) >>> group.getProperty('title') == c.get_group_title() True Let's delete the company and see if the group is also removed:: >>> group_name = c.get_group_name() # Save the group name before it's >>> # deleted. >>> c.delete_me() >>> gtool.getGroupById(group_name) is None True Customizing aspects of group creation, removal and edition ---------------------------------------------------------- The group managing is done through the ``IGroupManager`` interface. An instance of this interface is acquired via adaptaion every time a group operation has to be done. One can customize the group managing operations by registering an adapter for an specific content type, providing ``IGroupManager``. The default adapter is registered in ZCML like this:: <adapter for="*" provides=".interfaces.IGroupManager" factory=".groupmanager.PortalGroupsGroupManager" /> In the ``groupmanager`` module there's also the ``DGPGroupsGroupManager`` which uses the DynamicGroupsPlugin. It allows for creation of dynamic groups, i.e, the members of the group are dynamically calculated. Credits ------- - Rafael Oliveira <rafaelbco@gmail.com>: Author. Changelog --------- 0.1b3 - 18mai2010 ^^^^^^^^^^^^^^^^^ - Removed buggy cache in DynamicGroupsPlugin method. 0.1b2 - 18mai2010 ^^^^^^^^^^^^^^^^^ - Added support to DynamicGroupsPlugin, i.e, an IGroupManager which uses this plugin was created. - Added @@fix-content-groups view. 0.1b1 - 15feb2010 ^^^^^^^^^^^^^^^^^ - First release.


نحوه نصب


نصب پکیج whl collective.contentgroup-0.1b3:

    pip install collective.contentgroup-0.1b3.whl


نصب پکیج tar.gz collective.contentgroup-0.1b3:

    pip install collective.contentgroup-0.1b3.tar.gz