Backend tags are generally used internally for classification or daily process. Frontend tags are used for filtering and menu definitions. These two type of tags are not managed separately in eLearning channels right now. This commit separates backend and frontend tags using the color field. Along with that, it improves the following : Frontend - only displays channel tags that has color set; - avoids showing void tag group / menu (without any frontend tags); Backend - prevents access of the backend tags for portal/public users with a record rule (similar to online events); - adds 'Tags (tag_ids)' field in the list view of 'Course Groups' that shows all the tags (frontend as well as backend); - hides the colorless tags in slide channel kanban; - improves the form view for course channel tags; Frontend and Backend - adds a default color value while creating a new channel tag Task ID-2357942 PR odoo/odoo#62138 Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
203 lines
11 KiB
XML
203 lines
11 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<record model="ir.module.category" id="base.module_category_website_elearning">
|
|
<field name="sequence">21</field>
|
|
</record>
|
|
|
|
<record id="group_website_slides_officer" model="res.groups">
|
|
<field name="name">Officer</field>
|
|
<field name="category_id" ref="base.module_category_website_elearning"/>
|
|
<field name="implied_ids" eval="[(4, ref('website.group_website_publisher'))]"/>
|
|
</record>
|
|
|
|
<record id="group_website_slides_manager" model="res.groups">
|
|
<field name="name">Manager</field>
|
|
<field name="category_id" ref="base.module_category_website_elearning"/>
|
|
<field name="implied_ids" eval="[(4, ref('group_website_slides_officer'))]"/>
|
|
</record>
|
|
|
|
<record id="base.default_user" model="res.users">
|
|
<field name="groups_id" eval="[(4,ref('group_website_slides_manager'))]"/>
|
|
</record>
|
|
|
|
<record id="base.group_system" model="res.groups">
|
|
<field name="implied_ids" eval="[(4, ref('group_website_slides_manager'))]"/>
|
|
</record>
|
|
|
|
<data noupdate="1">
|
|
<!-- CHANNEL -->
|
|
<record id="rule_slide_channel_global" model="ir.rule">
|
|
<field name="name">Channel: always visible (sub rules exist)</field>
|
|
<field name="model_id" ref="model_slide_channel"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
</record>
|
|
|
|
<record id="rule_slide_channel_not_website" model="ir.rule">
|
|
<field name="name">Channel: public/portal/user: restricted to published and (public or member only)</field>
|
|
<field name="model_id" ref="model_slide_channel"/>
|
|
<field name="groups" eval="[(4, ref('base.group_public')), (4, ref('base.group_portal')), (4, ref('base.group_user'))]"/>
|
|
<field name="domain_force">['&', ('website_published', '=', True), '|', ('visibility', '=', 'public'), ('partner_ids', '=', user.partner_id.id)]</field>
|
|
<field name="perm_unlink" eval="0"/>
|
|
<field name="perm_write" eval="0"/>
|
|
<field name="perm_read" eval="1"/>
|
|
<field name="perm_create" eval="0"/>
|
|
</record>
|
|
|
|
<record id="rule_slide_channel_officer_r" model="ir.rule">
|
|
<field name="name">Channel: officer: read all</field>
|
|
<field name="model_id" ref="model_slide_channel"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
<field name="groups" eval="[(4, ref('group_website_slides_officer'))]"/>
|
|
<field name="perm_unlink" eval="0"/>
|
|
<field name="perm_write" eval="0"/>
|
|
<field name="perm_read" eval="1"/>
|
|
<field name="perm_create" eval="0"/>
|
|
</record>
|
|
<record id="rule_slide_channel_officer_cw" model="ir.rule">
|
|
<field name="name">Channel: officer: create/write own only</field>
|
|
<field name="model_id" ref="model_slide_channel"/>
|
|
<field name="domain_force">[('user_id', '=', user.id)]</field>
|
|
<field name="groups" eval="[(4, ref('group_website_slides_officer'))]"/>
|
|
<field name="perm_unlink" eval="0"/>
|
|
<field name="perm_write" eval="1"/>
|
|
<field name="perm_read" eval="0"/>
|
|
<field name="perm_create" eval="1"/>
|
|
</record>
|
|
|
|
<record id="rule_slide_channel_manager" model="ir.rule">
|
|
<field name="name">Channel: manager: crud all</field>
|
|
<field name="model_id" ref="model_slide_channel"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
<field name="groups" eval="[(4, ref('group_website_slides_manager'))]"/>
|
|
<field name="perm_unlink" eval="1"/>
|
|
<field name="perm_write" eval="1"/>
|
|
<field name="perm_read" eval="1"/>
|
|
<field name="perm_create" eval="1"/>
|
|
</record>
|
|
|
|
<record id="rule_slide_channel_tag_public" model="ir.rule">
|
|
<field name="name">Channel Tag: public/portal: color = published</field>
|
|
<field name="model_id" ref="model_slide_channel_tag"/>
|
|
<field name="domain_force">['&', ('color', '!=', False), ('color', '!=', 0)]</field>
|
|
<field name="groups" eval="[(4, ref('base.group_public')), (4, ref('base.group_portal'))]"/>
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="False"/>
|
|
<field name="perm_create" eval="False"/>
|
|
<field name="perm_unlink" eval="False"/>
|
|
</record>
|
|
|
|
<!-- SLIDE -->
|
|
<record id="rule_slide_slide_global" model="ir.rule">
|
|
<field name="name">Slide: always visible (sub rules exist)</field>
|
|
<field name="model_id" ref="model_slide_slide"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
</record>
|
|
|
|
<record id="rule_slide_slide_not_website" model="ir.rule">
|
|
<field name="name">Slide: public/portal/user: restricted to published or uploaded by user, and either channel member or public channel & (category or previewable)</field>
|
|
<field name="model_id" ref="model_slide_slide"/>
|
|
<field name="groups" eval="[(4, ref('base.group_public')), (4, ref('base.group_portal')), (4, ref('base.group_user'))]"/>
|
|
<field name="domain_force">['&',
|
|
'|',
|
|
'&', ('channel_id.visibility', '=', 'public'), '|', ('is_category','=', True), ('is_preview', '=', True),
|
|
('channel_id.partner_ids', '=', user.partner_id.id),
|
|
'&', ('channel_id.website_published', '=', True), '|', ('user_id', '=', user.id), ('website_published', '=', True)]</field>
|
|
<field name="perm_unlink" eval="0"/>
|
|
<field name="perm_write" eval="0"/>
|
|
<field name="perm_read" eval="1"/>
|
|
<field name="perm_create" eval="0"/>
|
|
</record>
|
|
|
|
<record id="rule_slide_slide_officer_r" model="ir.rule">
|
|
<field name="name">Slide: officer: read all</field>
|
|
<field name="model_id" ref="model_slide_slide"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
<field name="groups" eval="[(4, ref('group_website_slides_officer'))]"/>
|
|
<field name="perm_unlink" eval="0"/>
|
|
<field name="perm_write" eval="0"/>
|
|
<field name="perm_read" eval="1"/>
|
|
<field name="perm_create" eval="0"/>
|
|
</record>
|
|
|
|
<record id="rule_slide_slide_officer_cw" model="ir.rule">
|
|
<field name="name">Slide: officer: create/write own only</field>
|
|
<field name="model_id" ref="model_slide_slide"/>
|
|
<field name="domain_force">[('channel_id.user_id', '=', user.id)]</field>
|
|
<field name="groups" eval="[(4, ref('group_website_slides_officer'))]"/>
|
|
<field name="perm_unlink" eval="0"/>
|
|
<field name="perm_write" eval="1"/>
|
|
<field name="perm_read" eval="0"/>
|
|
<field name="perm_create" eval="1"/>
|
|
</record>
|
|
|
|
<record id="rule_slide_slide_manager" model="ir.rule">
|
|
<field name="name">Slide: manager: crud all</field>
|
|
<field name="model_id" ref="model_slide_slide"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
<field name="groups" eval="[(4, ref('group_website_slides_manager'))]"/>
|
|
<field name="perm_unlink" eval="1"/>
|
|
<field name="perm_write" eval="1"/>
|
|
<field name="perm_read" eval="1"/>
|
|
<field name="perm_create" eval="1"/>
|
|
</record>
|
|
|
|
<!-- CHANNEL PARTNER -->
|
|
<record id="rule_slide_channel_partner_officer" model="ir.rule">
|
|
<field name="name">Channel Partner: officer: create/write/unlink own only</field>
|
|
<field name="model_id" ref="model_slide_channel_partner"/>
|
|
<field name="domain_force">[('channel_id.user_id', '=', user.id)]</field>
|
|
<field name="groups" eval="[(4, ref('group_website_slides_officer'))]"/>
|
|
<field name="perm_unlink" eval="1"/>
|
|
<field name="perm_write" eval="1"/>
|
|
<field name="perm_read" eval="0"/>
|
|
<field name="perm_create" eval="1"/>
|
|
</record>
|
|
|
|
<record id="rule_slide_channel_partner_manager" model="ir.rule">
|
|
<field name="name">Channel Partner: manager: crud all</field>
|
|
<field name="model_id" ref="model_slide_channel_partner"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
<field name="groups" eval="[(4, ref('group_website_slides_manager'))]"/>
|
|
<field name="perm_unlink" eval="1"/>
|
|
<field name="perm_write" eval="1"/>
|
|
<field name="perm_read" eval="1"/>
|
|
<field name="perm_create" eval="1"/>
|
|
</record>
|
|
|
|
<!-- SLIDE PARTNER -->
|
|
<record id="rule_slide_slide_partner_officer" model="ir.rule">
|
|
<field name="name">Slide Partner: officer: create/write/unlink own only</field>
|
|
<field name="model_id" ref="model_slide_slide_partner"/>
|
|
<field name="domain_force">[('channel_id.user_id', '=', user.id)]</field>
|
|
<field name="groups" eval="[(4, ref('group_website_slides_officer'))]"/>
|
|
<field name="perm_unlink" eval="1"/>
|
|
<field name="perm_write" eval="1"/>
|
|
<field name="perm_read" eval="0"/>
|
|
<field name="perm_create" eval="1"/>
|
|
</record>
|
|
|
|
<record id="rule_slide_slide_partner_manager" model="ir.rule">
|
|
<field name="name">Slide Partner: manager: crud all</field>
|
|
<field name="model_id" ref="model_slide_slide_partner"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
<field name="groups" eval="[(4, ref('group_website_slides_manager'))]"/>
|
|
<field name="perm_unlink" eval="1"/>
|
|
<field name="perm_write" eval="1"/>
|
|
<field name="perm_read" eval="1"/>
|
|
<field name="perm_create" eval="1"/>
|
|
</record>
|
|
|
|
<!--SLIDE RESOURCE-->
|
|
<record id="rule_slide_slide_resource_downloadable" model="ir.rule">
|
|
<field name="name">Resource: restricted to channel members and channel responsible</field>
|
|
<field name="model_id" ref="model_slide_slide_resource"/>
|
|
<field name="domain_force">[('slide_id.channel_id.partner_ids', '=', user.partner_id.id)]</field>
|
|
<field name="groups" eval="[(4, ref('base.group_portal')), (4, ref('base.group_user'))]"/>
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="False"/>
|
|
<field name="perm_create" eval="False"/>
|
|
<field name="perm_unlink" eval="False"/>
|
|
</record>
|
|
</data>
|
|
</odoo>
|