diff --git a/bin/addons/base/base_update.xml b/bin/addons/base/base_update.xml index acc9d9fd4cd..8aaf6384a11 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 3a44b8c55e3..2492f70d37d 100755 --- a/bin/addons/base/ir/ir.xml +++ b/bin/addons/base/ir/ir.xml @@ -1065,7 +1065,8 @@ - + + @@ -1075,7 +1076,7 @@
- +
diff --git a/bin/addons/base/ir/ir_actions.py b/bin/addons/base/ir/ir_actions.py index 791a34e11c3..38a30888929 100755 --- a/bin/addons/base/ir/ir_actions.py +++ b/bin/addons/base/ir/ir_actions.py @@ -380,8 +380,12 @@ 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'), + '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', @@ -522,7 +526,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() 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
- + +