[IMP] project: add fields to burndown chart search view

This commit removes some field from the burndown chart search view that
were previously removed from the task search views.
It also adds a few fields present in the task search views but missing
from the burndown chart.

Enterprise: https://github.com/odoo/enterprise/pull/36804

Task-3142077

closes odoo/odoo#112194

Related: odoo/enterprise#36804
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
This commit is contained in:
Vincent Larcin
2023-03-30 18:58:43 +02:00
committed by Xavier Bol (xbo)
parent 43bc9897e3
commit 20f938bd10
2 changed files with 25 additions and 15 deletions
@@ -18,11 +18,15 @@ class ReportProjectTaskBurndownChart(models.AbstractModel):
date = fields.Datetime('Date', readonly=True)
date_assign = fields.Datetime(string='Assignment Date', readonly=True)
date_deadline = fields.Date(string='Deadline', readonly=True)
date_last_stage_update = fields.Date(string='Last Stage Update', readonly=True)
is_closed = fields.Boolean("Closing Stage", readonly=True)
milestone_id = fields.Many2one('project.milestone', readonly=True)
partner_id = fields.Many2one('res.partner', string='Customer', readonly=True)
project_id = fields.Many2one('project.project', readonly=True)
stage_id = fields.Many2one('project.task.type', readonly=True)
tag_ids = fields.Many2many('project.tags', relation='project_tags_project_task_rel',
column1='project_task_id', column2='project_tags_id',
string='Tags', readonly=True)
user_ids = fields.Many2many('res.users', relation='project_task_user_rel', column1='task_id', column2='user_id',
string='Assignees', readonly=True)
@@ -30,16 +34,20 @@ class ReportProjectTaskBurndownChart(models.AbstractModel):
# at a lower level than the "usual" query made by the `read_group_raw`. Indeed, the domain applied on those fields
# will be performed on a `CTE` that will be later use in the `SQL` in order to limit the subset of data that is used
# in the successive `GROUP BY` statements.
task_specific_fields = [
'date_assign',
'date_deadline',
'is_closed',
'milestone_id',
'partner_id',
'project_id',
'stage_id',
'user_ids',
]
@property
def task_specific_fields(self):
return [
'date_assign',
'date_deadline',
'date_last_stage_update',
'is_closed',
'milestone_id',
'partner_id',
'project_id',
'stage_id',
'tag_ids',
'user_ids',
]
def _get_group_by_SQL(self, task_specific_domain, count_field, select_terms, from_clause, where_clause,
where_clause_params, groupby_terms, orderby_terms, limit, offset, groupby, annotated_groupbys,
@@ -6,17 +6,19 @@
<field name="model">project.task.burndown.chart.report</field>
<field name="arch" type="xml">
<search string="Burndown Chart">
<field name="tag_ids"/>
<field name="user_ids"/>
<field name="stage_id" />
<field name="project_id" />
<field name="user_ids" />
<field name="milestone_id" groups="project.group_project_milestone"/>
<field name="date_assign"/>
<field name="date_deadline"/>
<field name="partner_id" filter_domain="[('partner_id', 'child_of', self)]"/>
<separator/>
<filter string="My Tasks" name="my_tasks" domain="[('user_ids', 'in', uid)]"/>
<filter string="Unassigned" name="unassigned" domain="[('user_ids', '=', False)]"/>
<separator/>
<filter name="filter_date" date="date" string="Date" default_period="this_year,last_year" />
<filter name="filter_last_stage_update" date="date_last_stage_update"/>
<filter name="filter_date_deadline" date="date_deadline"/>
<filter name="filter_date_assign" date="date_assign"/>
<filter string="Last Month" invisible="1" name="last_month" domain="[('date','&gt;=', (context_today() - datetime.timedelta(days=30)).strftime('%Y-%m-%d'))]"/>
<separator/>
<filter string="Open Tasks" name="open_tasks" domain="[('is_closed', '=', False)]"/>
@@ -45,7 +47,7 @@
<field name="res_model">project.task.burndown.chart.report</field>
<field name="view_mode">graph</field>
<field name="search_view_id" ref="project_task_burndown_chart_report_view_search"/>
<field name="context">{'search_default_project_id': active_id, 'search_default_date': 1, 'search_default_stage': 1, 'search_default_filter_date': 1, 'search_default_open_tasks': 1}</field>
<field name="context">{'search_default_project_id': active_id, 'search_default_date': 1, 'search_default_stage': 1, 'search_default_filter_date': 1}</field>
<field name="domain">[('project_id', '!=', False)]</field>
<field name="help" type="html">
<p class="o_view_nocontent_empty_folder">