document_change: Improve the workflow
authorsbh (Open ERP) <sbh@tinyerp.com>
Fri, 22 Jan 2010 10:53:34 +0000 (16:23 +0530)
committersbh (Open ERP) <sbh@tinyerp.com>
Fri, 22 Jan 2010 10:53:34 +0000 (16:23 +0530)
bzr revid: sbh@tinyerp.com-20100122105334-l0o5z833jpsrd4bp

addons/document_change/document_change.py
addons/document_change/document_change_view.xml
addons/document_change/document_change_workflow.xml
addons/document_change/document_phase_workflow.xml
addons/document_change/document_process_workflow.xml

index 7dadacb..e58c7e7 100644 (file)
@@ -68,7 +68,7 @@ class doucment_change_process_phase(osv.osv):
         'type': fields.selection([('control_required', 'Control Required'),('no_control', 'No Control')], 'Type'),
         'date_control': fields.date('Control Date', select=True),        
         'phase_ids':fields.many2one('document.change.process.phase','Phase Type'),
-        'state': fields.selection([('draft', 'Draft'),('started', 'Started'),('validate', 'To Validate'), ('end', 'End')], 'Status', readonly=True),
+        'state': fields.selection([('draft', 'Draft'),('started', 'Started'),('validate', 'To Validate'), ('done', 'Done')], 'Status',readonly=True),
         'phase_document_ids':fields.many2many('ir.attachment','phase_document_rel','phase_id','document_id','Document'),
     }
     _defaults = {      
@@ -76,6 +76,21 @@ class doucment_change_process_phase(osv.osv):
      'update_document': lambda *a:'at_endPhase',
      'type':lambda *a: 'no_control',
      }
+    def state_draft_set(self, cr, uid, ids, *args):
+        self.write(cr, uid, ids, {'state':'draft'})
+        return True
+
+    def state_validate_set(self, cr, uid, ids, *args):
+        self.write(cr, uid, ids, {'state':'validate'})
+        return True
+    def state_started_set(self, cr, uid, ids, *args):
+        self.write(cr, uid, ids, {'state':'started'})
+        return True    
+    
+    def state_done_set(self, cr, uid, ids, *args):
+        self.write(cr, uid, ids, {'state':'done'})
+        return True 
+
 doucment_change_process_phase()
 
 class document_change_process_model(osv.osv):
@@ -95,32 +110,29 @@ class document_file(osv.osv):
     
     _columns = {
         'type_id':fields.many2one('document.change.type','Document Type'),
-        'state': fields.selection([('change_request', 'Change Request'),('change_proposed', 'Change Proposed'), ('in_production', 'In Production'), ('to_update', 'To Update'), ('validate', 'To Validate'), ('cancel', 'Cancel')], 'Status',readonly=True),
+        'state': fields.selection([('change_request', 'Change Request'),('change_proposed', 'Change Proposed'), ('in_production', 'In Production'), ('to_update', 'To Update'), ('validate', 'To Validate'), ('cancel', 'Cancel')], 'Status'),
         'target_document_id': fields.many2one('document.directory', 'Target Document'),
         'target':fields.binary('Target'),
     }
     _defaults = {      
      'state': lambda *a: 'change_request',
      }    
-    def button_change_request(self, cr, uid, ids, context={}):
-        self.write(cr, uid, ids, {'state':'change_request'})                
+    def state_set_request(self, cr, uid, ids, context={}):
+        self.write(cr, uid, ids, {'state':'change_request'},context=context)              
         return True
-    def button_change_proposed(self, cr, uid, ids, context={}):
-        self.write(cr, uid, ids, {'state':'change_proposed'})        
+    def state_set_proposed(self, cr, uid, ids, context={}):
+        self.write(cr, uid, ids, {'state':'change_proposed'},context=context)                
         return True              
-    def button_in_production(self, cr, uid, ids, context={}):
+    def state_set_in_production(self, cr, uid, ids, context={}):
         self.write(cr, uid, ids, {'state':'in_production'})
         return True
-    def button_update(self, cr, uid, ids, context={}):
+    def state_set_update(self, cr, uid, ids, context={}):
         self.write(cr, uid, ids, {'state':'to_update'})
         return True
-    def button_change_validated(self, cr, uid, ids, context={}):
-        self.write(cr, uid, ids, {'state':'validate'})
+    def state_set_validated(self, cr, uid, ids, context={}):
+        self.write(cr, uid, ids, {'state':'validate'},context=context)
         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)
