mirror of
https://github.com/bringout/oca-ocb-project.git
synced 2026-04-19 08:42:04 +02:00
Initial commit: Project packages
This commit is contained in:
commit
89613c97b0
753 changed files with 496325 additions and 0 deletions
|
|
@ -0,0 +1,44 @@
|
|||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_project_project,project.project,model_project_project,project.group_project_user,1,0,0,0
|
||||
access_project_project_manager,project.project,model_project_project,project.group_project_manager,1,1,1,1
|
||||
access_project_project_stage,project.project_stage,model_project_project_stage,base.group_user,1,0,0,0
|
||||
access_project_project_stage_manager,project.project_stage.manager,model_project_project_stage,project.group_project_manager,1,1,1,1
|
||||
access_project_task_type_user,project.task.type.user,model_project_task_type,base.group_user,1,0,0,0
|
||||
access_project_task_type_project_user,project.task.type.project.user,model_project_task_type,project.group_project_user,1,1,1,1
|
||||
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_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
|
||||
access_task_portal,task_portal,project.model_project_task,base.group_portal,1,0,0,0
|
||||
access_project_user,project.project on partners,model_project_project,base.group_user,1,0,0,0
|
||||
access_project_portal,project_portal,project.model_project_project,base.group_portal,1,0,0,0
|
||||
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_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
|
||||
access_account_analytic_account_user,account.analytic.account,analytic.model_account_analytic_account,project.group_project_user,1,0,0,0
|
||||
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_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
|
||||
access_project_update_user,project.update.user,model_project_update,base.group_user,1,0,0,0
|
||||
access_project_update_portal,project.update.portal,model_project_update,base.group_portal,0,0,0,0
|
||||
access_project_update_project_user,project.update.project.user,model_project_update,project.group_project_user,1,1,1,1
|
||||
access_project_update_project_manager,project.update.project.manager,model_project_update,project.group_project_manager,1,1,1,1
|
||||
access_project_milestone_user,project.milestone.user,model_project_milestone,base.group_user,1,0,0,0
|
||||
access_project_milestone_portal,project.milestone.portal,model_project_milestone,base.group_portal,1,0,0,0
|
||||
access_project_milestone_project_user,project.milestone.project.user,model_project_milestone,project.group_project_user,1,1,1,1
|
||||
access_project_milestone_project_manager,project.milestone.project.manager,model_project_milestone,project.group_project_manager,1,1,1,1
|
||||
access_project_collaborator_manager,project.collaborator.manager,model_project_collaborator,project.group_project_manager,1,1,1,1
|
||||
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_personal_stage,project.personal.stage.user,model_project_task_stage_personal,base.group_user,1,1,1,1
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<data noupdate="1">
|
||||
|
||||
<record id="access_project_sharing_task_portal" model="ir.model.access">
|
||||
<field name="name">project_sharing_task_portal</field>
|
||||
<field name="model_id" ref="model_project_task"/>
|
||||
<field name="group_id" ref="base.group_portal"/>
|
||||
<field name="active">0</field>
|
||||
<field name="perm_read">0</field>
|
||||
<field name="perm_write">1</field>
|
||||
<field name="perm_create">1</field>
|
||||
<field name="perm_unlink">0</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,326 @@
|
|||
<?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>
|
||||
<field name="sequence">3</field>
|
||||
</record>
|
||||
|
||||
<record id="group_project_user" model="res.groups">
|
||||
<field name="name">User</field>
|
||||
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
|
||||
<field name="category_id" ref="base.module_category_services_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"/>
|
||||
</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>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="project_project_manager_rule">
|
||||
<field name="name">Project: project manager: see all</field>
|
||||
<field name="model_id" ref="model_project_project"/>
|
||||
<field name="domain_force">[(1, '=', 1)]</field>
|
||||
<field name="groups" eval="[(4,ref('project.group_project_manager'))]"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="project_public_members_rule">
|
||||
<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'),
|
||||
('message_partner_ids', 'in', [user.partner_id.id])
|
||||
]</field>
|
||||
<field name="groups" eval="[(4, ref('base.group_user'))]"/>
|
||||
</record>
|
||||
|
||||
<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>
|
||||
</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="domain_force">[
|
||||
'|',
|
||||
'&',
|
||||
('project_id', '!=', False),
|
||||
'|',
|
||||
('project_id.privacy_visibility', '!=', 'followers'),
|
||||
('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('base.group_user'))]"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="project_manager_all_project_tasks_rule">
|
||||
<field name="name">Project/Task: project manager: see all tasks linked to a project or its own tasks</field>
|
||||
<field name="model_id" ref="model_project_task"/>
|
||||
<field name="domain_force">[
|
||||
'|', ('project_id', '!=', False),
|
||||
('user_ids', 'in', user.id),
|
||||
]</field>
|
||||
<field name="groups" eval="[(4,ref('project.group_project_manager'))]"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="task_type_manager_rule">
|
||||
<field name="name">Project/Task Type: manager sees all</field>
|
||||
<field name="model_id" ref="model_project_task_type"/>
|
||||
<field name="domain_force">[(1, '=', 1)]</field>
|
||||
<field name="groups" eval="[(4,ref('project.group_project_manager'))]"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="task_type_visibility_rule">
|
||||
<field name="name">Project/Task Type: see own or unowned stages</field>
|
||||
<field name="model_id" ref="model_project_task_type"/>
|
||||
<field name="domain_force">[('user_id', 'in', (False, user.id))]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="task_type_own_write_rule">
|
||||
<field name="name">Project/Task Type: write own stages</field>
|
||||
<field name="model_id" ref="model_project_task_type"/>
|
||||
<field name="domain_force">[('user_id', '=', user.id)]</field>
|
||||
<field name="perm_read" eval="False"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
<field name="perm_create" eval="True"/>
|
||||
<field name="perm_unlink" eval="True"/>
|
||||
<field name="groups" eval="[(4,ref('project.group_project_user'))]"/>
|
||||
</record>
|
||||
|
||||
<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>
|
||||
</record>
|
||||
|
||||
<record id="ir_rule_project_personal_stage_my" model="ir.rule">
|
||||
<field name="name">Project: See my own personal stage</field>
|
||||
<field name="model_id" ref="project.model_project_task_stage_personal"/>
|
||||
<field name="domain_force">[('user_id', '=', user.id)]</field>
|
||||
</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', '!=', False),
|
||||
('parent_id', '!=', False),
|
||||
('user_ids', 'in', user.id),
|
||||
]</field>
|
||||
<field name="groups" eval="[(4,ref('project.group_project_user'))]"/>
|
||||
</record>
|
||||
|
||||
<!-- Portal -->
|
||||
<record id="project_project_rule_portal" model="ir.rule">
|
||||
<field name="name">Project: portal users: portal and following</field>
|
||||
<field name="model_id" ref="project.model_project_project"/>
|
||||
<field name="domain_force">[
|
||||
'&',
|
||||
('privacy_visibility', '=', 'portal'),
|
||||
('message_partner_ids', 'child_of', [user.partner_id.commercial_partner_id.id]),
|
||||
]</field>
|
||||
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="project_collaborator_rule_portal" model="ir.rule">
|
||||
<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'),
|
||||
('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="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]),
|
||||
]</field>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_unlink" eval="False"/>
|
||||
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="project_task_rule_portal_project_sharing" model="ir.rule">
|
||||
<field name="name">Project/Task: portal users: portal user can edit with project sharing feature</field>
|
||||
<field name="model_id" ref="project.model_project_task"/>
|
||||
<field name="active">0</field>
|
||||
<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.collaborator_ids.partner_id', 'in', [user.partner_id.id]),
|
||||
]</field>
|
||||
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
|
||||
<field name="perm_read" eval="False"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
<field name="perm_create" eval="True"/>
|
||||
<field name="perm_unlink" eval="False"/>
|
||||
</record>
|
||||
|
||||
<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>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="update_visibility_rule">
|
||||
<field name="name">Project/Update: employees: follow required for follower-only projects</field>
|
||||
<field name="model_id" ref="model_project_update"/>
|
||||
<field name="domain_force">[
|
||||
'|',
|
||||
('project_id.privacy_visibility', '!=', 'followers'),
|
||||
'|',
|
||||
('project_id.message_partner_ids', 'in', [user.partner_id.id]),
|
||||
'|',
|
||||
('user_id', '=', user.id),
|
||||
('project_id.user_id', '=', user.id)
|
||||
]</field>
|
||||
<field name="groups" eval="[(4,ref('base.group_user'))]"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="report_project_task_user_rule">
|
||||
<field name="name">Tasks Analysis: project visibility User</field>
|
||||
<field name="model_id" ref="model_report_project_task_user"/>
|
||||
<field name="domain_force">[
|
||||
'|',
|
||||
('project_id.privacy_visibility', '!=', 'followers'),
|
||||
'|',
|
||||
('project_id.message_partner_ids', 'in', [user.partner_id.id]),
|
||||
'|',
|
||||
('task_id.message_partner_ids', 'in', [user.partner_id.id]),
|
||||
('user_ids', 'in', user.id),
|
||||
]</field>
|
||||
<field name="groups" eval="[(4,ref('project.group_project_user'))]"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="report_project_task_manager_rule">
|
||||
<field name="name">Tasks Analysis: project visibility Manager</field>
|
||||
<field name="model_id" ref="model_report_project_task_user"/>
|
||||
<field name="domain_force">[(1, '=', 1)]</field>
|
||||
<field name="groups" eval="[(4,ref('project.group_project_manager'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="update_visibility_project_admin" model="ir.rule">
|
||||
<field name="name">Project updates : Project user can see all project updates</field>
|
||||
<field name="model_id" ref="project.model_project_update"/>
|
||||
<field name="domain_force">[(1, '=', 1)]</field>
|
||||
<field name="groups" eval="[(4,ref('project.group_project_manager'))]"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="burndown_chart_project_user_rule">
|
||||
<field name="name">Burndown chart: project visibility User</field>
|
||||
<field name="model_id" ref="model_project_task_burndown_chart_report"/>
|
||||
<field name="domain_force">[
|
||||
'|',
|
||||
('project_id.privacy_visibility', '!=', 'followers'),
|
||||
'|',
|
||||
('project_id.message_partner_ids', 'in', [user.partner_id.id]),
|
||||
('user_ids', 'in', user.id),
|
||||
]</field>
|
||||
<field name="groups" eval="[(4,ref('project.group_project_user'))]"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="burndown_chart_project_manager_rule">
|
||||
<field name="name">Burndown chart: project visibility User</field>
|
||||
<field name="model_id" ref="model_project_task_burndown_chart_report"/>
|
||||
<field name="domain_force">[(1, '=', 1)]</field>
|
||||
<field name="groups" eval="[(4,ref('project.group_project_manager'))]"/>
|
||||
</record>
|
||||
|
||||
<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>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="milestone_visibility_rule">
|
||||
<field name="name">Project/Milestone: employees: follow required for follower-only projects</field>
|
||||
<field name="model_id" ref="model_project_milestone"/>
|
||||
<field name="domain_force">[
|
||||
'|',
|
||||
('project_id.privacy_visibility', '!=', 'followers'),
|
||||
'|',
|
||||
('project_id.message_partner_ids', 'in', [user.partner_id.id]),
|
||||
('project_id.user_id', '=', user.id),
|
||||
]</field>
|
||||
<field name="groups" eval="[(4, ref('base.group_user'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="milestone_visibility_project_admin" model="ir.rule">
|
||||
<field name="name">Project/Milestone: Project manager can see all project milestones</field>
|
||||
<field name="model_id" ref="project.model_project_milestone"/>
|
||||
<field name="domain_force">[(1, '=', 1)]</field>
|
||||
<field name="groups" eval="[(4, ref('project.group_project_manager'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="project_milestone_rule_portal_project_sharing" model="ir.rule">
|
||||
<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.collaborator_ids.partner_id', 'in', [user.partner_id.id]),
|
||||
]</field>
|
||||
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
Loading…
Add table
Add a link
Reference in a new issue