Personal tools
Skip to content. | Skip to navigation
collective.dexteritytextindexer provides a dynamic SearchableText indexer for dexterity content types. It makes it possible to index fields of multiple behaviors as SearchableText.
This package provides the ability to assign geographical information to Dexterity-based (plone.app.dexterity) content types within Plone and does so using collective.geo.geographer and collective.geo.mapwidget. By applying the behaviour Collective Geo Maps to a Dexterity content type, a Coordinates field becomes available when creating or editing said content. This allows a user to either look-up coordinates for a place or feature via geo-coding, draw a geographical feature (such as a point, line or polygon) on a map, or enter details manually in Well-Known Text (WKT) format. Collective.geo.behaviour also provides Collective Geo Styles behaviour. By this behaviour it is possible to customize the style of the features that will be displayed on the map for each content type. Geographical information can be used by the rest of the collective.geo set of packages. For instance, the coordinates can be displayed on maps against Collections or Folders using collective.geo.kml.
This package use the collective.geo.* suite with leaflet. How to add baseLayer ==================== What is a leaflet baseLayer : http://leafletjs.com/examples/layers-control.html In Plone, if you want to add a baseLayer, you have to add a subscriber on collective.geo.geographer.interfaces.IGeoreferenced (for exemple, in `configure.zcml`):: <subscriber for="collective.geo.geographer.interfaces.IGeoreferenced" provides="collective.geo.leaflet.interfaces.IMapLayer" factory=".maplayers.OpenStreetMap /> After, create your factory in python (`maplayers.py`):: from collective.geo.leaflet.maplayers import MapLayer from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile class OpenStreetMap(MapLayer): name = u"osm" title = _(u"Open Street Map") index = ViewPageTemplateFile('browser/layers/osm.pt') And add your javascript into a template file `osm.pt`:: <script type="text/javascript"> var osmAttrib = '© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'; var osmUrl = 'http://{s}.tile.osm.org/{z}/{x}/{y}.png'; var %(name)s = L.tileLayer(osmUrl, { attribution: osmAttrib, }); </script>
Allows to create a group and assign roles directly from the sharing tab for Plone 4. Tested on Plone 4.1. Content types have just to implement IAddNewGroup to have the functionnality. Also provides a dexterity behaviour. If you want to enable it for Folder, you only have to add to your buildout.cfg:: [instance] zcml = ... collective.local.addgroup If you don't want the functionality for Folder, but on your own content type, add to the configure.zcml of your policy module:: <include package="collective.local.addgroup" file="minimal.zcml" /> <class class="my.package.content.MyContent.MyContent"> <implements interface="collective.local.addgroup.interfaces.IAddNewGroup" /> </class> If you just want this for a dexterity content type, you just have to activate the behaviour. The user need to LOCALLY have the "Add Groups" permission to add a new group and "Manage users" to add and remove users from the listed groups. Add group to local list ----------------------- The site manager can add groups from sharing table to locally managed groups list. So then the user with local permissions can manage the group himself. We don't give this feature to local managers to avoid privilege escalation.
Provides a "Mailing" tab on selected content types. It provides a 'send email' form where you can select recipients from the list of members having a local role on the content. Content types have just to implement ISendToAvailable, or, if they are dexterity type, to enable the behavior "Send mail tab". In your policy product : - Add 'collective.local.sendto' to the 'install_requires' parameter of setup.py - Add to the configure.zcml:: <include package="collective.local.sendto" /> <class class="my.package.content.MyContent.MyContent"> <implements interface="collective.local.sendto.interfaces.ISendToAvailable" /> </class> Roles whose you can select users as recipients are set by a site property : sendToRecipientRoles.
Provides a "Members" tab on selected content types. The view a the list of members having a role on the content, sorted by role. Content types have just to implement IUserListingAvailable. Add to the configure.zcml on your policy product:: <include package="collective.local.userlisting" /> <class class="my.package.content.MyContent.MyContent"> <implements interface="collective.local.userlisting.interfaces.IUserListingAvailable" /> </class> You can also check the interface in "Interfaces" tab of content in ZMI. In dexterity, you can select the behaviour.
This content type bundles all collective.local.* packages. It adds a workspace dexterity content type where the new WorkspaceManager user role can manage a groupware : - inviting new users (to the workspace only) - from collective.local.adduser - creating groups - from collective.local.adduser - from collective.local.addgroup Workspace container have a "Members" tab to show all group members - from collective.local.userlisting -, and an "Emailing" tab to send emails to workspace members - from collective.local.sendto. A layer IWorkspaceLayer is set on request when you are in a workspace. A `get_workspace` method in api module gives you the workspace root of any content. String interpolators give you the title and the url of the workspace in an email rule action.
collective.transcode.* or transcode.star for short, is a suite of modules that provide transcoding services to Plone sites. Both the naming scheme and the basic design priciples were inspired by collective.blog.star. Namely: Be modular. Not everyone wants everything your software has to offer. Be flexible. Don't assume that people want to use your software in one way. Be simplistic. If there is a simple way of doing it, do it that way. Be Ploneish. Plone already has 90% of what we need built in. Use it. It works out of the box with standard Plone Files, providing transcoding services to web friendly formats (mp4, ogv) when uploading video content. Additionally, a jpeg thumbnail is being extracted from the 5th second of the videos and a flowplayer viewlet pointing to the produced mp4 file will be displayed inside the IAboveContentBody viewlet manager when transcoding is complete. Transcode.star can be easily configured through the Plone Control Panel to work with any custom AT content type, as long as there is a File field in the schema. In the Transcode Settings panel you can enter a new line in the supported portal types, following the format customPortalType:fileFieldName where customPortalType the name of your portal_type and fileFieldName the name of the file field that you need transcoding for. Support for Dexterity content types is planned for the coming versions. For the transcoding to work you need to start the transcodedaemon instance provided in the buildout. If your transcoding needs are high, you can configure several transcode daemons in a load balanced setup. Transcode.star will select the daemon with the minimum transcoding queue length. All communication between transcode.star and transcode.daemon is encrypted using symmetric encryption by the pycrypto module so that the transcode server(s) transcode videos sent by the Plone site only, preventing abuse by third parties. Also extra care has been taken to transcode videos in private state (typical senario for a Plone site, when users upload a file) by using the same secure channel.
collective.workspace package for providing 'membership' in specific areas of a Plone Site. It 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. collective.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. All the functionality takes place via an IWorkspace adapter, which can be overridden to specify: 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. 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. 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. 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. Unlike 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. Some other features are: 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. Events are fired when roster memberships are added/modified/removed.
This module provides a z3c.form version of the Products.DataGridField . This product was developed for use with Plone4/5 and Dexterity.