ploneintranet.workspace package¶
Subpackages¶
- ploneintranet.workspace.browser package
- Subpackages
- Submodules
- ploneintranet.workspace.browser.add_content module
- ploneintranet.workspace.browser.forms module
- ploneintranet.workspace.browser.portlets module
- ploneintranet.workspace.browser.roster module
- ploneintranet.workspace.browser.viewlets module
- ploneintranet.workspace.browser.views module
- ploneintranet.workspace.browser.workspace module
- Module contents
- ploneintranet.workspace.tests package
- Submodules
- ploneintranet.workspace.tests.base module
- ploneintranet.workspace.tests.test_add_content module
- ploneintranet.workspace.tests.test_content_type module
- ploneintranet.workspace.tests.test_content_views module
- ploneintranet.workspace.tests.test_content_workflow module
- ploneintranet.workspace.tests.test_forms module
- ploneintranet.workspace.tests.test_grouping module
- ploneintranet.workspace.tests.test_permissions module
- ploneintranet.workspace.tests.test_policy module
- ploneintranet.workspace.tests.test_robot module
- ploneintranet.workspace.tests.test_roster module
- ploneintranet.workspace.tests.test_setuphandlers module
- ploneintranet.workspace.tests.test_sidebar module
- ploneintranet.workspace.tests.test_subscribers module
- ploneintranet.workspace.tests.test_tiles module
- ploneintranet.workspace.tests.test_viewlets module
- ploneintranet.workspace.tests.test_views module
- ploneintranet.workspace.tests.test_workspace_state module
- ploneintranet.workspace.tests.test_workspace_workflow module
- Module contents
Submodules¶
ploneintranet.workspace.adapters module¶
-
class
ploneintranet.workspace.adapters.
EventCalendarOwnerLocalRoles
(context)¶ Bases:
object
-
_granted_roles
= ['Reader']¶
-
getAllRoles
()¶ Grant special roles to the calendear owner
-
getRoles
(principalid)¶ Return special roles if principalid is the calendear owner
-
owner
¶
-
-
class
ploneintranet.workspace.adapters.
EventMaintainerGroupLocalRoles
(context)¶ Bases:
object
-
_granted_roles
= ['Reader']¶
-
getAllRoles
()¶ Grant special roles to the maintainer group
-
getRoles
(principalid)¶ Return special roles if principalid is in the maintainer_group_list
-
maintainer_group_list
¶
-
-
class
ploneintranet.workspace.adapters.
EventReaderGroupLocalRoles
(context)¶ Bases:
object
-
_granted_roles
= ['Reader']¶
-
getAllRoles
()¶ Grant special roles to the reader group
-
getRoles
(principalid)¶ Return special roles if principalid is in the reader_group_list
-
reader_group_list
¶
-
-
class
ploneintranet.workspace.adapters.
GroupingStorage
(context)¶ Bases:
object
Adapter that stores the sidebar’s groupings for quick lookup.
The groupings dict is arranged in the following way: OOBTree({
- ‘label’: {
- ‘Important’: set([uid, uid, uid]), ‘Frivolous’: set([uid, uid]),
} ‘author: {
‘max-mustermann’: set([uid]), ‘john-doe’: set([uid, uid]), ‘jane-doe’: set([uid]),} ‘type’: {
‘foo’: set([uid]), ‘bar’: set([uid, uid, uid]), ‘baz’: set([uid]),} ‘first_letter’: {
‘a’: set([uid]), ‘b’: set([uid, uid, uid]), ‘c’: set([uid]),}
}) The top-level keys are the groupings.
For each grouping we store another dict.
Each key in this dict is a unique value for that grouping. These values are retrieved from the objects stored in the workspace.
For each key we have a list of uids. These are the uids of the objects that have that key as a field value (corresponding to the grouping).
Remember: each grouping is a field on an object, so each value of that grouping is a value of that field on an object inside the workspace.
We need to keep track of the uids, so that we know when to remove a grouping-value. When an object is modified, we don’t know if anything was removed (for example from the ‘Subject’ field, which corresponds to ‘label’ grouping).
So we have to check every time if that object’s uid is in any grouping values that that object doesn’t have anymore. In that way, we know to remove the uid from that grouping-value. If that grouping-value doesn’t have any uids anymore, we can remove it.
-
_add_grouping_values
(grouping, values, obj)¶ Add $uid to the list of uids stored under the grouping values (provided by $values) in the groupings datastructure.
If the list doesn’t exist yet, add it.
-
_remove_grouping_value
(grouping, value)¶ Remove entry $value under a given $grouping.
Can be used for bulk-changes to a grouping (e.g. changing a tag)
-
_remove_grouping_values
(grouping, values, obj)¶ Remove $uid from the list of uids stored under the grouping values (provided by $values) in the groupings datastructure.
If $uid is the only one in the list, then remove the list (and its key) entirely.
-
clear_groupings
()¶
-
get_groupings
()¶
-
get_order_for
(grouping, include_archived=False, alphabetical=False)¶ Return the keys of the given grouping in order.
-
init_groupings
()¶
-
modified
()¶ Return the last time this grouping storage was modified.
-
remove_from_groupings
(obj)¶ Remove obj’s grouping relevant information to its workspace.
-
reset_order
()¶ Reset the order for all groupings to default, i.e. same order as the keys of the OOBTree
-
set_order_for
(grouping, order)¶ Set order for a given grouping
-
update_groupings
(obj)¶ Update the groupings dict with the values stored on obj.
-
class
ploneintranet.workspace.adapters.
GroupingStorageValues
(uids)¶ Bases:
Acquirer
,OFS.owner.Owned
,persistent.Persistent
A datastructure to store the UIDs of objects appearing under a specific grouping.
It conforms to the requirements imposed by OrderedBTreeFolderBase on its sub-objects (acquisition aware, ownable, persistent).
-
add
(item)¶
-
discard
(item)¶
-
pop
()¶
-
remove
(item)¶
-
-
class
ploneintranet.workspace.adapters.
MetroMap
(context)¶ Bases:
object
-
_metromap_transitions
¶ A data structure is stored as a TAL expression on a workflow which determines the sequence of workflow states/milestones used to render the metromap.
We need to evaluate the expression and returns the data structure.
It consists of a list of dicts each with the workflow state, the transition to the next milestone in the metromap, and the transition required to return to the milestone: [{
‘state’: ‘new’, ‘next_transition’: ‘finalise’, ‘reopen_transition’: ‘reset’- }, {
- ‘state’: ‘complete’, ‘next_transition’: ‘archive’, ‘reopen_transition’: ‘finalise’
- }, {
- ‘state’: ‘archived’}
]
-
_metromap_workflow
¶ All Case Workspaces should have a placeful workflow. In order to render the metromap, this workflow needs to have a metromap_transitions variable which determines the order of the milestones (states) and the transitions between them.
Return the workflow required to render the metromap.
-
metromap_sequence
¶ Return the data structure required for displaying the metromap, derived from the configuration in the metromap_transitions variable of the associated workflow.
An OrderedDict is used to provide details such as whether a milestone has already been finished, the transition required to close the current milestone, and the transition required to reopen the previous milestone.
In the ‘complete’ workflow state / milestone it returns the following: OrderedDict([(
- ‘new’, {
- ‘transition_title’: u’Transfer To Department’, ‘title’: u’New’, ‘finished’: True, # This milestone has been finished ‘is_current’: False, # Not the current milestone ‘reopen_transition’: ‘reset’, # For [Reopen milestone] ‘transition_id’: ‘transfer_to_department’
}), ( ‘complete’, {
‘transition_title’: u’Submit’, ‘title’: u’Content Complete’, ‘finished’: False, # This milestone isn’t finished yet ‘is_current’: True, # Current milestone: Show [Close milestone] ‘reopen_transition’: False, ‘transition_id’: ‘submit’}), ( ‘archived’, {
‘transition_title’: ‘’, ‘title’: u’Archived’, ‘is_current’: False, ‘finished’: False, ‘reopen_transition’: False, ‘transition_id’: None})
])
-
-
class
ploneintranet.workspace.adapters.
PloneIntranetWorkspace
(context)¶ Bases:
collective.workspace.workspace.Workspace
A custom workspace behaviour, based on collective.workspace
Here we define our own available groups, and the roles they are given on the workspace.
-
add_to_team
(userid, **kw)¶ Add user/group to this workspace
We override this method from collective.workspace to add our additional participation policy groups, as detailed in available_groups above.
Also used to update an existing members’ groups.
-
available_groups
= {u'Publishers': ('Contributor', 'SelfPublisher'), u'Consumers': (), u'Moderators': ('Reader', 'Contributor', 'Reviewer', 'Editor'), u'Producers': ('Contributor',), u'Admins': ('Contributor', 'Editor', 'Reviewer', 'Reader', 'TeamManager'), u'Guests': ('TeamGuest',), u'Members': ('TeamMember',)}¶
-
group_for_policy
(policy=None)¶ Lookup the collective.workspace usergroup corresponding to the given policy
Parameters: policy (str) – The value of the policy to lookup, defaults to the current policy
-
membership_factory
¶ alias of
PloneIntranetTeamMembership
-
update_participant_policy_groups
(old_policy, new_policy)¶ Move relevant members to a new default policy
We only move members who were previously part of the old policy. This allows for ‘exception’ users who have been promoted/demoted manually to retain their existing roles.
-
-
class
ploneintranet.workspace.adapters.
RemoteAdminLocalRoleAdapter
(context)¶ Bases:
object
Treat the remote_admin user as a local admin
-
_granted_roles
= ('Contributor', 'Editor', 'Reviewer', 'Reader', 'TeamManager')¶
-
getAllRoles
()¶
-
getRoles
(*args, **kwargs)¶
-
-
class
ploneintranet.workspace.adapters.
WorkspaceLocalRoleAdapter
(context)¶ Bases:
borg.localrole.default_adapter.DefaultLocalRoleAdapter
If the user has the local role of Owner on the context and the acquired role of SelfPublisher; they should also be given Reviewer.
-
_getRoles
(*args, **kwargs)¶ Give an Owner who is also a ‘selfpublisher’, the reviewer role This works on every content inside a workspace but not on the workspace itself
-
getRoles
(principal_id)¶
-
get_workspace_roles
(*args, **kwargs)¶
-
is_good_context
(*args, **kwargs)¶
-
ploneintranet.workspace.config module¶
-
exception
ploneintranet.workspace.config.
SecretWorkspaceNotAllowed
¶ Bases:
exceptions.Exception
ploneintranet.workspace.events module¶
-
class
ploneintranet.workspace.events.
ObjectModifiedAfterCreationEvent
(object, *descriptions)¶ Bases:
zope.lifecycleevent.ObjectModifiedEvent
Like ObjectModifiedEvent, but only fired in the special case where we set the fields of an object after first creating it empty. Can be used like an ObjectCreatedEvent in plain Plone.
-
class
ploneintranet.workspace.events.
ParticipationPolicyChangedEvent
(ob, old_policy, new_policy)¶ Bases:
zope.interface.interfaces.ObjectEvent
Event class, which is fired once the participation policy of the workspace has changed
-
class
ploneintranet.workspace.events.
WorkspaceCreatedFromTemplateEvent
(object)¶ Bases:
zope.interface.interfaces.ObjectEvent
-
class
ploneintranet.workspace.events.
WorkspaceRosterChangedEvent
(ob)¶ Bases:
zope.interface.interfaces.ObjectEvent
Event, which is fired once the roster of a workspace had changed
ploneintranet.workspace.indexers module¶
ploneintranet.workspace.interfaces module¶
-
interface
ploneintranet.workspace.interfaces.
IBaseWorkspaceFolder
¶ Bases:
plone.supermodel.model.Schema
,plone.namedfile.interfaces.IImageScaleTraversable
Interface for WorkspaceFolder
-
division
= <zope.schema._bootstrapfields.TextLine object>¶ label_workspace_division
-
remote_admin
= <zope.schema._bootstrapfields.TextLine object>¶ Remote admin
label_related_workspaces
-
archival_date
= <zope.schema._field.Datetime object>¶ label_archived
-
email
= <zope.schema._bootstrapfields.TextLine object>¶ label_workspace_email
-
show_activity_stream
= <zope.schema._bootstrapfields.Bool object>¶ label_show_activity_stream
help_show_activity_stream
-
calendar_visible
= <zope.schema._bootstrapfields.Bool object>¶ label_workspace_calendar_visibility
-
hero_image
= <plone.namedfile.field.NamedBlobImage object>¶ Hero Image
-
default_grouping
= <zope.schema._bootstrapfields.TextLine object>¶ label_default_grouping
-
stream_num_columns
= <zope.schema._bootstrapfields.Int object>¶ Workspace landing page columns
-
-
interface
ploneintranet.workspace.interfaces.
ICaseManagerAware
¶ Bases:
zope.interface.Interface
Marker interface for classes that are aware of the case manager app
-
interface
ploneintranet.workspace.interfaces.
IGroupingStoragable
¶ Bases:
zope.interface.Interface
marker interface for things that can have a GroupingStorage
-
interface
ploneintranet.workspace.interfaces.
IGroupingStorage
¶ Bases:
zope.interface.Interface
-
update_groupings
(obj)¶ Update the groupings dict with the values stored on obj.
-
reset_order
()¶ Reset the order for all groupings to default, i.e. same order as the keys of the OOBTree
-
get_groupings
()¶ Return groupings
-
set_order_for
(grouping, order)¶ Set order for a given grouping
-
remove_from_groupings
(obj)¶ Remove obj’s grouping relevant information to its workspace.
-
get_order_for
(grouping, include_archived=False, alphabetical=False)¶ Get order for a given grouping
-
-
interface
ploneintranet.workspace.interfaces.
IMail
¶ Bases:
plone.app.contenttypes.interfaces.IFolder
Marker interface for the ploneintranet.workspace.mail content type
-
interface
ploneintranet.workspace.interfaces.
IMetroMap
¶ Bases:
zope.interface.Interface
Methods required to display a metromap
-
metromap_sequence
()¶ An ordered dict with the structure required for displaying tasks in the metromap and in the sidebar of a Case item. This is used to determine which states have been finished, and which transitions are currently available. OrderedDict([(
- “new”, {
- “is_current”: False, “transition_id”: “transfer_to_department”, “finished”: True,
}), ( “in_progress”, {
“is_current”: False, “transition_id”: “transfer_to_department”, “finished”: True,}),
])
-
-
interface
ploneintranet.workspace.interfaces.
IObjectModifiedAfterCreationEvent
¶ Bases:
zope.interface.interfaces.IObjectEvent
Event which is fired in the special case where we set the fields of an object after first creating it empty.
-
object
= <zope.interface.interface.Attribute object>¶ The subject of the event.
-
-
interface
ploneintranet.workspace.interfaces.
IParticipationPolicyChangedEvent
¶ Bases:
zope.interface.Interface
Event, which is fired once the participation policy of the workspace has changed
-
old_policy
= <zope.interface.interface.Attribute object>¶ Policy we are moving away from
-
new_policy
= <zope.interface.interface.Attribute object>¶ Policy we are moving to
-
-
interface
ploneintranet.workspace.interfaces.
IPloneintranetWorkspaceLayer
¶ Bases:
zope.interface.Interface
Zope 3 browser layer which is active regardless of themeswitching
-
interface
ploneintranet.workspace.interfaces.
IThemedWorkspaceLayer
¶ Bases:
ploneintranet.workspace.interfaces.IPloneintranetWorkspaceLayer
,ploneintranet.layout.interfaces.INoBarcelonetaLayer
Zope 3 browser layer which is not present in Barceloneta fallback
-
interface
ploneintranet.workspace.interfaces.
ITrashable
¶ Bases:
zope.interface.Interface
Marker interface for objects that can be trashed
-
interface
ploneintranet.workspace.interfaces.
ITrashed
¶ Bases:
ploneintranet.workspace.interfaces.ITrashable
Marker interface for objects that are trashed
-
interface
ploneintranet.workspace.interfaces.
IVisibleToIntranetUsersWorkspace
¶ Bases:
zope.interface.Interface
Marker interface for workspaces that should be visible by all the intranet users
-
interface
ploneintranet.workspace.interfaces.
IWorkspaceAppContentLayer
¶ Bases:
ploneintranet.layout.interfaces.IPloneintranetContentLayer
,ploneintranet.layout.interfaces.IAppLayer
Marker interface for content within a workspace app.
-
setPublication
(publication)¶ Set the request’s publication object
-
traverse
(obj)¶ Traverse from the given object to the published object
The published object is returned.
The following hook methods on the publication will be called:
- callTraversalHooks is called before each step and after the last step.
- traverseName to actually do a single traversal
-
getTraversalStack
()¶ Return the request traversal stack
This is a sequence of steps to traverse in reverse order. They will be traversed from last to first.
-
get
()¶ Query for an attribute description
-
locale
= <zope.interface.interface.Attribute object>¶ Return the locale object associated with this request.
-
debug
= <zope.interface.interface.Attribute object>¶ Debug flags (see IDebugFlags).
-
interaction
= <zope.interface.interface.Attribute object>¶ The interaction
-
setTraversalStack
(stack)¶ Change the traversal stack.
See getTraversalStack.
-
close
()¶ Release resources held by the request.
-
hold
(held)¶ Hold a reference to an object until the request is closed.
The object should be an IHeld. If it is an IHeld, its release method will be called when it is released.
-
response
= <zope.interface.interface.Attribute object>¶ The request’s response object
Return an IPublisherResponse for the request.
-
setupLocale
()¶ Setup the locale object based on languages returned by IUserPreferredLanguages adapter.
-
principal
= <zope.interface.interface.Attribute object>¶ The authenticated principal
-
retry
()¶ Return a retry request
Return a request suitable for repeating the publication attempt.
-
publication
= <zope.interface.interface.Attribute object>¶ The request’s publication object
The publication object, an IRequestPublication provides application-specific functionality hooks.
-
items
()¶ Return the items of the mapping object.
-
setPathSuffix
(steps)¶ Add additional traversal steps to be taken after all other traversal
This is used to handle HTTP request methods (except for GET and POST in the case of browser requests) and XML-RPC methods.
-
processInputs
()¶ Do any input processing that needs to be done before traversing
This is done after construction to allow the publisher to handle errors that arise.
-
method
= <zope.interface.interface.Attribute object>¶ Request method, normalized to upper case
-
environment
= <zope.interface.interface.Attribute object>¶ Request environment data
This is a read-only mapping from variable name to value.
-
keys
()¶ Return the keys of the mapping object.
-
values
()¶ Return the values of the mapping object.
-
bodyStream
= <zope.interface.interface.Attribute object>¶ The stream that provides the data of the request.
The data returned by the stream will not include any possible header information, which should have been stripped by the server (or previous layer) before.
Also, the body stream might already be read and not return any data. This is commonly done when retrieving the data for the
body
attribute.If you access this stream directly to retrieve data, it will not be possible by other parts of the framework to access the data of the request via the
body
attribute.
-
getPositionalArguments
()¶ Return the positional arguments given to the request.
-
setPrincipal
(principal)¶ Set the principal attribute.
It should be IPrincipal wrapped in its AuthenticationService’s context.
-
supportsRetry
()¶ Check whether the request supports retry
Return a boolean value indicating whether the request can be retried.
-
annotations
= <zope.interface.interface.Attribute object>¶ Stores arbitrary application data under package-unique keys.
By “package-unique keys”, we mean keys that are are unique by virtue of including the dotted name of a package as a prefex. A package name is used to limit the authority for picking names for a package to the people using that package.
For example, when implementing annotations for hypothetical request-persistent adapters in a hypothetical zope.persistentadapter package, the key would be (or at least begin with) the following:
"zope.persistentadapter"
-
-
interface
ploneintranet.workspace.interfaces.
IWorkspaceAppFormLayer
¶ Bases:
ploneintranet.layout.interfaces.IPloneintranetFormLayer
,ploneintranet.layout.interfaces.IAppLayer
Marker interface for forms within a workspace app.
-
interface
ploneintranet.workspace.interfaces.
IWorkspaceCreatedFromTemplateEvent
¶ Bases:
zope.interface.Interface
A workspace has been created by copying a template. This event allows us to disable the auditlog while the other events are fired and then create only one entry via this event. Otherwise all items contained in the template trigger audit entries when copied.
-
interface
ploneintranet.workspace.interfaces.
IWorkspaceFolder
¶ Bases:
ploneintranet.workspace.interfaces.IBaseWorkspaceFolder
A workspace folder can be a division, while other objects inheriting from IBaseWorkspaceFolder cannot, e.g. cases
-
division
= <zope.schema._bootstrapfields.TextLine object>¶ label_workspace_division
-
remote_admin
= <zope.schema._bootstrapfields.TextLine object>¶ Remote admin
label_related_workspaces
-
is_division
= <zope.schema._bootstrapfields.Bool object>¶ label_workspace_is_division
Divisions represent sections of the overall organisation and appear as groupings on the workspace overview.
-
archival_date
= <zope.schema._field.Datetime object>¶ label_archived
-
email
= <zope.schema._bootstrapfields.TextLine object>¶ label_workspace_email
-
show_activity_stream
= <zope.schema._bootstrapfields.Bool object>¶ label_show_activity_stream
help_show_activity_stream
-
calendar_visible
= <zope.schema._bootstrapfields.Bool object>¶ label_workspace_calendar_visibility
-
hero_image
= <plone.namedfile.field.NamedBlobImage object>¶ Hero Image
-
default_grouping
= <zope.schema._bootstrapfields.TextLine object>¶ label_default_grouping
-
stream_num_columns
= <zope.schema._bootstrapfields.Int object>¶ Workspace landing page columns
-
-
interface
ploneintranet.workspace.interfaces.
IWorkspaceRosterChangedEvent
¶ Bases:
zope.interface.Interface
Event, which is fired once the roster of a workspace had changed
ploneintranet.workspace.policies module¶
Defines the policies that can be applied to a workspace
ploneintranet.workspace.setuphandlers module¶
-
ploneintranet.workspace.setuphandlers.
_fix_plone51
()¶ This is an interim solution for Plone 5.1 (should go away soon) in which some named behavior are missing
-
ploneintranet.workspace.setuphandlers.
post_install
(context)¶ - adds the global “workspaces” container
- adds the global “templates” case templates container (actual case template is provided by ploneintranet.suite)
- makes sure the membrane groups plugin is ordered before the recursive groups plugin
- sets the addable types for the ploneintranet policy
ploneintranet.workspace.subscribers module¶
-
ploneintranet.workspace.subscribers.
_is_id_good_enough
(objid, normalizedid, container)¶ Check if the actual objid is good enough with respect to the normalizedid.
-
ploneintranet.workspace.subscribers.
_notify_submitted_maintainers
(obj)¶
-
ploneintranet.workspace.subscribers.
_notify_submitted_user
(obj)¶
-
ploneintranet.workspace.subscribers.
_reset_security_context
(userid, request, invalidate_cache=False)¶
-
ploneintranet.workspace.subscribers.
_update_todo_state
(todo)¶
-
ploneintranet.workspace.subscribers.
_update_todos_state
(obj)¶ Update the workflow state of Todo items in a Case, when the workflow state of the Case is changed.
-
ploneintranet.workspace.subscribers.
_update_workspace_groupings
(obj, event)¶ If the relevant object is inside a workspace, the workspace grouping parameters (for the sidebar) need to be updated.
-
ploneintranet.workspace.subscribers.
content_object_added_to_workspace
(obj, event)¶
-
ploneintranet.workspace.subscribers.
content_object_edited_in_workspace
(obj, event)¶
-
ploneintranet.workspace.subscribers.
content_object_moved
(obj, event)¶
-
ploneintranet.workspace.subscribers.
content_object_removed_from_workspace
(obj, event)¶
-
ploneintranet.workspace.subscribers.
create_title_from_id
(obj, event)¶
-
ploneintranet.workspace.subscribers.
folder_added_to_workspace
(obj, event)¶
-
ploneintranet.workspace.subscribers.
handle_case_workflow_state_changed
(obj, event)¶ When the workflow state of a Case changes, perform the following actions: * Update the contained Todo items ans set adjust their workflow state * Grant assignees on tasks of the current milestone guest access
-
ploneintranet.workspace.subscribers.
invitation_accepted
(event)¶ When an invitation is accepted, add the user to the team. This apparently is NOT a ploneintranet.invitations invitation, but by ploneintranet.workspace.browser.forms.InviteForm.
-
ploneintranet.workspace.subscribers.
update_event_workflow
(obj, event)¶
-
ploneintranet.workspace.subscribers.
update_todo_state
(obj, event)¶ After editing a Todo item, set the workflow state to either Open or Planned depending on the state of the Case. Also update access permissions on the Case, which might have changed due to a change in assignment.
-
ploneintranet.workspace.subscribers.
update_workspace_modification_date
(obj, event)¶
-
ploneintranet.workspace.subscribers.
user_deleted_from_site_event
(event)¶ Remove deleted user from all the workspaces where he is a member
-
ploneintranet.workspace.subscribers.
workspace_added
(ob, event)¶ when a workspace is created, we add the creator to the admin group. We then setup our placeful workflow
-
ploneintranet.workspace.subscribers.
workspace_groupbehavior_toggled
(obj, event)¶
ploneintranet.workspace.testing module¶
ploneintranet.workspace.utils module¶
-
class
ploneintranet.workspace.utils.
OpenEndedGraph
(nodes, edges)¶ Bases:
object
-
get_descendants
(start_node)¶ Return all the descendants of a node
-
get_meaningful_children
(start_node, edges=None)¶ Given a start node, return all the edges endpoints that lead to (at least) another node.
We work on copy of the edges to avoid circular relations: once an edge is evaluated it is discarded
-
-
ploneintranet.workspace.utils.
get_primary_field
(obj)¶
-
ploneintranet.workspace.utils.
get_storage
(clear=False)¶ helper function to get annotation storage on the portal
Parameters: clear – If true is passed in, annotations will be cleared Returns: portal annotations Return type: IAnnotations
-
ploneintranet.workspace.utils.
guess_mimetype
(file_name)¶
-
ploneintranet.workspace.utils.
in_app
(context)¶
-
ploneintranet.workspace.utils.
in_workspace
(context)¶
-
ploneintranet.workspace.utils.
map_content_type
(mimetype, portal_type='')¶ takes a mimetype and returns a content type string as used in the prototype
-
ploneintranet.workspace.utils.
parent_app
(context)¶ Return containing workspace Returns None if not found.
-
ploneintranet.workspace.utils.
parent_workspace
(context)¶ Return containing workspace Returns None if not found.
-
ploneintranet.workspace.utils.
purge_and_refresh_security_manager
()¶ This is necessary in case you have a cache on your acl_users folder.
This method purges the configured cache on the acl_users folder and reinitialises the security manager for the current user.
This is necessary as example when we are creating a workspace and right afterwards transition it into the private state. The transition is guarded by the TeamManager role which the current user just got when the workspace was created. This is however not yet reflected in the cached user object. This would not be an issue in the next upcoming request as the security context will be rebuilt then, but in the current request, this is a problem.
-
ploneintranet.workspace.utils.
render_and_send_mail
(obj, view_name, recipients)¶ Renders view_name on obj and sends the result to recipients. The mail subject is read from the mail view attribute subject.
-
ploneintranet.workspace.utils.
send_email
(recipient, subject, message, sender='ploneintranet@netsight.co.uk')¶ helper function to send an email with the sender preset
ploneintranet.workspace.workspacecontainer module¶
-
interface
ploneintranet.workspace.workspacecontainer.
IWorkspaceContainer
¶ Bases:
plone.supermodel.model.Schema
,plone.namedfile.interfaces.IImageScaleTraversable
,ploneintranet.layout.interfaces.IAppContainer
Marker interface for WorkspaceContainer
-
app_layers
= <zope.interface.interface.Attribute object>¶ A list of IAppLayer to be activated on traversal
-
app_name
= <zope.interface.interface.Attribute object>¶ Name of the app. Will be set as app-{name} on body.
-
-
class
ploneintranet.workspace.workspacecontainer.
WorkspaceContainer
(*args, **kwargs)¶ Bases:
ploneintranet.layout.app.AbstractAppContainer
,plone.dexterity.content.Container
A folder to contain WorkspaceFolders.
Implements IAppContainer to enable workspace-specific content view registrations.
-
_get_id
(suggested_id)¶ Override the OFS.CopySupport.CopyContainer to return a proper id avoiding the need to rename workspace created from a template if a _copy_move_suggested_id parameter is set
-
app_layers
= (<InterfaceClass ploneintranet.workspace.interfaces.IWorkspaceAppContentLayer>, <InterfaceClass ploneintranet.workspace.interfaces.IWorkspaceAppFormLayer>)¶
-
app_name
= 'workspace'¶
-
ploneintranet.workspace.workspacefolder module¶
-
class
ploneintranet.workspace.workspacefolder.
WorkspaceFolder
(id=None, **kwargs)¶ Bases:
plone.dexterity.content.Container
A WorkspaceFolder users can collaborate in
-
accessible_to_intranet_users
¶ Check if the intranet users group is part of the workspace members
-
acquire_workspace
()¶ helper method to acquire the workspace :rtype: ploneintranet.workspace.WorkspaceFolder
-
existing_users
()¶ Look up the full user details for current workspace members
- BBB: this has to go away. The workspace view has more performant
- methods
-
existing_users_by_id
()¶ A dict version of existing_users userid for the keys, to simplify looking up details for a user by id
-
is_case
¶ XXX remove after case refactoring
-
join_policy
¶
-
member_and_group_prefill
(context, field, default=None)¶ Return JSON for pre-filling a pat-autosubmit field with the values for that field
-
member_prefill
(context, field, default=None)¶ Return JSON for pre-filling a pat-autosubmit field with the values for that field
-
participant_policy
¶
-
visible_to_intranet_users
¶
-
ws_type
¶ returns a string for use in a css selector in the templates describing this content type Override in custom workspace types, if you want to make use of it for custom styling.
Keep in sync with registry record ploneintranet.workspace.workspace_types_css_mapping
-