[ADD] document_change: Added workflow file for documents.
authoruco (OpenERP) <uco@tinyerp.co.in>
Fri, 22 Jan 2010 06:40:06 +0000 (12:10 +0530)
committeruco (OpenERP) <uco@tinyerp.co.in>
Fri, 22 Jan 2010 06:40:06 +0000 (12:10 +0530)
bzr revid: uco@tinyerp.co.in-20100122064006-lv32mz5ehq5a3l1x

addons/document_change/__terp__.py
addons/document_change/document_change.py
addons/document_change/document_change_view.xml
addons/document_change/document_change_workflow.xml [new file with mode: 0644]

index 3427b4e..e649a9f 100644 (file)
@@ -33,8 +33,8 @@
     '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,
index 3de8f5e..6d5bd9a 100644 (file)
@@ -103,11 +103,11 @@ class document_file(osv.osv):
      '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'})        
@@ -119,12 +119,17 @@ class document_file(osv.osv):
 #        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()
 
index 273e0d2..e3a610f 100644 (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"/>
diff --git a/addons/document_change/document_change_workflow.xml b/addons/document_change/document_change_workflow.xml
new file mode 100644 (file)
index 0000000..ba41095
--- /dev/null
@@ -0,0 +1,79 @@
+<?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