From 394f4e55cde481d849867d1d3d971439d37b6e65 Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Tue, 7 Aug 2012 13:09:10 +0200 Subject: [PATCH 01/15] [FIX] mail.alias: fix error preventing creation of new users Web client does not like when a field is readonly *and* required *and* with no default value, and crashes with a TypeError upon creation. bzr revid: odo@openerp.com-20120807110910-g0bl2j2o56yu99ac --- addons/mail/res_users_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/mail/res_users_view.xml b/addons/mail/res_users_view.xml index d739e56661e..5fdc77821f8 100644 --- a/addons/mail/res_users_view.xml +++ b/addons/mail/res_users_view.xml @@ -33,7 +33,7 @@ - + From 675ed5e84f30f99e5ef82ee94ca245296c539f6b Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Tue, 7 Aug 2012 16:08:21 +0200 Subject: [PATCH 02/15] [IMP] mail.alias: fix copy() errors for inheriting models bzr revid: odo@openerp.com-20120807140821-xijunvy5d546o8c6 --- addons/crm/crm.py | 10 +++++----- addons/mail/mail_group.py | 14 ++++++++------ addons/mail/res_users.py | 4 ++-- addons/project/project.py | 10 ++++++---- 4 files changed, 21 insertions(+), 17 deletions(-) diff --git a/addons/crm/crm.py b/addons/crm/crm.py index cfeb163f110..891187f6a87 100644 --- a/addons/crm/crm.py +++ b/addons/crm/crm.py @@ -162,16 +162,16 @@ class crm_case_section(osv.osv): return res def create(self, cr, uid, vals, context=None): - alias_pool = self.pool.get('mail.alias') + mail_alias = self.pool.get('mail.alias') if not vals.get('alias_id'): - name = vals.pop('alias_name', None) or vals['name'] - alias_id = alias_pool.create_unique_alias(cr, uid, - {'alias_name': name}, + vals.pop('alias_name', None) # prevent errors during copy() + alias_id = mail_alias.create_unique_alias(cr, uid, + {'alias_name': vals['name']}, model_name="crm.lead", context=context) vals['alias_id'] = alias_id res = super(crm_case_section, self).create(cr, uid, vals, context) - alias_pool.write(cr, uid, [vals['alias_id']],{'alias_defaults':{'section_id': res,'type':'lead'}},context) + mail_alias.write(cr, uid, [vals['alias_id']], {'alias_defaults': {'section_id': res, 'type':'lead'}}, context) return res def unlink(self, cr, uid, ids, context=None): diff --git a/addons/mail/mail_group.py b/addons/mail/mail_group.py index 19fe00107bd..3e8172f37b9 100644 --- a/addons/mail/mail_group.py +++ b/addons/mail/mail_group.py @@ -163,15 +163,17 @@ class mail_group(osv.osv): return self.message_subscribe(cr, uid, ids, user_ids, context=context) def create(self, cr, uid, vals, context=None): - alias_pool = self.pool.get('mail.alias') + mail_alias = self.pool.get('mail.alias') if not vals.get('alias_id'): - name = vals.get('alias_name') or vals['name'] - alias_id = alias_pool.create_unique_alias(cr, uid, - {'alias_name': "group_"+name}, - model_name=self._name, context=context) + vals.pop('alias_name', None) # prevent errors during copy() + alias_id = mail_alias.create_unique_alias(cr, uid, + # Using '+' allows using subaddressing for those who don't + # have a catchall domain setup. + {'alias_name': "group+"+vals['name']}, + model_name=self._name, context=context) vals['alias_id'] = alias_id mail_group_id = super(mail_group, self).create(cr, uid, vals, context) - alias_pool.write(cr, uid, [vals['alias_id']], {"alias_force_thread_id": mail_group_id}, context) + mail_alias.write(cr, uid, [vals['alias_id']], {"alias_force_thread_id": mail_group_id}, context) if vals.get('group_ids'): self._subscribe_user_with_group_m2m_command(cr, uid, [mail_group_id], vals.get('group_ids'), context=context) diff --git a/addons/mail/res_users.py b/addons/mail/res_users.py index f0b987b369f..eb8ed33a9eb 100644 --- a/addons/mail/res_users.py +++ b/addons/mail/res_users.py @@ -86,13 +86,13 @@ class res_users(osv.osv): cr.execute('ALTER TABLE res_users ALTER COLUMN alias_id SET NOT NULL') except Exception: pass - - + def create(self, cr, uid, data, context=None): # create default alias same as the login mail_alias = self.pool.get('mail.alias') alias_id = mail_alias.create_unique_alias(cr, uid, {'alias_name': data['login']}, model_name=self._name, context=context) data['alias_id'] = alias_id + data.pop('alias_name', None) # prevent errors during copy() user_id = super(res_users, self).create(cr, uid, data, context=context) mail_alias.write(cr, SUPERUSER_ID, [alias_id], {"alias_force_thread_id": user_id}, context) diff --git a/addons/project/project.py b/addons/project/project.py index 0af02cdf6b9..5cc21db15ba 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -524,11 +524,13 @@ def Project(): def create(self, cr, uid, vals, context=None): mail_alias = self.pool.get('mail.alias') if not vals.get('alias_id'): - name = vals.pop('alias_name', None) or vals['name'] + vals.pop('alias_name', None) # prevent errors during copy() alias_id = mail_alias.create_unique_alias(cr, uid, - {'alias_name': "project_"+short_name(name)}, - model_name=vals.get('alias_model', 'project.task'), - context=context) + # Using '+' allows using subaddressing for those who don't + # have a catchall domain setup. + {'alias_name': "project+"+vals['name']}, + model_name=vals.get('alias_model', 'project.task'), + context=context) vals['alias_id'] = alias_id project_id = super(project, self).create(cr, uid, vals, context) mail_alias.write(cr, uid, [vals['alias_id']], {'alias_defaults': {'project_id': project_id} }, context) From 60722930cde52b50c7553641a054583fec378888 Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Tue, 7 Aug 2012 16:27:36 +0200 Subject: [PATCH 03/15] [IMP] mail.alias: fix creation errors for inheriting models bzr revid: odo@openerp.com-20120807142736-zxfhdrr9t2euvh8x --- addons/crm/crm_view.xml | 2 +- addons/hr_recruitment/hr_recruitment.py | 22 ++++++++++--------- addons/hr_recruitment/hr_recruitment_view.xml | 2 +- addons/mail/mail_group_view.xml | 2 +- addons/project/project_view.xml | 2 +- 5 files changed, 16 insertions(+), 14 deletions(-) diff --git a/addons/crm/crm_view.xml b/addons/crm/crm_view.xml index d2a5c78729e..75e04195bd8 100644 --- a/addons/crm/crm_view.xml +++ b/addons/crm/crm_view.xml @@ -99,7 +99,7 @@ - +