[FIX] create_unique_alias shoud create alis_id and return the new alias id
bzr revid: jam@tinyerp.com-20120704062024-t5k5rivheh4zzg8i
This commit is contained in:
parent
37ad1cb683
commit
0d3049f1b6
|
@ -111,15 +111,21 @@ class mail_alias(osv.Model):
|
|||
res.append((record['id'], domain_alias))
|
||||
return res
|
||||
|
||||
def create_unique_alias(self, cr, uid, values, sequence=1 ,context=None):
|
||||
if sequence:
|
||||
prob_alias = "%s%s"%(values['alias_name'], sequence)
|
||||
search_alias = self.search(cr, uid, [('alias_name', '=', prob_alias)])
|
||||
if search_alias:
|
||||
values = self.create_unique_alias(cr, uid, values, sequence+1, context)
|
||||
else:
|
||||
values.update({'alias_name': prob_alias})
|
||||
return values
|
||||
def _generate_alias(self, cr, uid, name, sequence=1 ,context=None):
|
||||
new_name = "%s%s"%(name, sequence)
|
||||
search_alias = self.search(cr, uid, [('alias_name', '=', new_name)])
|
||||
if search_alias:
|
||||
self._generate_alias(cr, uid, name, sequence+1 ,context=None)
|
||||
else:
|
||||
return values.update({'alias_name': "%s"%(values['alias_name'])})
|
||||
return new_name
|
||||
|
||||
def create_unique_alias(self, cr, uid, vals, context=None):
|
||||
model_pool = self.pool.get('ir.model')
|
||||
values = {'alias_name': vals['alias_name']}
|
||||
if self.search(cr, uid, [('alias_name', '=', vals['alias_name'])]):
|
||||
values.update({'alias_name': self._generate_alias(cr, uid, vals['alias_name'], sequence=1, context=context)})
|
||||
model_sids = model_pool.search(cr, uid, [('model', '=', vals['alias_model_id'])])
|
||||
values.update({'alias_model_id': model_sids[0]})
|
||||
return self.create(cr, uid, values, context=context)
|
||||
|
||||
|
||||
|
|
|
@ -152,13 +152,11 @@ class mail_group(osv.osv):
|
|||
return res
|
||||
|
||||
def create(self, cr, uid, vals, context=None):
|
||||
model_pool = self.pool.get('ir.model.data')
|
||||
alias_pool = self.pool.get('mail.alias')
|
||||
model, res_id = model_pool.get_object_reference( cr, uid, "mail", "model_mail_group")
|
||||
vals.update({'alias_name': "mailing-group",
|
||||
'alias_model_id': res_id})
|
||||
alias_pool.create_unique_alias(cr, uid, vals, context=context)
|
||||
res = super( mail_group, self).create(cr, uid, vals, context)
|
||||
record = self.read(cr, uid, res, context)
|
||||
alias_pool.write(cr, uid, [record['alias_id']], {"alias_force_thread_id":record['id']}, context)
|
||||
if not vals['alias_id']:
|
||||
alias_id = alias_pool.create_unique_alias(cr, uid, {'alias_name': "mail_group."+vals['name'], 'alias_model_id': self._name}, context=context)
|
||||
vals.update({'alias_id': alias_id})
|
||||
res = super(mail_group, self).create(cr, uid, vals, context)
|
||||
alias_pool.write(cr, uid, [vals['alias_id']], {"alias_force_thread_id": res}, context)
|
||||
return res
|
||||
|
||||
|
|
|
@ -72,14 +72,12 @@ class res_users(osv.osv):
|
|||
|
||||
def create(self, cr, uid, data, context=None):
|
||||
# create default alias same as the login
|
||||
model_pool = self.pool.get('ir.model.data')
|
||||
alias_pool = self.pool.get('mail.alias')
|
||||
res_id = model_pool.get_object( cr, uid, "mail", "model_res_users")
|
||||
data.update({'alias_name': data.get('login'),
|
||||
'alias_model_id': res_id.id})
|
||||
alias_id = alias_pool.create_unique_alias(cr, uid, {'alias_name': data['name'], 'alias_model_id': self._name}, context=context)
|
||||
data.update({'alias_id': alias_id})
|
||||
user_id = super(res_users, self).create(cr, uid, data, context=context)
|
||||
alias_pool.write(cr, uid, [alias_id], {"alias_force_thread_id": user_id}, context)
|
||||
user = self.browse(cr, uid, user_id, context=context)
|
||||
alias_pool.write(cr, uid, [user.alias_id.id], {"alias_force_thread_id": user.id}, context)
|
||||
# make user follow itself
|
||||
self.message_subscribe(cr, uid, [user_id], [user_id], context=context)
|
||||
# create a welcome message to broadcast
|
||||
|
|
Loading…
Reference in New Issue