'depends': ['base', 'document_ftp','mail_gateway'],
'init_xml': [],
'update_xml': ['document_change_view.xml',
- 'document_change_sequence.xml'
-
+ 'document_change_sequence.xml',
+ 'document_change_workflow.xml',
],
'demo_xml': [ ],
'installable': True,
'state': lambda *a: 'validate',
}
def button_change_request(self, cr, uid, ids, context={}):
- for document in self.browse(cr, uid, ids, context):
- if document.target_document_id:
- self.write(cr, uid, ids, {'state':'change_proposed'})
- else:
- self.write(cr, uid, ids, {'state':'change_request'})
+# for document in self.browse(cr, uid, ids, context):
+# if document.target_document_id:
+# self.write(cr, uid, ids, {'state':'change_proposed'})
+# else:
+ self.write(cr, uid, ids, {'state':'change_request'})
return True
def button_change_proposed(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'change_proposed'})
# for document in self.browse(cr, uid, ids, context):
# if document.target_document_id:
self.write(cr, uid, ids, {'state':'to_update'})
+ return True
+ def button_change_validated(self, cr, uid, ids, context={}):
+# for document in self.browse(cr, uid, ids, context):
+# if document.target_document_id:
+ self.write(cr, uid, ids, {'state':'validate'})
return True
def button_cancel(self, cr, uid, ids, context={}):
workflow = netsvc.LocalService('workflow')
for oid in ids:
workflow.trg_create(uid, self._name, oid, cr)
- return self.write(cr, uid, ids, {'state':'to_cancel'},context=context)
+ return self.write(cr, uid, ids, {'state':'cancel'},context=context)
document_file()
<field name="datas" filename="datas_fname" string="Content"/>
</group>
<separator string="Change Control" colspan="4"/>
- <field name="state"/>
- <button name="button_cft" string="cfr Document Workflow" type="object" />
- <button name="button_request" string="Request Modification" type="object" />
+ <group col="7" colspan="4">
+ <field name="state"/>
+ <button name="button_change_proposed" states="cancel, change_proposed, to_update" string="Request Change" icon="gtk-apply"/>
+ <button name="button_change_validated" states="change_request, validate, cancel" string="Propose Change" icon="gtk-apply"/>
+ <button name="button_update" states="change_proposed,in_production" string="To Update" type="object" icon="gtk-ok" />
+ <button name="button_change_requested" states="change_request" string="In Production" icon="gtk-media-play"/>
+ <button name="button_cancel" states="change_request,change_proposed" string="Cancel" type="object" icon="gtk-cancel"/>
+ </group>
<newline/>
<field name="target_document_id"/>
<field name="target"/>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data>
+ <record id="wkf" model="workflow">
+ <field name="name">ir.attachment.basic</field>
+ <field name="osv">ir.attachment</field>
+ <field name="on_create">True</field>
+ </record>
+
+ <!-- States -->
+ <record id="act_request" model="workflow.activity">
+ <field name="wkf_id" ref="wkf"/>
+ <field name="flow_start">True</field>
+ <field name="name">change requested</field>
+ </record>
+ <record id="act_propose" model="workflow.activity">
+ <field name="wkf_id" ref="wkf"/>
+ <field name="name">change proposed</field>
+ <field name="action">change_proposed()</field>
+ <field name="kind">function</field>
+ </record>
+ <record id="act_update" model="workflow.activity">
+ <field name="wkf_id" ref="wkf"/>
+ <field name="name">to update</field>
+ <field name="action">to_update()</field>
+ <field name="kind">function</field>
+ </record>
+ <record id="act_production" model="workflow.activity">
+ <field name="wkf_id" ref="wkf"/>
+ <field name="name">in production</field>
+ <field name="action">in_production()</field>
+ <field name="kind">function</field>
+ </record>
+ <record id="act_cancel" model="workflow.activity">
+ <field name="wkf_id" ref="wkf"/>
+ <field name="name">cancel</field>
+ <field name="action">cancel()</field>
+ <field name="kind">function</field>
+ </record>
+
+ <!-- Transitions -->
+ <record id="request_to_propose" model="workflow.transition">
+ <field name="act_from" ref="act_request"/>
+ <field name="act_to" ref="act_propose"/>
+ <field name="signal">button_change_proposed</field>
+ <field name="condition">(target_document_id != False)</field>
+ </record>
+ <record id="request_to_cancel" model="workflow.transition">
+ <field name="act_from" ref="act_request"/>
+ <field name="act_to" ref="act_cancel"/>
+ <field name="signal">button_cancel</field>
+ </record>
+ <record id="propose_to_update" model="workflow.transition">
+ <field name="act_from" ref="act_propose"/>
+ <field name="act_to" ref="act_update"/>
+ <field name="signal">button_change_validated</field>
+ </record>
+ <record id="propose_to_cancel" model="workflow.transition">
+ <field name="act_from" ref="act_propose"/>
+ <field name="act_to" ref="act_cancel"/>
+ <field name="signal">button_cancel</field>
+ </record>
+ <record id="cancel_to_request" model="workflow.transition">
+ <field name="act_from" ref="act_cancel"/>
+ <field name="act_to" ref="act_request"/>
+ <field name="signal">request</field>
+ </record>
+ <record id="update_to_production" model="workflow.transition">
+ <field name="act_from" ref="act_update"/>
+ <field name="act_to" ref="act_production"/>
+ <field name="signal">button_update</field>
+ </record>
+ <record id="production_to_request" model="workflow.transition">
+ <field name="act_from" ref="act_production"/>
+ <field name="act_to" ref="act_request"/>
+ <field name="signal">button_change_requested</field>
+ </record>
+ </data>
+</openerp>
\ No newline at end of file