19.0 vanilla

This commit is contained in:
Ernad Husremovic 2026-03-09 09:31:56 +01:00
parent a2f74aefd8
commit 4a4d12c333
844 changed files with 212348 additions and 270090 deletions

View file

@ -8,7 +8,7 @@ access_project_task_type_project_user,project.task.type.project.user,model_proje
access_project_task_type_manager,project.task.type manager,model_project_task_type,project.group_project_manager,1,1,1,1
access_project_task_type_portal,task_type_portal,project.model_project_task_type,base.group_portal,1,0,0,0
access_project_task,project.task,model_project_task,project.group_project_user,1,1,1,1
access_report_project_task_user,report.project.task.user,model_report_project_task_user,project.group_project_manager,1,1,1,1
access_report_project_task_user,report.project.task.user,model_report_project_task_user,project.group_project_manager,1,0,0,0
access_report_project_task_user_project_user,report.project.task.user.project.user,model_report_project_task_user,project.group_project_user,1,0,0,0
access_partner_task_user,base.res.partner user,base.model_res_partner,project.group_project_user,1,0,0,0
access_task_on_partner,project.task on partners,model_project_task,base.group_user,1,0,0,0
@ -18,7 +18,7 @@ access_project_portal,project_portal,project.model_project_project,base.group_po
access_resource_calendar,project.resource_calendar user,resource.model_resource_calendar,project.group_project_user,1,0,0,0
access_resource_calendar_attendance,project.resource_calendar_attendance user,resource.model_resource_calendar_attendance,project.group_project_user,1,0,0,0
access_resource_calendar_leaves_user,resource.calendar.leaves user,resource.model_resource_calendar_leaves,project.group_project_user,1,1,1,1
access_project_tags_all,project.project_tags_all,model_project_tags,,1,0,0,0
access_project_tags_all,project.project_tags_all,model_project_tags,base.group_user,1,0,0,0
access_project_tags_manager,project.project_tags_manager,model_project_tags,project.group_project_manager,1,1,1,1
access_project_tags_portal,project_tags_portal,project.model_project_tags,base.group_portal,1,0,0,0
access_mail_activity_type_project_manager,mail.activity.type.project.manager,mail.model_mail_activity_type,project.group_project_manager,1,1,1,1
@ -26,6 +26,7 @@ access_account_analytic_account_user,account.analytic.account,analytic.model_acc
access_account_analytic_account_manager,account.analytic.account,analytic.model_account_analytic_account,project.group_project_manager,1,1,1,1
access_account_analytic_line_project,account.analytic.line project,analytic.model_account_analytic_line,project.group_project_manager,1,1,1,1
access_project_task_type_delete_wizard,project.task.type.delete.wizard,model_project_task_type_delete_wizard,project.group_project_manager,1,1,1,1
access_project_project_stage_delete_wizard,project.project.stage.delete.wizard,model_project_project_stage_delete_wizard,project.group_project_manager,1,1,1,1
access_project_task_recurrence,project.task.recurrence,model_project_task_recurrence,project.group_project_user,1,1,1,1
project.access_project_task_burndown_chart_report,access_project_task_burndown_chart_report,project.model_project_task_burndown_chart_report,project.group_project_manager,1,1,1,1
project.access_project_task_burndown_chart_report_user,access_project_task_burndown_chart_report_user,project.model_project_task_burndown_chart_report,project.group_project_user,1,0,0,0
@ -41,4 +42,15 @@ access_project_collaborator_manager,project.collaborator.manager,model_project_c
access_project_collaborator_user,project.collaborator.user,model_project_collaborator,project.group_project_user,1,0,0,0
access_project_collaborator_portal,project.collaborator.portal,model_project_collaborator,base.group_portal,1,0,0,0
access_project_share_manager,project.share.wizard.manager,model_project_share_wizard,project.group_project_manager,1,1,1,0
access_project_task_share_manager,project.task.share.wizard.manager,model_task_share_wizard,project.group_project_manager,1,1,1,0
access_project_task_share_user,project.task.share.wizard.user,model_task_share_wizard,base.group_partner_manager,1,1,1,0
access_project_share_collaborator_manager,project.share.collaborator.wizard.manager,model_project_share_collaborator_wizard,project.group_project_manager,1,1,1,1
access_project_personal_stage,project.personal.stage.user,model_project_task_stage_personal,base.group_user,1,1,1,1
access_mail_activity_plan_project_manager,mail.activity.plan.project.manager,mail.model_mail_activity_plan,project.group_project_manager,1,1,1,1
access_mail_activity_plan_template_project_manager,mail.activity.plan.template.project.manager,mail.model_mail_activity_plan_template,project.group_project_manager,1,1,1,1
access_project_template_create_wizard_user,project.template.create.wizard.user,project.model_project_template_create_wizard,project.group_project_user,1,1,0,0
access_project_template_create_wizard_manager,project.template.create.wizard.manager,project.model_project_template_create_wizard,project.group_project_manager,1,1,1,1
access_project_template_role_to_users_map_user,project.template.role.to.users.map.user,project.model_project_template_role_to_users_map,project.group_project_user,1,1,0,0
access_project_template_role_to_users_map_manager,project.template.role.to.users.map.manager,project.model_project_template_role_to_users_map,project.group_project_manager,1,1,1,1
access_project_role_user,project.role.user,model_project_role,project.group_project_user,1,0,0,0
access_project_role_manager,project.role.manager,model_project_role,project.group_project_manager,1,1,1,1

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
8 access_project_task_type_manager project.task.type manager model_project_task_type project.group_project_manager 1 1 1 1
9 access_project_task_type_portal task_type_portal project.model_project_task_type base.group_portal 1 0 0 0
10 access_project_task project.task model_project_task project.group_project_user 1 1 1 1
11 access_report_project_task_user report.project.task.user model_report_project_task_user project.group_project_manager 1 1 0 1 0 1 0
12 access_report_project_task_user_project_user report.project.task.user.project.user model_report_project_task_user project.group_project_user 1 0 0 0
13 access_partner_task_user base.res.partner user base.model_res_partner project.group_project_user 1 0 0 0
14 access_task_on_partner project.task on partners model_project_task base.group_user 1 0 0 0
18 access_resource_calendar project.resource_calendar user resource.model_resource_calendar project.group_project_user 1 0 0 0
19 access_resource_calendar_attendance project.resource_calendar_attendance user resource.model_resource_calendar_attendance project.group_project_user 1 0 0 0
20 access_resource_calendar_leaves_user resource.calendar.leaves user resource.model_resource_calendar_leaves project.group_project_user 1 1 1 1
21 access_project_tags_all project.project_tags_all model_project_tags base.group_user 1 0 0 0
22 access_project_tags_manager project.project_tags_manager model_project_tags project.group_project_manager 1 1 1 1
23 access_project_tags_portal project_tags_portal project.model_project_tags base.group_portal 1 0 0 0
24 access_mail_activity_type_project_manager mail.activity.type.project.manager mail.model_mail_activity_type project.group_project_manager 1 1 1 1
26 access_account_analytic_account_manager account.analytic.account analytic.model_account_analytic_account project.group_project_manager 1 1 1 1
27 access_account_analytic_line_project account.analytic.line project analytic.model_account_analytic_line project.group_project_manager 1 1 1 1
28 access_project_task_type_delete_wizard project.task.type.delete.wizard model_project_task_type_delete_wizard project.group_project_manager 1 1 1 1
29 access_project_project_stage_delete_wizard project.project.stage.delete.wizard model_project_project_stage_delete_wizard project.group_project_manager 1 1 1 1
30 access_project_task_recurrence project.task.recurrence model_project_task_recurrence project.group_project_user 1 1 1 1
31 project.access_project_task_burndown_chart_report access_project_task_burndown_chart_report project.model_project_task_burndown_chart_report project.group_project_manager 1 1 1 1
32 project.access_project_task_burndown_chart_report_user access_project_task_burndown_chart_report_user project.model_project_task_burndown_chart_report project.group_project_user 1 0 0 0
42 access_project_collaborator_user project.collaborator.user model_project_collaborator project.group_project_user 1 0 0 0
43 access_project_collaborator_portal project.collaborator.portal model_project_collaborator base.group_portal 1 0 0 0
44 access_project_share_manager project.share.wizard.manager model_project_share_wizard project.group_project_manager 1 1 1 0
45 access_project_task_share_manager project.task.share.wizard.manager model_task_share_wizard project.group_project_manager 1 1 1 0
46 access_project_task_share_user project.task.share.wizard.user model_task_share_wizard base.group_partner_manager 1 1 1 0
47 access_project_share_collaborator_manager project.share.collaborator.wizard.manager model_project_share_collaborator_wizard project.group_project_manager 1 1 1 1
48 access_project_personal_stage project.personal.stage.user model_project_task_stage_personal base.group_user 1 1 1 1
49 access_mail_activity_plan_project_manager mail.activity.plan.project.manager mail.model_mail_activity_plan project.group_project_manager 1 1 1 1
50 access_mail_activity_plan_template_project_manager mail.activity.plan.template.project.manager mail.model_mail_activity_plan_template project.group_project_manager 1 1 1 1
51 access_project_template_create_wizard_user project.template.create.wizard.user project.model_project_template_create_wizard project.group_project_user 1 1 0 0
52 access_project_template_create_wizard_manager project.template.create.wizard.manager project.model_project_template_create_wizard project.group_project_manager 1 1 1 1
53 access_project_template_role_to_users_map_user project.template.role.to.users.map.user project.model_project_template_role_to_users_map project.group_project_user 1 1 0 0
54 access_project_template_role_to_users_map_manager project.template.role.to.users.map.manager project.model_project_template_role_to_users_map project.group_project_manager 1 1 1 1
55 access_project_role_user project.role.user model_project_role project.group_project_user 1 0 0 0
56 access_project_role_manager project.role.manager model_project_role project.group_project_manager 1 1 1 1

