[FIX] project: change user_id into user_ids in various view and reports

The `user_id` field was replaced in odoo/odoo#74087 by `user_ids`.
The field change was forgotten in various reports and the a wizard.

This commit fixes those.

task-2638359
closes #76166

X-original-commit: f584485f0c69eda002491ca9b63bc3d228e95001
This commit is contained in:
Laurent Stukkens (LTU)
2021-09-14 21:25:00 +02:00
parent 942c64df67
commit 4ed77405e4
6 changed files with 12 additions and 24 deletions
@@ -39,7 +39,7 @@
<filter string="Tasks in Overtime" name="overtime" domain="[('task_id.overtime', '&gt;', 0)]"/>
</xpath>
<xpath expr="//filter[@name='my_tasks']" position="before">
<filter string="My Team's Projects" name="my_team_projects" domain="[('project_id.user_id.employee_id.parent_id.user_id', '=', uid), ('project_id.user_id', '!=', uid), ('user_id', '!=', uid), ('user_id', '!=', False)]"/>
<filter string="My Team's Projects" name="my_team_projects" domain="[('project_id.user_id.employee_id.parent_id.user_id', '=', uid), ('project_id.user_id', '!=', uid), ('user_ids', '!=', uid), ('user_ids', '!=', False)]"/>
</xpath>
<xpath expr="//filter[@name='my_tasks']" position="after">
<filter string="My Team's Tasks" name="my_team_tasks" domain="[('task_id.user_ids.employee_id.parent_id.user_id', '=', uid)]" />
@@ -52,7 +52,7 @@
<field name="model">report.project.task.user</field>
<field name="inherit_id" ref="project.report_project_task_user_view_tree"/>
<field name="arch" type="xml">
<field name="user_id" position="after">
<field name="user_ids" position="after">
<field name="hours_effective" optional="hide" widget="float_time"/>
<field name="progress" optional="hide" widget="progressbar"/>
</field>
+2 -3
View File
@@ -11,7 +11,8 @@ class ReportProjectTaskUser(models.Model):
_auto = False
name = fields.Char(string='Task', readonly=True)
user_id = fields.Many2one('res.users', string='Assigned To', readonly=True)
user_ids = fields.Many2many('res.users', relation='project_task_user_rel', column1='task_id', column2='user_id',
string='Assignees', readonly=True)
create_date = fields.Datetime("Create Date", readonly=True)
date_assign = fields.Datetime(string='Assignment Date', readonly=True)
date_end = fields.Datetime(string='Ending Date', readonly=True)
@@ -55,7 +56,6 @@ class ReportProjectTaskUser(models.Model):
t.date_end as date_end,
t.date_last_stage_update as date_last_stage_update,
t.date_deadline as date_deadline,
tu.user_id,
t.project_id,
t.priority,
t.name as name,
@@ -82,7 +82,6 @@ class ReportProjectTaskUser(models.Model):
t.date_end,
t.date_deadline,
t.date_last_stage_update,
tu.user_id,
t.project_id,
t.priority,
t.name,
@@ -17,7 +17,7 @@
<field name="arch" type="xml">
<graph string="Tasks Analysis" sample="1">
<field name="project_id"/>
<field name="user_id"/>
<field name="user_ids"/>
<field name="nbr" invisible="1"/>
</graph>
</field>
@@ -31,7 +31,7 @@
<field name="name"/>
<field name="partner_id" optional="hide"/>
<field name="project_id" optional="show"/>
<field name="user_id" optional="show" widget="many2one_avatar_user"/>
<field name="user_ids" optional="show" widget="many2many_avatar_user"/>
<field name="stage_id" optional="show"/>
<field name="company_id" optional="show" groups="base.group_multi_company"/>
</tree>
@@ -46,7 +46,7 @@
<field name="project_id"/>
<field name="name" />
<field name="stage_id"/>
<field name="user_id"/>
<field name="user_ids"/>
<field name="partner_id" filter_domain="[('partner_id', 'child_of', self)]"/>
<field name="name" string="Tags" filter_domain="[('task_id.tag_ids', 'ilike', self)]"/>
<field name="date_assign"/>
@@ -59,7 +59,7 @@
<filter string="Starred" name="starred" domain="[('task_id.priority', 'in', [0, 1])]"/>
<separator/>
<filter string="Tasks Late" name="late" domain="[('task_id.date_deadline', '&lt;', context_today().strftime('%Y-%m-%d'))]"/>
<filter string="Unassigned Tasks" name="unassigned" domain="[('user_id', '=', False)]"/>
<filter string="Unassigned Tasks" name="unassigned" domain="[('user_ids', '=', False)]"/>
<filter string="Open tasks" name="open_tasks" domain="[('stage_id.fold', '=', False), ('stage_id.is_closed', '=', False)]"/>
<separator/>
<filter name="filter_date_deadline" date="date_deadline"/>
@@ -72,7 +72,7 @@
<group expand="1" string="Group By">
<filter string="Project" name="project" context="{'group_by': 'project_id'}"/>
<filter string="Stage" name="Stage" context="{'group_by': 'stage_id'}"/>
<filter string="Assigned to" name="User" context="{'group_by': 'user_id'}"/>
<filter string="Assigned to" name="User" context="{'group_by': 'user_ids'}"/>
<filter string="Customer" name="Customer" context="{'group_by': 'partner_id'}"/>
<filter string="Deadline" name="deadline" context="{'group_by': 'date_deadline'}"/>
</group>
@@ -18,7 +18,8 @@ class ReportProjectTaskBurndownChart(models.Model):
display_project_id = fields.Many2one('project.project', readonly=True)
stage_id = fields.Many2one('project.task.type', readonly=True)
date = fields.Datetime('Date', readonly=True)
user_id = fields.Many2one('res.users', string='Assigned to', readonly=True)
user_ids = fields.Many2many('res.users', relation='project_task_user_rel', column1='task_id', column2='user_id',
string='Assignees', readonly=True)
date_assign = fields.Datetime(string='Assignment Date', readonly=True)
date_deadline = fields.Date(string='Deadline', readonly=True)
partner_id = fields.Many2one('res.partner', string='Customer', readonly=True)
@@ -59,7 +60,6 @@ WITH all_moves_stage_task AS (
COALESCE(LAG(mm.date) OVER (PARTITION BY mm.res_id ORDER BY mm.id), pt.create_date) as date_begin,
mm.date as date_end,
mtv.old_value_integer as stage_id,
usr_rel.user_id,
pt.date_assign,
pt.date_deadline,
pt.partner_id
@@ -71,7 +71,6 @@ WITH all_moves_stage_task AS (
JOIN ir_model_fields imf ON mtv.field = imf.id
AND imf.model = 'project.task'
AND imf.name = 'stage_id'
JOIN project_task_user_rel usr_rel ON pt.id=usr_rel.task_id
WHERE pt.active
--We compute the last reached stage
@@ -83,7 +82,6 @@ WITH all_moves_stage_task AS (
COALESCE(md.date, pt.create_date) as date_begin,
(CURRENT_DATE + interval '1 month')::date as date_end,
pt.stage_id,
usr_rel.user_id,
pt.date_assign,
pt.date_deadline,
pt.partner_id
@@ -99,7 +97,6 @@ WITH all_moves_stage_task AS (
AND mm.model = 'project.task'
ORDER BY mm.id DESC
FETCH FIRST ROW ONLY) md ON TRUE
JOIN project_task_user_rel usr_rel ON pt.id=usr_rel.task_id
WHERE pt.active
)
SELECT (task_id*10^7 + 10^6 + to_char(d, 'YYMMDD')::integer)::bigint as id,
@@ -108,7 +105,6 @@ SELECT (task_id*10^7 + 10^6 + to_char(d, 'YYMMDD')::integer)::bigint as id,
display_project_id,
stage_id,
d as date,
user_id,
date_assign,
date_deadline,
partner_id,
@@ -125,7 +121,6 @@ SELECT (task_id*10^7 + 2*10^6 + to_char(d, 'YYMMDD')::integer)::bigint as id,
display_project_id,
stage_id,
date_trunc('week', d) as date,
user_id,
date_assign,
date_deadline,
partner_id,
@@ -144,7 +139,6 @@ SELECT (task_id*10^7 + 3*10^6 + to_char(d, 'YYMMDD')::integer)::bigint as id,
display_project_id,
stage_id,
date_trunc('month', d) as date,
user_id,
date_assign,
date_deadline,
partner_id,
@@ -163,7 +157,6 @@ SELECT (task_id*10^7 + 4*10^6 + to_char(d, 'YYMMDD')::integer)::bigint as id,
display_project_id,
stage_id,
date_trunc('quarter', d) as date,
user_id,
date_assign,
date_deadline,
partner_id,
@@ -182,7 +175,6 @@ SELECT (task_id*10^7 + 5*10^6 + to_char(d, 'YYMMDD')::integer)::bigint as id,
display_project_id,
stage_id,
date_trunc('year', d) as date,
user_id,
date_assign,
date_deadline,
partner_id,
@@ -7,12 +7,10 @@
<field name="arch" type="xml">
<search string="Burndown Chart">
<field name="project_id" />
<field name="user_id" />
<field name="date_assign"/>
<field name="date_deadline"/>
<field name="partner_id" filter_domain="[('partner_id', 'child_of', self)]"/>
<field name="stage_id" />
<filter string="Unassigned" name="unassigned" domain="[('user_id', '=', False)]"/>
<separator/>
<filter name="filter_date" date="date" string="Date" />
<filter name="filter_date_deadline" date="date_deadline"/>
@@ -23,7 +21,6 @@
<filter string="Date" name="date" context="{'group_by': 'date'}" />
<filter string="Stage" name="stage" context="{'group_by': 'stage_id'}" />
<filter string="Project" name="project" context="{'group_by': 'project_id'}" />
<filter string="Assigned To" name="user" context="{'group_by': 'user_id'}" />
</group>
</search>
</field>
@@ -58,7 +58,7 @@ class ProjectTaskTypeDelete(models.TransientModel):
action = self.env["ir.actions.actions"]._for_xml_id("project.action_view_task")
action['domain'] = [('project_id', '=', project_id)]
action['context'] = str({
'pivot_row_groupby': ['user_id'],
'pivot_row_groupby': ['user_ids'],
'default_project_id': project_id,
})
elif self.env.context.get('stage_view'):