summaryrefslogtreecommitdiff
path: root/addons/auth_signup/models
diff options
context:
space:
mode:
authorThibault Delavallée <tde@odoo.com>2018-08-10 13:43:47 +0200
committerThibault Delavallée <tde@odoo.com>2018-08-10 13:43:47 +0200
commit1e7eb76c30c97390a3f71d79ce6bcfef49cceabc (patch)
treee3f9a9b98ada989c2d82fb89fb91e5edc79c6bbb /addons/auth_signup/models
parent7499b47ffab0712e8a03655365b11450716e5717 (diff)
parentcf505c36985221819139ce30d7f03e6e51ec0298 (diff)
[MERGE][IMP] mail, mail_bot: improve Discuss onboarding and add your new best friend
Purpose of this merge is to improve onboarding of Discuss. This is done via a wow effect and a bot to test the Discuss app; otherwise you have nobody to talk to. Purpose is also to improve retention as "the best way to increase retention is this: when the user invites someone, when this guy activates its account, the user gets a push notification from the invited user that just logged in; that way he will come back to Odoo and start discussing with its colleagues. Concerning your new best friend: it is not a dog but Odoobot. See sub commits for more details. This merge is linked to task ID 1838588 and closes PR #25075.
Diffstat (limited to 'addons/auth_signup/models')
-rw-r--r--addons/auth_signup/models/res_users.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/addons/auth_signup/models/res_users.py b/addons/auth_signup/models/res_users.py
index 348bd2699cf..fdc2a66b1ee 100644
--- a/addons/auth_signup/models/res_users.py
+++ b/addons/auth_signup/models/res_users.py
@@ -81,6 +81,8 @@ class ResUsers(models.Model):
values.pop('login', None)
values.pop('name', None)
partner_user.write(values)
+ if not partner_user.login_date:
+ partner_user._notify_inviter()
return (self.env.cr.dbname, partner_user.login, values.get('password'))
else:
# user does not exist: sign up invited user
@@ -92,7 +94,8 @@ class ResUsers(models.Model):
if partner.company_id:
values['company_id'] = partner.company_id.id
values['company_ids'] = [(6, 0, [partner.company_id.id])]
- self._signup_create_user(values)
+ partner_user = self._signup_create_user(values)
+ partner_user._notify_inviter()
else:
# no token, sign up an external user
values['email'] = values.get('email') or values.get('login')
@@ -110,6 +113,20 @@ class ResUsers(models.Model):
raise SignupError(_('Signup is not allowed for uninvited users'))
return self._create_user_from_template(values)
+ @api.multi
+ def _notify_inviter(self):
+ for user in self:
+ invite_partner = user.create_uid.partner_id
+ if invite_partner:
+ # notify invite user that new user is connected
+ title = _("%s connected") % user.name
+ message = _("This is his first connection. Wish him welcome")
+ self.env['bus.bus'].sendone(
+ (self._cr.dbname, 'res.partner', invite_partner.id),
+ {'type': 'user_connection', 'title': title,
+ 'message': message, 'partner_id': user.partner_id.id}
+ )
+
def _create_user_from_template(self, values):
template_user_id = literal_eval(self.env['ir.config_parameter'].sudo().get_param('base.template_portal_user_id', 'False'))
template_user = self.browse(template_user_id)