View file

@ -1,63 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="base.module_category_services_project" model="ir.module.category">
<field name="description">Helps you manage your projects and tasks by tracking them, generating plannings, etc...</field>
<record model="res.groups.privilege" id="res_groups_privilege_project">
<field name="name">Project</field>
<field name="sequence">3</field>
<field name="category_id" ref="base.module_category_services"/>
</record>
<record id="group_project_user" model="res.groups">
<field name="name">User</field>
<field name="comment">User can user the your employees' schedule</field>
<field name="sequence">10</field>
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
<field name="category_id" ref="base.module_category_services_project"/>
<field name="privilege_id" ref="res_groups_privilege_project"/>
</record>
<record id="group_project_manager" model="res.groups">
<field name="name">Administrator</field>
<field name="category_id" ref="base.module_category_services_project"/>
<field name="implied_ids" eval="[(4, ref('group_project_user'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
<record id="group_subtask_project" model="res.groups">
<field name="name">Use Subtasks</field>
<field name="category_id" ref="base.module_category_hidden"/>
</record>
<record id="group_project_rating" model="res.groups">
<field name="name">Use Rating on Project</field>
<field name="category_id" ref="base.module_category_hidden"/>
<field name="comment">Administrator can manage the employees' schedule</field>
<field name="sequence">20</field>
<field name="privilege_id" ref="res_groups_privilege_project"/>
<field name="implied_ids" eval="[(4, ref('project.group_project_user')), (4, ref('mail.group_mail_canned_response_admin'))]"/>
<field name="user_ids" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
<record id="group_project_stages" model="res.groups">
<field name="name">Use Stages on Project</field>
<field name="category_id" ref="base.module_category_hidden"/>
</record>
<record id="group_project_recurring_tasks" model="res.groups">
<field name="name">Use Recurring Tasks</field>
<field name="category_id" ref="base.module_category_hidden"/>
</record>
<record id="group_project_task_dependencies" model="res.groups">
<field name="name">Use Task Dependencies</field>
<field name="category_id" ref="base.module_category_hidden"/>
</record>
<record id="group_project_milestone" model="res.groups">
<field name="name">Use Milestones</field>
<field name="category_id" ref="base.module_category_hidden"/>
</record>
<data noupdate="1">
<record id="base.default_user" model="res.users">
<field name="groups_id" eval="[(4,ref('project.group_project_manager'))]"/>
</record>
<record model="ir.rule" id="project_comp_rule">
<field name="name">Project: multi-company</field>
<field name="model_id" ref="model_project_project"/>
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
</record>
<record model="ir.rule" id="project_project_stage_rule">
<field name="name">Project Stage: multi-company</field>
<field name="model_id" ref="model_project_project_stage"/>
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
</record>
<record model="ir.rule" id="project_project_manager_rule">
@ -71,7 +65,7 @@
<field name="name">Project: employees: following required for follower-only projects</field>
<field name="model_id" ref="model_project_project"/>
<field name="domain_force">['|',
('privacy_visibility', '!=', 'followers'),
('privacy_visibility', 'in', ['employees', 'portal']),
('message_partner_ids', 'in', [user.partner_id.id])
]</field>
<field name="groups" eval="[(4, ref('base.group_user'))]"/>
@ -80,18 +74,21 @@
<record model="ir.rule" id="task_comp_rule">
<field name="name">Project/Task: multi-company</field>
<field name="model_id" ref="model_project_task"/>
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
</record>
<record model="ir.rule" id="task_visibility_rule">
<field name="name">Project/Task: employees: follow required for follower-only projects</field>
<field name="model_id" ref="model_project_task"/>
<field name="perm_write" eval="False"/>
<field name="perm_create" eval="False"/>
<field name="perm_unlink" eval="False"/>
<field name="domain_force">[
'|',
'&amp;',
('project_id', '!=', False),
'|',
('project_id.privacy_visibility', '!=', 'followers'),
('project_id.privacy_visibility', 'in', ['employees', 'portal']),
('project_id.message_partner_ids', 'in', [user.partner_id.id]),
'|',
('message_partner_ids', 'in', [user.partner_id.id]),
@ -138,7 +135,7 @@
<record model="ir.rule" id="report_project_task_user_report_comp_rule">
<field name="name">Task Analysis multi-company</field>
<field name="model_id" ref="model_report_project_task_user"/>
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
</record>
<record id="ir_rule_project_personal_stage_my" model="ir.rule">
@ -147,11 +144,30 @@
<field name="domain_force">[('user_id', '=', user.id)]</field>
</record>
<record model="ir.rule" id="task_visibility_rule_project_user">
<field name="name">Project/Task: project users: follow required for follower-only projects</field>
<field name="model_id" ref="model_project_task"/>
<field name="perm_read" eval="False"/>
<field name="domain_force">[
'|',
'&amp;',
('project_id', '!=', False),
'|',
('project_id.privacy_visibility', 'in', ['employees', 'portal']),
('project_id.message_partner_ids', 'in', [user.partner_id.id]),
'|',
('message_partner_ids', 'in', [user.partner_id.id]),
# to subscribe check access to the record, follower is not enough at creation
('user_ids', 'in', user.id)
]</field>
<field name="groups" eval="[(4,ref('project.group_project_user'))]"/>
</record>
<record id="ir_rule_private_task" model="ir.rule">
<field name="name">Project: See private tasks</field>
<field name="model_id" ref="project.model_project_task"/>
<field name="domain_force">[
('project_id.privacy_visibility', '!=', 'followers'),
('project_id.privacy_visibility', 'in', ['employees', 'portal']),
'|', '|', ('project_id', '!=', False),
('parent_id', '!=', False),
('user_ids', 'in', user.id),
@ -165,7 +181,7 @@
<field name="model_id" ref="project.model_project_project"/>
<field name="domain_force">[
'&amp;',
('privacy_visibility', '=', 'portal'),
('privacy_visibility', 'in', ['invited_users', 'portal']),
('message_partner_ids', 'child_of', [user.partner_id.commercial_partner_id.id]),
]</field>
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
@ -175,21 +191,24 @@
<field name="name">Project/Collaborator: portal users: can only see his own collobaroration in shared projects</field>
<field name="model_id" ref="project.model_project_collaborator"/>
<field name="domain_force">[
('project_id.privacy_visibility', '=', 'portal'),
('project_id.privacy_visibility', 'in', ['invited_users', 'portal']),
('partner_id', '=', user.partner_id.id),
]</field>
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
</record>
<record id="project_task_rule_portal" model="ir.rule">
<field name="name">Project/Task: portal users: (portal and following project) or (portal and following task)</field>
<field name="name">Project/Task: portal users: can only see a task if he's a collaborator of the project and a follower of the task</field>
<field name="model_id" ref="project.model_project_task"/>
<field name="domain_force">[
('project_id.privacy_visibility', '=', 'portal'),
('active', '=', True),
'|',
('project_id.message_partner_ids', 'child_of', [user.partner_id.commercial_partner_id.id]),
('message_partner_ids', 'child_of', [user.partner_id.commercial_partner_id.id]),
('project_id.privacy_visibility', 'in', ['invited_users', 'portal']),
('active', '=', True),
'|',
('message_partner_ids', 'child_of', [user.partner_id.commercial_partner_id.id]),
('project_id.collaborator_ids', 'any', [
('partner_id', '=', user.partner_id.id),
('limited_access', '=', False),
]),
]</field>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
@ -203,12 +222,16 @@
<field name="model_id" ref="project.model_project_task"/>
<field name="active">0</field>
<field name="domain_force">[
('project_id.privacy_visibility', '=', 'portal'),
('project_id.privacy_visibility', 'in', ['invited_users', 'portal']),
('active', '=', True),
'|',
('project_id.message_partner_ids', 'child_of', [user.partner_id.commercial_partner_id.id]),
('message_partner_ids', 'child_of', [user.partner_id.commercial_partner_id.id]),
('project_id.collaborator_ids.partner_id', 'in', [user.partner_id.id]),
'&amp;',
('message_partner_ids', 'child_of', [user.partner_id.commercial_partner_id.id]),
('project_id.collaborator_ids.partner_id', 'in', [user.partner_id.id]),
('project_id.collaborator_ids', 'any', [
('partner_id', '=', user.partner_id.id),
('limited_access', '=', False),
]),
]</field>
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
<field name="perm_read" eval="False"/>
@ -220,7 +243,7 @@
<record model="ir.rule" id="update_comp_rule">
<field name="name">Project/Updates: multi-company</field>
<field name="model_id" ref="model_project_update"/>
<field name="domain_force">[('project_id.company_id', 'in', company_ids)]</field>
<field name="domain_force">['|', ('project_id.company_id', 'in', company_ids), ('project_id.company_id', '=', False)]</field>
</record>
<record model="ir.rule" id="update_visibility_rule">
@ -228,7 +251,7 @@
<field name="model_id" ref="model_project_update"/>
<field name="domain_force">[
'|',
('project_id.privacy_visibility', '!=', 'followers'),
('project_id.privacy_visibility', 'in', ['employees', 'portal']),
'|',
('project_id.message_partner_ids', 'in', [user.partner_id.id]),
'|',
@ -243,7 +266,7 @@
<field name="model_id" ref="model_report_project_task_user"/>
<field name="domain_force">[
'|',
('project_id.privacy_visibility', '!=', 'followers'),
('project_id.privacy_visibility', 'in', ['employees', 'portal']),
'|',
('project_id.message_partner_ids', 'in', [user.partner_id.id]),
'|',
@ -272,7 +295,7 @@
<field name="model_id" ref="model_project_task_burndown_chart_report"/>
<field name="domain_force">[
'|',
('project_id.privacy_visibility', '!=', 'followers'),
('project_id.privacy_visibility', 'in', ['employees', 'portal']),
'|',
('project_id.message_partner_ids', 'in', [user.partner_id.id]),
('user_ids', 'in', user.id),
@ -290,7 +313,7 @@
<record model="ir.rule" id="milestone_comp_rule">
<field name="name">Project/Milestone: multi-company</field>
<field name="model_id" ref="model_project_milestone"/>
<field name="domain_force">[('project_id.company_id', 'in', company_ids)]</field>
<field name="domain_force">['|', ('project_id.company_id', 'in', company_ids), ('project_id.company_id', '=', False)]</field>
</record>
<record model="ir.rule" id="milestone_visibility_rule">
@ -298,7 +321,7 @@
<field name="model_id" ref="model_project_milestone"/>
<field name="domain_force">[
'|',
('project_id.privacy_visibility', '!=', 'followers'),
('project_id.privacy_visibility', 'in', ['employees', 'portal']),
'|',
('project_id.message_partner_ids', 'in', [user.partner_id.id]),
('project_id.user_id', '=', user.id),
@ -317,10 +340,27 @@
<field name="name">Project/milestone portal users: portal user can read with project sharing feature</field>
<field name="model_id" ref="project.model_project_milestone"/>
<field name="domain_force">[
('project_id.privacy_visibility', '=', 'portal'),
('project_id.privacy_visibility', 'in', ['invited_users', 'portal']),
('project_id.collaborator_ids.partner_id', 'in', [user.partner_id.id]),
]</field>
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
</record>
<record id="mail_plan_rule_group_project_manager_task" model="ir.rule">
<field name="name">Manager can manage project/task plans</field>
<field name="groups" eval="[(4, ref('group_project_manager'))]"/>
<field name="model_id" ref="mail.model_mail_activity_plan"/>
<field name="domain_force">[('res_model', 'in', ('project.project', 'project.task'))]</field>
<field name="perm_read" eval="False"/>
</record>
<record id="mail_plan_templates_rule_group_project_manager_task" model="ir.rule">
<field name="name">Manager can manage project/task plan templates</field>
<field name="groups" eval="[(4, ref('group_project_manager'))]"/>
<field name="model_id" ref="mail.model_mail_activity_plan_template"/>
<field name="domain_force">[('plan_id.res_model', 'in', ('project.project', 'project.task'))]</field>
<field name="perm_read" eval="False"/>
</record>
</data>
</odoo>