Source code for adhocracy_core.resources.rate

"""Rate resource type."""
from pyramid.registry import Registry

from adhocracy_core.interfaces import IItemVersion
from adhocracy_core.interfaces import IItem
from adhocracy_core.interfaces import IServicePool
from adhocracy_core.interfaces import IPool
from adhocracy_core.resources import add_resource_type_to_registry
from adhocracy_core.resources.itemversion import itemversion_meta
from adhocracy_core.resources.item import item_meta
from adhocracy_core.resources.service import service_meta
from adhocracy_core.sheets.rate import IRate
from adhocracy_core.sheets.anonymize import IAllowAddAnonymized


[docs]class IRateVersion(IItemVersion): """Rate version."""
rateversion_meta = itemversion_meta._replace( iresource=IRateVersion, extended_sheets=(IRate,), permission_create='edit_rate', )
[docs]class IRate(IItem): """Rate versions pool."""
rate_meta = item_meta._replace( iresource=IRate, element_types=(IRateVersion,), item_type=IRateVersion, use_autonaming=True, autonaming_prefix='rate_', permission_create='create_rate', )
[docs]class IRatesService(IServicePool): """The 'rates' ServicePool."""
rates_meta = service_meta._replace( iresource=IRatesService, content_name='rates', element_types=(IRate,), extended_sheets=(IAllowAddAnonymized, ), )
[docs]def add_ratesservice(context: IPool, registry: Registry, options: dict): """Add `rates` service to context.""" registry.content.create(IRatesService.__identifier__, autoupdated=True, parent=context)
[docs]def includeme(config): """Add resource type to registry.""" add_resource_type_to_registry(rate_meta, config) add_resource_type_to_registry(rateversion_meta, config) add_resource_type_to_registry(rates_meta, config)