From 570f34b49f56f9aa5c958cac44a9ee9f5cd8bfe9 Mon Sep 17 00:00:00 2001
From: "mga@tinyerp.com" <>
Date: Tue, 26 Aug 2008 14:21:10 +0530
Subject: [PATCH 1/2] Change for the View Implement the Create operation for
the Server Action
bzr revid: mga@tinyerp.com-20080826085110-1jrladvftq7hs45k
---
bin/addons/base/ir/ir.xml | 4 ++--
bin/addons/base/ir/ir_actions.py | 15 +++++++++++++--
2 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/bin/addons/base/ir/ir.xml b/bin/addons/base/ir/ir.xml
index 3a44b8c55e3..77bad368dae 100755
--- a/bin/addons/base/ir/ir.xml
+++ b/bin/addons/base/ir/ir.xml
@@ -1065,7 +1065,7 @@
-
+
@@ -1075,7 +1075,7 @@
diff --git a/bin/addons/base/ir/ir_actions.py b/bin/addons/base/ir/ir_actions.py
index ac15909c014..9ff5d7f0cb9 100755
--- a/bin/addons/base/ir/ir_actions.py
+++ b/bin/addons/base/ir/ir_actions.py
@@ -380,7 +380,7 @@ class actions_server(osv.osv):
'child_ids': fields.one2many('ir.actions.actions', 'parent_id', 'Others Actions'),
'usage': fields.char('Action Usage', size=32),
'type': fields.char('Report Type', size=32, required=True),
- 'srcmodel_id': fields.many2one('ir.model', 'Model', required=True),
+ 'srcmodel_id': fields.many2one('ir.model', 'Model'),
'fields_lines': fields.one2many('ir.server.object.lines', 'server_id', 'Fields Mapping'),
}
_defaults = {
@@ -522,7 +522,18 @@ class actions_server(osv.osv):
obj_pool.write(cr, uid, [context.get('active_id')], res)
if action.state == 'object_create':
- pass
+ res = {}
+ for exp in action.fields_lines:
+ euq = exp.value
+ if exp.type == 'equation':
+ expr = self.merge_message(cr, uid, euq, action, context)
+ expr = eval(expr)
+ else:
+ expr = exp.value
+ res[exp.col1.name] = expr
+ obj_pool = self.pool.get(action.model_id.model)
+ id = context.get('active_id')
+ obj_pool.copy(cr, uid, id, res)
return False
actions_server()
From 8dfc4cef42f2de451deda115c3d565f189e9b001 Mon Sep 17 00:00:00 2001
From: "mga@tinyerp.com" <>
Date: Tue, 26 Aug 2008 15:43:05 +0530
Subject: [PATCH 2/2] add new field to have company wise seprate currency
change view for server action : create_object
bzr revid: mga@tinyerp.com-20080826101305-5yzu2c80edh6u7bo
---
bin/addons/base/base_update.xml | 3 +++
bin/addons/base/ir/ir.xml | 3 ++-
bin/addons/base/ir/ir_actions.py | 4 ++++
bin/addons/base/res/res_company.py | 1 +
bin/addons/base/res/res_currency.py | 1 +
bin/addons/base/res/res_currency_view.xml | 3 ++-
6 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/bin/addons/base/base_update.xml b/bin/addons/base/base_update.xml
index f47c75a247a..6aff96885c3 100644
--- a/bin/addons/base/base_update.xml
+++ b/bin/addons/base/base_update.xml
@@ -151,6 +151,9 @@
+
+
+
diff --git a/bin/addons/base/ir/ir.xml b/bin/addons/base/ir/ir.xml
index 77bad368dae..2492f70d37d 100755
--- a/bin/addons/base/ir/ir.xml
+++ b/bin/addons/base/ir/ir.xml
@@ -1065,7 +1065,8 @@
-
+
+
diff --git a/bin/addons/base/ir/ir_actions.py b/bin/addons/base/ir/ir_actions.py
index 9ff5d7f0cb9..47f0c4cbffc 100755
--- a/bin/addons/base/ir/ir_actions.py
+++ b/bin/addons/base/ir/ir_actions.py
@@ -382,6 +382,10 @@ class actions_server(osv.osv):
'type': fields.char('Report Type', size=32, required=True),
'srcmodel_id': fields.many2one('ir.model', 'Model'),
'fields_lines': fields.one2many('ir.server.object.lines', 'server_id', 'Fields Mapping'),
+ 'otype': fields.selection([
+ ('copy','Create in Same Model'),
+ ('new','Create in Other Model')
+ ], 'Create Model', required=True, size=32, change_default=True),
}
_defaults = {
'state': lambda *a: 'dummy',
diff --git a/bin/addons/base/res/res_company.py b/bin/addons/base/res/res_company.py
index f7e6f94c342..ca5daaf203e 100644
--- a/bin/addons/base/res/res_company.py
+++ b/bin/addons/base/res/res_company.py
@@ -46,6 +46,7 @@ class res_company(osv.osv):
'rml_header2' : fields.text('RML Internal Header'),
'logo' : fields.binary('Logo'),
'currency_id': fields.many2one('res.currency', 'Currency', required=True),
+ 'currency_ids': fields.one2many('res.currency', 'company_id', 'Currency Rates'),
}
def _get_child_ids(self, cr, uid, uid2, context={}):
diff --git a/bin/addons/base/res/res_currency.py b/bin/addons/base/res/res_currency.py
index 05541689154..7de0c9d769d 100644
--- a/bin/addons/base/res/res_currency.py
+++ b/bin/addons/base/res/res_currency.py
@@ -64,6 +64,7 @@ class res_currency(osv.osv):
'accuracy': fields.integer('Computational Accuracy'),
'rounding': fields.float('Rounding factor', digits=(12,6)),
'active': fields.boolean('Active'),
+ 'company_id' : fields.many2one('res.company', 'Company'),
}
_defaults = {
'active': lambda *a: 1,
diff --git a/bin/addons/base/res/res_currency_view.xml b/bin/addons/base/res/res_currency_view.xml
index 1c8c44ed832..cc804d8b80e 100644
--- a/bin/addons/base/res/res_currency_view.xml
+++ b/bin/addons/base/res/res_currency_view.xml
@@ -23,7 +23,8 @@
form