To ease onboarding on the knowledge application, this commit allows to generate one tutorial/welcome article in the private section of each existing or new user. That tutorial article can directly be edited by the users to test all the functionnality of the Knowledge App. To avoid generating those articles, a context key can be used: - knowledge_skip_onboarding_article Task-2674460 Part-of: odoo/odoo#82315 Co-authored-by: Damien Abeloos <abd@odoo.com> Co-authored-by: Julien Banken <jbn@odoo.com> Co-authored-by: David Beguin <dbe@odoo.com> Co-authored-by: Fabio Barbero <faba@odoo.com> Co-authored-by: Thibault Delavallee <tde@odoo.com> Co-authored-by: Aurelien Warnong <awa@odoo.com>
50 lines
1.7 KiB
Python
50 lines
1.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import models, api
|
|
from odoo.tools.translate import _lt
|
|
|
|
|
|
class Users(models.Model):
|
|
_name = 'res.users'
|
|
_inherit = 'res.users'
|
|
@api.model_create_multi
|
|
def create(self, vals_list):
|
|
users = super(Users, self).create(vals_list)
|
|
if not self.env.context.get('knowledge_skip_onboarding_article'):
|
|
users.filtered(lambda user: not user.partner_share)._generate_tutorial_articles()
|
|
return users
|
|
|
|
def _generate_tutorial_articles(self):
|
|
articles_to_create = []
|
|
for user in self:
|
|
self = self.with_context(lang=user.lang or self.env.user.lang)
|
|
render_ctx = {'object': user}
|
|
body = self.env['ir.qweb']._render(
|
|
'knowledge.knowledge_article_user_onboarding',
|
|
render_ctx,
|
|
minimal_qcontext=True,
|
|
raise_if_not_found=False
|
|
)
|
|
if not body:
|
|
break
|
|
|
|
welcome = _lt('Welcome %s', user.name)
|
|
articles_to_create.append({
|
|
'article_member_ids': [(0, 0, {
|
|
'partner_id': user.partner_id.id,
|
|
'permission': 'write',
|
|
})],
|
|
'body': body,
|
|
'icon': "👋",
|
|
'internal_permission': 'none',
|
|
'favorite_ids': [(0, 0, {
|
|
'sequence': 0,
|
|
'user_id': user.id,
|
|
})],
|
|
'name': welcome,
|
|
})
|
|
|
|
if articles_to_create:
|
|
self.env['knowledge.article'].sudo().create(articles_to_create)
|