+    def state_set_cancel(self, cr, uid, ids, context={}):
         return self.write(cr, uid, ids, {'state':'cancel'},context=context)        
         
 document_file()
index b5f6f58..90bcf2b 100644 (file)
                 <group col="7" colspan="4">
                        <field name="state"/>
                                        <button name="button_change_proposed" states="cancel,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_validated" states="change_request,validate,cancel" string="Propose Change" icon="gtk-apply"/>
+                                       <button name="button_update" states="change_proposed,in_production" string="To Update"  icon="gtk-ok" />
                                        <button name="button_change_request" states="to_update" string="In Production" icon="gtk-media-play"/>
-                                       <button name="button_cancel" states="change_request,change_proposed" string="Cancel" type="object" icon="gtk-cancel"/>
+                                       <button name="button_cancel" states="change_request,change_proposed" string="Cancel"  icon="gtk-cancel"/>
                 </group>
                 <newline/>
                 <field name="target_document_id"/>
                 <group col="5" colspan="4">
                        <field name="state"/>
                        <button name="button_start" states="draft" string="Start" icon="gtk-go-forward"/>
-                       <button name="button_done" states="started" string="Validate" icon="gtk-execute"/>
+                       <button name="button_validate" states="started" string="Validate" icon="gtk-execute"/>
                        <button name="button_end" states="validate" string="End" icon="gtk-jump-to"/>
                </group>
             </form>
index 25ddfd9..0c74d95 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <openerp>
     <data>
-        <record id="wkf" model="workflow">
+        <record id="wkf_attachment" model="workflow">
             <field name="name">ir.attachment.basic</field>
             <field name="osv">ir.attachment</field>
             <field name="on_create">True</field>
@@ -9,32 +9,32 @@
         
                <!-- States -->
         <record id="act_request" model="workflow.activity">
-            <field name="wkf_id" ref="wkf"/>
+            <field name="wkf_id" ref="wkf_attachment"/>
             <field name="flow_start">True</field>
-            <field name="name">change_requested</field>
+            <field name="name">state_set_request</field>
         </record>
         <record id="act_propose" model="workflow.activity">
-            <field name="wkf_id" ref="wkf"/>
-            <field name="name">change proposed</field>
-            <field name="action">button_change_proposed()</field>
+            <field name="wkf_id" ref="wkf_attachment"/>
+            <field name="name">change_proposed</field>
+            <field name="action">state_set_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">button_update()</field>
+            <field name="wkf_id" ref="wkf_attachment"/>
+            <field name="name">to_update</field>
+            <field name="action">state_set_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">button_in_production()</field>
+            <field name="wkf_id" ref="wkf_attachment"/>
+            <field name="name">in_production</field>
+            <field name="action">state_set_in_production()</field>
             <field name="kind">function</field>
         </record>
         <record id="act_cancel" model="workflow.activity">
-            <field name="wkf_id" ref="wkf"/>
+            <field name="wkf_id" ref="wkf_attachment"/>
             <field name="name">cancel</field>
-            <field name="action">button_cancel()</field>
+            <field name="action">state_set_cancel()</field>
             <field name="kind">function</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>
+            <field name="signal">button_change_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_to_update</field>
+            <field name="signal">button_update</field>
         </record>
         <record id="production_to_request" model="workflow.transition">
             <field name="act_from" ref="act_production"/>
index cae35c4..73244ee 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <openerp>
     <data>
-        <record id="wkf" model="workflow">
+        <record id="wkf_change_process_phase" model="workflow">
             <field name="name">document.change.process.phase.basic</field>
             <field name="osv">document.change.process.phase</field>
             <field name="on_create">True</field>
@@ -9,26 +9,26 @@
         
                <!-- States -->
         <record id="act_draft" model="workflow.activity">
-            <field name="wkf_id" ref="wkf"/>
+            <field name="wkf_id" ref="wkf_change_process_phase"/>
             <field name="flow_start">True</field>
             <field name="name">draft</field>
         </record>
         <record id="act_start" model="workflow.activity">
-            <field name="wkf_id" ref="wkf"/>
+            <field name="wkf_id" ref="wkf_change_process_phase"/>
             <field name="name">started</field>
-            <field name="action">button_start()</field>
+            <field name="action">state_started_set()</field>
             <field name="kind">function</field>
         </record>
         <record id="act_validate" model="workflow.activity">
