[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
This commit is contained in:
qdp-launchpad@tinyerp.com 2010-08-23 17:13:41 +02:00
parent eaf02eebb3
commit ad4fa9583e
2 changed files with 12 additions and 4 deletions

View File

@ -179,7 +179,7 @@
<form string="Company">
<group colspan="4" col="6">
<field colspan="4" name="name" select="1"/>
<field name="partner_id" select="1"/>
<field name="partner_id" readonly="1" select="1" required="0"/>
<field name="parent_id" select="1" groups="base.group_multi_company"/>
</group>
<notebook colspan="4">

View File

@ -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)