Source code for adhocracy_core.resources.document

"""Proposal resource type."""
from pyramid.i18n import TranslationStringFactory
from adhocracy_core.interfaces import IItemVersion
from adhocracy_core.interfaces import ITag
from adhocracy_core.interfaces import IItem
from adhocracy_core.resources.badge import add_badge_assignments_service
from adhocracy_core.resources.comment import add_commentsservice
from adhocracy_core.resources.itemversion import itemversion_meta
from adhocracy_core.resources.item import item_meta
from adhocracy_core.resources.paragraph import IParagraph
from adhocracy_core.resources.rate import add_ratesservice
from adhocracy_core.resources import add_resource_type_to_registry
from adhocracy_core.sheets.geo import IPoint

import adhocracy_core.sheets.comment
import adhocracy_core.sheets.badge
import adhocracy_core.sheets.document
import adhocracy_core.sheets.image
import adhocracy_core.sheets.workflow


_ = TranslationStringFactory('adhocracy')


[docs]class IDocumentVersion(IItemVersion): """Versionable item with Document propertysheet."""
document_version_meta = itemversion_meta._replace( iresource=IDocumentVersion, extended_sheets=(adhocracy_core.sheets.document.IDocument, adhocracy_core.sheets.comment.ICommentable, adhocracy_core.sheets.badge.IBadgeable, adhocracy_core.sheets.rate.IRateable, adhocracy_core.sheets.image.IImageReference, adhocracy_core.sheets.title.ITitle, ), permission_create='edit', )
[docs]class IDocument(IItem): """All versions of a Proposal."""
document_meta = item_meta._replace( content_name=_('Document'), iresource=IDocument, element_types=(ITag, IParagraph, IDocumentVersion, ), extended_sheets=(adhocracy_core.sheets.badge.IBadgeable, ), item_type=IDocumentVersion, permission_create='create_document', is_implicit_addable=True, autonaming_prefix='document_', )._add(after_creation=( add_commentsservice, add_ratesservice, add_badge_assignments_service, ))
[docs]class IGeoDocumentVersion(IDocumentVersion): """Versionable document with geo-location."""
geo_document_version_meta = document_version_meta._replace( iresource=IGeoDocumentVersion, )._add( extended_sheets=(IPoint,) )
[docs]class IGeoDocument(IDocument): """Geolocalisable document."""
geo_document_meta = document_meta._replace( iresource=IGeoDocument, item_type=IGeoDocumentVersion, element_types=(ITag, IParagraph, IGeoDocumentVersion) )
[docs]def includeme(config): """Add resource type to registry.""" add_resource_type_to_registry(document_version_meta, config) add_resource_type_to_registry(document_meta, config) add_resource_type_to_registry(geo_document_version_meta, config) add_resource_type_to_registry(geo_document_meta, config)