diff options
| author | Thibault Delavallée <tde@odoo.com> | 2018-08-10 13:43:47 +0200 |
|---|---|---|
| committer | Thibault Delavallée <tde@odoo.com> | 2018-08-10 13:43:47 +0200 |
| commit | 1e7eb76c30c97390a3f71d79ce6bcfef49cceabc (patch) | |
| tree | e3f9a9b98ada989c2d82fb89fb91e5edc79c6bbb /addons/auth_signup/models/res_users.py | |
| parent | 7499b47ffab0712e8a03655365b11450716e5717 (diff) | |
| parent | cf505c36985221819139ce30d7f03e6e51ec0298 (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/res_users.py')
| -rw-r--r-- | addons/auth_signup/models/res_users.py | 19 |
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) |
