Files
odoo_source/addons/knowledge/models/res_users.py
T
419377ab3d [IMP] knowledge: generate private tutorial article per user
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>
2022-05-13 02:58:51 +02:00

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)