# HG changeset patch # User Thierry Florac # Date 1444296880 -7200 # Node ID 316232c0fbf4aebe025596e1e9cc45ad4d2c4466 # Parent ab8948c2b00bf5dd4435c13a90c17e26235b714e Updated workflow interfaces diff -r ab8948c2b00b -r 316232c0fbf4 src/pyams_workflow/interfaces/__init__.py --- a/src/pyams_workflow/interfaces/__init__.py Wed Jun 17 10:02:12 2015 +0200 +++ b/src/pyams_workflow/interfaces/__init__.py Thu Oct 08 11:34:40 2015 +0200 @@ -16,6 +16,7 @@ # import standard library # import interfaces +from pyams_utils.interfaces import VIEW_PERMISSION from zope.annotation.interfaces import IAttributeAnnotatable from zope.interface.interfaces import IObjectEvent, ObjectEvent from zope.lifecycleevent.interfaces import IObjectCreatedEvent @@ -24,7 +25,7 @@ from pyams_security.schema import Principal from zope.interface import implementer, invariant, Interface, Attribute, Invalid from zope.lifecycleevent import ObjectCreatedEvent -from zope.schema import Choice, Datetime, Set, TextLine, Text, List, Object, Int +from zope.schema import Choice, Datetime, Set, TextLine, Text, List, Object, Int, Bool from pyams_workflow import _ @@ -137,7 +138,29 @@ Defined as a utility. """ - published_states = Set(title="Published states") + initial_state = Attribute("Initial state") + + update_states = Set(title="Updatable states", + description="States of contents which are updatable by standard contributors") + + readonly_states = Set(title="Read-only states", + description="States of contents which can't be modified by anybody") + + protected_states = Set(title="Protected states", + description="States of contents which can only be modified by site administrators") + + manager_states = Set(title="Manager states", + description="States of contents which can be modified by site administrators and content " + "managers") + + published_states = Set(title="Published states", + description="States of contents which are published and visible") + + waiting_states = Set(title="Waiting states", + description="States of contents waiting for action") + + retired_states = Set(title="Retired states", + description="States of contents which are retired but not yet archived") def initialize(self): """Do any needed initialization. @@ -255,6 +278,9 @@ target_state = TextLine(title="Transition target state", required=True) + transition_id = TextLine(title="Transition ID", + required=True) + transition = TextLine(title="Transition name", required=True) @@ -281,6 +307,10 @@ state_principal = Principal(title=_("State principal"), description=_("ID of the principal which defined current state")) + state_urgency = Bool(title=_("Urgent request?"), + required=True, + default=False) + history = List(title="Workflow states history", value_type=Object(schema=IWorkflowStateHistoryItem)) @@ -312,6 +342,13 @@ """Remove version with given ID""" +class IWorkflowStateLabel(Interface): + """Workflow state label adapter interface""" + + def get_label(self, content, request=None, format=True): + """Get state label for given content""" + + class IWorkflowManagedContent(IAttributeAnnotatable): """Workflow managed content""" @@ -325,7 +362,7 @@ view_permission = Choice(title=_("View permission"), description=_("This permission will be required to display content"), vocabulary='PyAMS permissions', - required=False) + default=VIEW_PERMISSION) class IWorkflowPublicationSupport(IAttributeAnnotatable): @@ -380,6 +417,15 @@ """Is the content visible?""" +class IWorkflowRequestUrgencyInfo(Interface): + """Workflow request urgency info""" + + urgent_request = Bool(title=_("Urgent request?"), + description=_("Please use this option only when really needed..."), + required=True, + default=False) + + class IWorkflowCommentInfo(Interface): """Workflow comment info"""