From: Paolo A. F. <pfa...@gm...> - 2006-08-25 06:03:43
|
On 8/24/06, Raphael Ritz <r....@bi...> wrote: > Paolo Alexis Falcone schrieb: > > Is it possible that the review state of a content type be saved via > > SQLStorage? E.g. once an transition to another state has been done, > > the new state of the content type would be saved in an RDBMS? How > > could this be done (sample code would definitely help :)? > > One way could be to extend all relevant workflow transitions > to have an "after" script that writes the new state to > whatever you want. I tried doing this via a workflow Script Python, and it saves the state field as "<StateDefinition at pending>" in the RDBMS context.setState(review_state.new_state) as my content type is defined as follows: schema = BaseSchema + Schema(( StringField('state', searchable=True, required=True, widget=StringWidget(label="Status", visible={'edit':'hidden','view':'visible'},), index="FieldIndex:brains", storage=PostgreSQLStorage(), ), IntegerField('cost_type', searchable=True, required=True, vocabulary="choose_cost_type", widget=SelectionWidget(label="Cost Type",), index="FieldIndex:brains", storage=PostgreSQLStorage(), ), )) class MyClass(BaseContent): schema = schema def getState(self): """Returns the current workflow state of the document""" workflowtool = getToolByName(self, 'portal_workflow') return workflowtool.getInfoFor(self, 'review_state') What i'd like to have is that the 'state' field as stored in the database is set to merely 'pending'. Is the setState() method a reserved method if I'd use Script Python? Or am I doing something wrong? Thanks -- Paolo Alexis Falcone pfa...@gm... |