[FIX] mail_alias: aliases proposed in empty list fixed.

Check only aliases that effectively create new records (not aliases used for updating).
When having several possible aliases, do not display any alias, because we do not have
any information about the correct alias to display.

bzr revid: tde@openerp.com-20130530124128-w7lz1jsrspyu38dv
This commit is contained in:
Thibault Delavallée
2013-05-30 14:41:28 +02:00
parent 9b69d0a336
commit 25544c2289
+7 -3
View File
@@ -101,12 +101,16 @@ class mail_thread(osv.AbstractModel):
if catchall_domain and model and res_id: # specific res_id -> find its alias (i.e. section_id specified)
object_id = self.pool.get(model).browse(cr, uid, res_id, context=context)
alias = object_id.alias_id
# check that the alias effectively creates new records
if object_id.alias_id and object_id.alias_id.alias_model_id and \
object_id.alias_id.alias_model_id.model == self._name and \
object_id.alias_id.alias_force_thread_id == 0:
alias = object_id.alias_id
elif catchall_domain and model: # no specific res_id given -> generic help message, take an example alias (i.e. alias of some section_id)
model_id = self.pool.get('ir.model').search(cr, uid, [("model", "=", self._name)], context=context)[0]
alias_obj = self.pool.get('mail.alias')
alias_ids = alias_obj.search(cr, uid, [("alias_model_id", "=", model_id)], context=context, limit=1, order='id ASC')
if alias_ids:
alias_ids = alias_obj.search(cr, uid, [("alias_model_id", "=", model_id), ('alias_force_thread_id', '=', 0)], context=context, order='id ASC')
if alias_ids and len(alias_ids) == 1: # if several aliases -> incoherent to propose one guessed from nowhere, therefore avoid if several aliases
alias = alias_obj.browse(cr, uid, alias_ids[0], context=context)
if alias: