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
- + +