Source code for adhocracy_core.resources.organisation

"""Basic organisation pool to structure processes."""
from pyramid.registry import Registry

from adhocracy_core.interfaces import IPool
from adhocracy_core.resources import add_resource_type_to_registry
from adhocracy_core.resources.asset import add_assets_service
from adhocracy_core.resources.pool import pool_meta
from adhocracy_core.resources.process import IProcess
from adhocracy_core.sheets.asset import IHasAssetPool
from adhocracy_core.sheets.description import IDescription
from adhocracy_core.sheets.image import IImageReference
from adhocracy_core.sheets.notification import IFollowable
from adhocracy_core.sheets.title import ITitle
from adhocracy_core.utils import get_iresource


[docs]class IOrganisation(IPool): """Organisation Pool."""
[docs]def enabled_ordering(pool: IPool, registry: Registry, **kwargs): """Enabled ordering for `pool` children.""" initial_order = list(pool.keys()) if hasattr(pool, '__oid__'): # ease testing pool.set_order(initial_order, reorderable=True)
[docs]def sdi_organisation_columns(folder, subobject, request, default_columnspec): """Mapping function to add info columns to the sdi organisation listing.""" content = request.registry.content content_name = '' title = '' if subobject: iresource = get_iresource(subobject) metadata = content.resources_meta[iresource] content_name = metadata.content_name if IProcess.providedBy(subobject): title = content.get_sheet_field(subobject, ITitle, 'title') additional_columns = [ {'name': 'Type', 'value': content_name}, {'name': 'Title', 'value': title}, ] return default_columnspec + additional_columns
organisation_meta = pool_meta._replace( content_name='Organisation', iresource=IOrganisation, permission_create='create_organisation', is_implicit_addable=True, is_sdi_addable=True, sdi_column_mapper=sdi_organisation_columns, element_types=(IProcess, IOrganisation, ), after_creation=(add_assets_service, enabled_ordering) )._add(basic_sheets=(IDescription, IImageReference, IFollowable, ), extended_sheets=(IHasAssetPool,),)
[docs]def includeme(config): """Add resource type to registry.""" add_resource_type_to_registry(organisation_meta, config)