diff --git a/addons/mail/__openerp__.py b/addons/mail/__openerp__.py index 1a416cfd02c..274e861c5c8 100644 --- a/addons/mail/__openerp__.py +++ b/addons/mail/__openerp__.py @@ -70,6 +70,9 @@ The main features are: 'res_users_view.xml', 'mail_alias_view.xml', ], + 'demo_xml': [ + 'mail_demo.xml', + ], 'installable': True, 'auto_install': False, 'certificate': '001056784984222247309', diff --git a/addons/mail/mail_data.xml b/addons/mail/mail_data.xml index c8e8b1a488e..38e3b6a86cc 100644 --- a/addons/mail/mail_data.xml +++ b/addons/mail/mail_data.xml @@ -12,5 +12,18 @@ + + + admin@openerp.my.openerp.com + + + + {} + + + + + + diff --git a/addons/mail/mail_demo.xml b/addons/mail/mail_demo.xml new file mode 100644 index 00000000000..739c4491a37 --- /dev/null +++ b/addons/mail/mail_demo.xml @@ -0,0 +1,17 @@ + + + + + demo@openerp.my.openerp.com + + + + {} + + + + + + + + \ No newline at end of file diff --git a/addons/mail/res_users.py b/addons/mail/res_users.py index 2223d9e162a..e9532290ec4 100644 --- a/addons/mail/res_users.py +++ b/addons/mail/res_users.py @@ -29,6 +29,7 @@ class res_users(osv.osv): """ _name = 'res.users' _inherit = ['res.users', 'mail.thread'] + _inherits = {'mail.alias': 'alias_id'} _columns = { 'notification_email_pref': fields.selection([ @@ -38,6 +39,7 @@ class res_users(osv.osv): ('none', 'Never') ], 'Receive Feeds by E-mail', required=True, help="Choose in which case you want to receive an email when you receive new feeds."), + 'alias_id': fields.many2one('mail.alias', 'Mail Alias', ondelete="cascade", required=True), } _defaults = { @@ -56,8 +58,16 @@ class res_users(osv.osv): return init_res 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}) + name = alias_pool.create_unique_alias(cr, uid, data, context=context) user_id = super(res_users, self).create(cr, uid, data, context=context) user = self.browse(cr, uid, [user_id], context=context)[0] + 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 @@ -66,7 +76,18 @@ class res_users(osv.osv): # TODO: clean the broadcast feature. As this is not cleany specified, temporarily remove the message broadcasting that is not buggy but not very nice. #self.message_broadcast(cr, uid, [user.id], 'Welcome notification', message, context=context) return user_id + + def write(self, cr, uid, ids, vals, context=None): + result = super(res_users, self).write(cr, uid, ids, vals, context=context) + # if login of user have been changed then change alias of user also. + if vals.get('login'): + alias_id = self.browse(cr, uid, ids[0]).alias_id + domain = self.pool.get("ir.config_parameter").get_param(cr, uid, "mail.catchall.domain", context=context) + name = vals.get('login') + '@' + domain + self.pool.get('mail.alias').write(cr, uid, [alias_id.id], {'alias_name': name}, context=context) + return result + def message_load_ids(self, cr, uid, ids, limit=100, offset=0, domain=[], ascent=False, root_ids=[False], context=None): """ Override of message_load_ids User discussion page : diff --git a/addons/mail/res_users_view.xml b/addons/mail/res_users_view.xml index 428f53d092e..9af90efebae 100644 --- a/addons/mail/res_users_view.xml +++ b/addons/mail/res_users_view.xml @@ -31,6 +31,9 @@ + + +