summaryrefslogtreecommitdiff
path: root/addons/mail/mail_alias.py
diff options
context:
space:
mode:
authorDharmraj Jhala (OpenERP) <dizzy.zala@gmail.com>2014-02-25 11:02:04 +0530
committerDharmraj Jhala (OpenERP) <dizzy.zala@gmail.com>2014-02-25 11:02:04 +0530
commitc6917b9c074f3f2c19cac1dc3e05c8a3d2cadbed (patch)
tree6a17e259f27e029458207671d10fec50b5c425be /addons/mail/mail_alias.py
parentb2688a37f84a505d8e334f8b0325b4747d440170 (diff)
parent9eb2db4465cefa5dc331123c1b0a4df035545015 (diff)
[MERGE] with trunk-survey2-rim addons branch
bzr revid: dizzy.zala@gmail.com-20140225053204-mra08nfvumkxyixa
Diffstat (limited to 'addons/mail/mail_alias.py')
-rw-r--r--addons/mail/mail_alias.py20
1 files changed, 14 insertions, 6 deletions
diff --git a/addons/mail/mail_alias.py b/addons/mail/mail_alias.py
index 1eacb902e0f..d8a79dd98e0 100644
--- a/addons/mail/mail_alias.py
+++ b/addons/mail/mail_alias.py
@@ -154,6 +154,12 @@ class mail_alias(osv.Model):
sequence = (sequence + 1) if sequence else 2
return new_name
+ def _clean_and_make_unique(self, cr, uid, name, context=None):
+ # when an alias name appears to already be an email, we keep the local part only
+ name = remove_accents(name).lower().split('@')[0]
+ name = re.sub(r'[^\w+.]+', '-', name)
+ return self._find_unique(cr, uid, name, context=context)
+
def migrate_to_alias(self, cr, child_model_name, child_table_name, child_model_auto_init_fct,
alias_model_name, alias_id_column, alias_key, alias_prefix='', alias_force_key='', alias_defaults={},
alias_generate_name=False, context=None):
@@ -199,7 +205,7 @@ class mail_alias(osv.Model):
alias_vals['alias_parent_thread_id'] = obj_data['id']
alias_create_ctx = dict(context, alias_model_name=alias_model_name, alias_parent_model_name=child_model_name)
alias_id = mail_alias.create(cr, SUPERUSER_ID, alias_vals, context=alias_create_ctx)
- child_class_model.write(cr, SUPERUSER_ID, obj_data['id'], {'alias_id': alias_id})
+ child_class_model.write(cr, SUPERUSER_ID, obj_data['id'], {'alias_id': alias_id}, context={'mail_notrack': True})
_logger.info('Mail alias created for %s %s (id %s)', child_model_name, obj_data[alias_key], obj_data['id'])
# Finally attempt to reinstate the missing constraint
@@ -227,11 +233,7 @@ class mail_alias(osv.Model):
model_name = context.get('alias_model_name')
parent_model_name = context.get('alias_parent_model_name')
if vals.get('alias_name'):
- # when an alias name appears to already be an email, we keep the local part only
- alias_name = remove_accents(vals['alias_name']).lower().split('@')[0]
- alias_name = re.sub(r'[^\w+.]+', '-', alias_name)
- alias_name = self._find_unique(cr, uid, alias_name, context=context)
- vals['alias_name'] = alias_name
+ vals['alias_name'] = self._clean_and_make_unique(cr, uid, vals.get('alias_name'), context=context)
if model_name:
model_id = self.pool.get('ir.model').search(cr, uid, [('model', '=', model_name)], context=context)[0]
vals['alias_model_id'] = model_id
@@ -240,6 +242,12 @@ class mail_alias(osv.Model):
vals['alias_parent_model_id'] = model_id
return super(mail_alias, self).create(cr, uid, vals, context=context)
+ def write(self, cr, uid, ids, vals, context=None):
+ """"give uniqe alias name if given alias name is allready assigned"""
+ if vals.get('alias_name'):
+ vals['alias_name'] = self._clean_and_make_unique(cr, uid, vals.get('alias_name'), context=context)
+ return super(mail_alias, self).write(cr, uid, ids, vals, context=context)
+
def open_document(self, cr, uid, ids, context=None):
alias = self.browse(cr, uid, ids, context=context)[0]
if not alias.alias_model_id or not alias.alias_force_thread_id: