diff options
Diffstat (limited to 'addons/project/project.py')
| -rw-r--r-- | addons/project/project.py | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/addons/project/project.py b/addons/project/project.py index a3f1c85bb7e..fcc340d94ec 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -267,6 +267,7 @@ class project(osv.osv): 'type_ids': _get_type_common, 'alias_model': 'project.task', 'privacy_visibility': 'public', + 'alias_domain': False, # always hide alias during creation } # TODO: Why not using a SQL contraints ? @@ -337,11 +338,11 @@ class project(osv.osv): context['active_test'] = False default['state'] = 'open' default['tasks'] = [] - default['alias_id'] = False + default.pop('alias_name', None) + default.pop('alias_id', None) proj = self.browse(cr, uid, id, context=context) if not default.get('name', False): default['name'] = proj.name + _(' (copy)') - default['alias_name'] = default['name'] res = super(project, self).copy(cr, uid, id, default, context) self.map_tasks(cr,uid,id,res,context) return res @@ -527,11 +528,13 @@ def Project(): context = dict(context, project_creation_in_progress=True) mail_alias = self.pool.get('mail.alias') if not vals.get('alias_id'): - name = vals.pop('alias_name', None) or vals['name'] - 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) + 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': "project+"+short_name(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) |
