# HG changeset patch # User sylvain.thenault@logilab.fr # Date 1240925847 -7200 # Node ID c6051f14180772f2447959fd0294648b8b111936 # Parent 5cc3afa14e4b8df8720d6ad3097c0cd92b3521dd register to catalog, delete-trailing-whitespaces diff -r 5cc3afa14e4b -r c6051f141807 web/views/workflow.py --- a/web/views/workflow.py Tue Apr 28 15:36:37 2009 +0200 +++ b/web/views/workflow.py Tue Apr 28 15:37:27 2009 +0200 @@ -23,6 +23,7 @@ from cubicweb.web.views import TmpFileViewMixin from cubicweb.web.views.boxes import EditBox +_ = unicode EditBox.rmode.set_rtag('create', 'destination_state', 'subject', 'Transition') EditBox.rmode.set_rtag('create', 'allowed_transition', 'object', 'Transition') @@ -34,15 +35,15 @@ class ChangeStateForm(form.EntityFieldsForm): id = 'changestate' - + __method = StringField(name='__method', initial='set_state', widget=HiddenInput) - state = StringField(widget=HiddenInput, eidparam=True) - trcomment = RichTextField(eidparam=True) + state = StringField(label=_('state'), eidparam=True, widget=HiddenInput) + trcomment = RichTextField(label=_('trcomment'), eidparam=True) form_buttons = [SubmitButton(stdmsgs.YES), Button(stdmsgs.NO, cwaction='cancel')] - + class ChangeStateFormView(FormViewMixIn, view.EntityView): id = 'statuschange' title = _('status change') @@ -91,7 +92,7 @@ rql += ', WF owned_by U?' displaycols = range(5) headers = (_('from_state'), _('to_state'), _('comment'), _('date'), - _('CWUser')) + _('CWUser')) else: sel += ',C' displaycols = range(4) @@ -111,7 +112,7 @@ class CellView(view.EntityView): id = 'cell' __select__ = implements('TrInfo') - + def cell_call(self, row, col, cellvid=None): self.w(self.entity(row, col).printable_value('comment')) @@ -120,30 +121,30 @@ """convenience trick, State's incontext view should not be clickable""" id = 'incontext' __select__ = implements('State') - + def cell_call(self, row, col): self.w(html_escape(self.view('textincontext', self.rset, row=row, col=col))) # workflow images ############################################################# - + class ViewWorkflowAction(action.Action): id = 'workflow' __select__ = implements('CWEType') & has_related_entities('state_of', 'object') - + category = 'mainactions' title = _('view workflow') def url(self): entity = self.rset.get_entity(self.row or 0, self.col or 0) return entity.absolute_url(vid='workflow') - + class CWETypeWorkflowView(view.EntityView): id = 'workflow' __select__ = implements('CWEType') - cache_max_age = 60*60*2 # stay in http cache for 2 hours by default - + cache_max_age = 60*60*2 # stay in http cache for 2 hours by default + def cell_call(self, row, col, **kwargs): entity = self.entity(row, col) self.w(u'

%s

' % (self.req._('workflow for %s') @@ -156,10 +157,10 @@ class WorkflowDotPropsHandler(object): def __init__(self, req): self._ = req._ - + def node_properties(self, stateortransition): """return default DOT drawing options for a state or transition""" - props = {'label': stateortransition.name, + props = {'label': stateortransition.name, 'fontname': 'Courier'} if hasattr(stateortransition, 'state_of'): props['shape'] = 'box' @@ -179,7 +180,7 @@ if descr: props['label'] += escape('\n'.join(descr)) return props - + def edge_properties(self, transition, fromstate, tostate): return {'label': '', 'dir': 'forward', 'color': 'black', 'style': 'filled'} @@ -193,11 +194,11 @@ for state in self.entity.reverse_state_of: state.complete() yield state.eid, state - + for transition in self.entity.reverse_transition_of: transition.complete() yield transition.eid, transition - + def edges(self): for transition in self.entity.reverse_transition_of: for incomingstate in transition.reverse_allowed_transition: @@ -209,7 +210,7 @@ id = 'ewfgraph' content_type = 'image/png' __select__ = implements('CWEType') - + def _generate(self, tmpfile): """display schema information for an entity""" entity = self.entity(self.row, self.col)