From ad4fa9583ec8754b72c0a21a5f5e83df519686fd Mon Sep 17 00:00:00 2001 From: "qdp-launchpad@tinyerp.com" <> Date: Mon, 23 Aug 2010 17:13:41 +0200 Subject: [PATCH] [IMP] res.company: improved useability when creating a new company: the related partner is automatically created and assigned to this company bzr revid: qdp-launchpad@tinyerp.com-20100823151341-p121m9u4qpm017uh --- bin/addons/base/base_update.xml | 2 +- bin/addons/base/res/res_company.py | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/bin/addons/base/base_update.xml b/bin/addons/base/base_update.xml index e1f6519de20..b4f2d2ce439 100644 --- a/bin/addons/base/base_update.xml +++ b/bin/addons/base/base_update.xml @@ -179,7 +179,7 @@
- + diff --git a/bin/addons/base/res/res_company.py b/bin/addons/base/res/res_company.py index 3601e57d321..cfefa3a52af 100644 --- a/bin/addons/base/res/res_company.py +++ b/bin/addons/base/res/res_company.py @@ -42,7 +42,7 @@ class multi_company_default(osv.osv): 'company_dest_id': fields.many2one('res.company', 'Default Company', required=True, help='Company to store the current record'), 'object_id': fields.many2one('ir.model', 'Object', required=True, - help='Object affect by this rules'), + help='Object affected by this rule'), 'expression': fields.char('Expression', size=256, required=True, help='Expression, must be True to match\nuse context.get or user (browse)'), 'field_id': fields.many2one('ir.model.fields', 'Field', help='Select field property'), @@ -161,9 +161,17 @@ class res_company(osv.osv): def cache_restart(self, cr): self._get_company_children.clear_cache(cr.dbname) - def create(self, cr, *args, **argv): + def create(self, cr, uid, vals, context=None): + if not vals.get('name', False) or vals.get('partner_id', False): + self.cache_restart(cr) + return super(res_company, self).create(cr, uid, vals, context=context) + obj_partner = self.pool.get('res.partner') + partner_id = obj_partner.create(cr, uid, {'name': vals['name']}, context=context) + vals.update({'partner_id': partner_id}) self.cache_restart(cr) - return super(res_company, self).create(cr, *args, **argv) + company_id = super(res_company, self).create(cr, uid, vals, context=context) + obj_partner.write(cr, uid, partner_id, {'company_id': company_id}, context=context) + return company_id def write(self, cr, *args, **argv): self.cache_restart(cr)