-            <field name="wkf_id" ref="wkf"/>
-            <field name="name">to validate</field>
-            <field name="action">button_done()</field>
+            <field name="wkf_id" ref="wkf_change_process_phase"/>
+            <field name="name">validate</field>
+            <field name="action">state_validate_set()</field>
             <field name="kind">function</field>
         </record>
         <record id="act_end" model="workflow.activity">
-            <field name="wkf_id" ref="wkf"/>
+            <field name="wkf_id" ref="wkf_change_process_phase"/>
             <field name="name">end</field>
-            <field name="action">button_end()</field>
+            <field name="action">state_done_set()</field>
             <field name="kind">function</field>
         </record>
         
@@ -41,7 +41,7 @@
         <record id="start_to_validate" model="workflow.transition">
             <field name="act_from" ref="act_start"/>
             <field name="act_to" ref="act_validate"/>
-            <field name="signal">button_done</field>
+            <field name="signal">button_validate</field>
         </record>
         <record id="validate_to_end" model="workflow.transition">
             <field name="act_from" ref="act_validate"/>
index 207c6cc..26cb657 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <openerp>
     <data>
-        <record id="wkf" model="workflow">
+        <record id="wkf_change_process" model="workflow">
             <field name="name">document.change.process.phase.basic</field>
             <field name="osv">document.change.process.phase</field>
             <field name="on_create">True</field>
@@ -9,30 +9,30 @@
         
                <!-- States -->
         <record id="act_draft" model="workflow.activity">
-            <field name="wkf_id" ref="wkf"/>
+            <field name="wkf_id" ref="wkf_change_process"/>
             <field name="flow_start">True</field>
             <field name="name">draft</field>
         </record>
         <record id="act_in_progress" model="workflow.activity">
-            <field name="wkf_id" ref="wkf"/>
+            <field name="wkf_id" ref="wkf_change_process"/>
             <field name="name">in_progress</field>
             <field name="action">button_in_progress()</field>
             <field name="kind">function</field>
         </record>
         <record id="act_pending" model="workflow.activity">
-            <field name="wkf_id" ref="wkf"/>
+            <field name="wkf_id" ref="wkf_change_process"/>
             <field name="name">pending</field>
-            <field name="action">button_pending()</field>
+            <field name="action">state_pending_set()</field>
             <field name="kind">function</field>
         </record>
         <record id="act_validate" model="workflow.activity">
-            <field name="wkf_id" ref="wkf"/>
-            <field name="name">to validate</field>
-            <field name="action">button_done()</field>
+            <field name="wkf_id" ref="wkf_change_process"/>
+            <field name="name">to_validate</field>
+            <field name="action">state_done_set()</field>
             <field name="kind">function</field>
         </record>
         <record id="act_done" model="workflow.activity">
-            <field name="wkf_id" ref="wkf"/>
+            <field name="wkf_id" ref="wkf_change_process"/>
             <field name="name">done</field>
             <field name="action">button_end()</field>
             <field name="kind">function</field>
         <record id="draft_to_progress" model="workflow.transition">
             <field name="act_from" ref="act_draft"/>
             <field name="act_to" ref="act_in_progress"/>
-            <field name="signal">button_in_progress</field>
+            <field name="signal">in_progress</field>
         </record>
         <record id="progress_to_pending" model="workflow.transition">
             <field name="act_from" ref="act_in_progress"/>
             <field name="act_to" ref="act_pending"/>
-            <field name="signal">button_pending</field>
+            <field name="signal">pending</field>
         </record>
         <record id="pending_to_progress" model="workflow.transition">
             <field name="act_from" ref="act_pending"/>
             <field name="act_to" ref="act_in_progress"/>
-            <field name="signal">button_in_progress</field>
+            <field name="signal">in_progress</field>
         </record>
         <record id="progress_to_validate" model="workflow.transition">
             <field name="act_from" ref="act_in_progress"/>
             <field name="act_to" ref="act_validate"/>
-            <field name="signal">button_validate</field>
+            <field name="signal">validate</field>
         </record>
         <record id="validate_to_end" model="workflow.transition">
             <field name="act_from" ref="act_validate"/>
             <field name="act_to" ref="act_end"/>
-            <field name="signal">button_done</field>
+            <field name="signal">done</field>
         </record>
     </data>
 </openerp>
\ No newline at end of file