* Fixed attribute error.
[odoo/odoo.git] / addons / process / process.py
index 9417f92..183f3ac 100644 (file)
@@ -117,6 +117,15 @@ class process_process(osv.osv):
             data['gray'] = False
             data['url'] = node.help_url
 
+            # chech whether directory_id from inherited from document2 is available
+            if 'directory_id' in node and node.directory_id:
+                data['directory'] = "ftp://localhost:8021" #TODO: implement document_directory.get_url
+
+            # get assosiated workflow
+            if data['model']:
+                wkf_ids = self.pool.get('workflow').search(cr, uid, [('osv', '=', data['model'])])
+                data['workflow'] = (wkf_ids or False) and wkf_ids[0]
+
             if node.menu_id:
                 data['menu'] = {'name': node.menu_id.complete_name, 'id': node.menu_id.id}
             
@@ -199,12 +208,17 @@ class process_process(osv.osv):
                             rel = refobj[n]
                             if rel and isinstance(rel, list) :
                                 rel = rel[0]
-                            _id = (rel or False) and rel.id
-                            _model = node['model']
-                            update_relatives(r, _id, _model)
+                            if isinstance(rel, basestring):
+                                print "XXX: ", rel
+                            try: # XXXXXXXXXXXXXXXXXXX
+                                _id = (rel or False) and rel.id
+                                _model = node['model']
+                                update_relatives(r, _id, _model)
+                            except:
+                                pass
 
         for nid, node in nodes.items():
-            if node['active'] or node['model'] == res_model:
+            if not node['gray'] and (node['active'] or node['model'] == res_model):
                 update_relatives(nid, res_id, res_model)
                 break
 
@@ -351,5 +365,16 @@ class process_transition_action(osv.osv):
     _defaults = {
         'state': lambda *args: 'dummy',
     }
+
+    def copy(self, cr, uid, id, default=None, context={}):
+        if not default:
+            default = {}
+
+        state = self.pool.get('process.transition.action').browse(cr, uid, [id], context)[0].state
+        if state:
+            default['state'] = state
+
+        return super(process_transition_action, self).copy(cr, uid, id, default, context)
+
 process_transition_action()