[IMP] project: add project color in task calendar filter

This commit colors the project filter checkboxes on the right side panel
of the task calendar view with the color of the corresponding project.

It also changes the color of the events in the tasks in the calendar so it
uses the color in the project in the view "All Tasks", and the color of
the tasks in a calendar view of a specific project.

Finally, it adds some colors to tasks in demo data to better showcase
that feature.

Task-2741733

Part-of: odoo/odoo#86008
This commit is contained in:
Vincent Larcin
2022-05-05 15:14:32 +02:00
committed by Laurent Stukkens (LTU)
parent 69517e1640
commit 1d2adbd8c9
3 changed files with 43 additions and 2 deletions
+11
View File
@@ -212,6 +212,7 @@
<field name="project_id" ref="project.project_project_1"/>
<field name="name">Office planning</field>
<field name="stage_id" ref="project_stage_2"/>
<field name="color">7</field>
<field name="create_date" eval="DateTime.now() - relativedelta(months=5)"/>
</record>
@@ -369,6 +370,7 @@
<field name="kanban_state">blocked</field>
<field name="create_date" eval="DateTime.now() - relativedelta(months=5)"/>
<field name="date_deadline" eval="DateTime.now() + relativedelta(days=2)"/>
<field name="color">1</field>
</record>
<record id="project_1_task_5_mail_message_1" model="mail.message">
<field name="model">project.task</field>
@@ -410,6 +412,7 @@
<field name="stage_id" ref="project_stage_1"/>
<field name="tag_ids" eval="[Command.set([ref('project_tags_01')])]"/>
<field name="create_date" eval="DateTime.now() - relativedelta(months=5)"/>
<field name="color">11</field>
</record>
<record id="project_1_task_6_mail_message_1" model="mail.message">
<field name="model">project.task</field>
@@ -448,6 +451,7 @@
<field name="stage_id" ref="project_stage_1"/>
<field name="create_date" eval="DateTime.now() - relativedelta(months=5)"/>
<field name="date_deadline" eval="DateTime.now() + relativedelta(days=6)"/>
<field name="color">9</field>
</record>
<record id="project_1_task_7_mail_message_1" model="mail.message">
<field name="model">project.task</field>
@@ -800,6 +804,7 @@ Send it ASAP, its urgent.</field>
<field name="create_date" eval="DateTime.now() - relativedelta(months=5)"/>
<field name="depend_on_ids" eval="[Command.link(ref('project.project_2_task_3'))]"/>
<field name="date_deadline" eval="DateTime.now() + relativedelta(days=1)"/>
<field name="color">2</field>
</record>
<record id="project_2_task_4_mail_message_1" model="mail.message">
<field name="model">project.task</field>
@@ -832,6 +837,7 @@ Send it ASAP, its urgent.</field>
<field name="create_date" eval="DateTime.now() - relativedelta(months=5)"/>
<field name="depend_on_ids" eval="[Command.link(ref('project.project_2_task_3'))]"/>
<field name="date_deadline" eval="DateTime.now() + relativedelta(days=5)"/>
<field name="color">2</field>
</record>
<record id="project_2_task_5_mail_message_1" model="mail.message">
<field name="model">project.task</field>
@@ -861,6 +867,7 @@ Send it ASAP, its urgent.</field>
<field name="create_date" eval="DateTime.now() - relativedelta(months=5)"/>
<field name="depend_on_ids" eval="[Command.link(ref('project.project_2_task_3'))]"/>
<field name="date_deadline" eval="DateTime.now() + relativedelta(days=4)"/>
<field name="color">11</field>
</record>
<record id="project_2_task_6_mail_message_1" model="mail.message">
<field name="model">project.task</field>
@@ -941,6 +948,7 @@ Send it ASAP, its urgent.</field>
<field name="depend_on_ids"
eval="[Command.link(ref('project.project_2_task_7')), Command.link(ref('project.project_2_task_5')), Command.link(ref('project.project_2_task_4')), Command.link(ref('project.project_2_task_6'))]"/>
<field name="date_deadline" eval="DateTime.now() + relativedelta(days=9)"/>
<field name="color">7</field>
</record>
<record id="project_2_task_8_mail_message_1" model="mail.message">
<field name="model">project.task</field>
@@ -972,6 +980,7 @@ Send it ASAP, its urgent.</field>
<field name="create_date" eval="DateTime.now() - relativedelta(months=5)"/>
<field name="depend_on_ids" eval="[Command.link(ref('project.project_2_task_8'))]"/>
<field name="date_deadline" eval="DateTime.now() + relativedelta(days=15)"/>
<field name="color">4</field>
</record>
<record id="project_2_task_10" model="project.task">
@@ -985,6 +994,7 @@ Send it ASAP, its urgent.</field>
<field name="create_date" eval="DateTime.now() - relativedelta(months=5)"/>
<field name="depend_on_ids" eval="[Command.link(ref('project.project_2_task_8'))]"/>
<field name="date_deadline" eval="DateTime.now() + relativedelta(days=15)"/>
<field name="color">5</field>
</record>
<record id="project_2_task_11" model="project.task">
@@ -1058,6 +1068,7 @@ Send it ASAP, its urgent.</field>
<field name="date_deadline" eval="DateTime.today() - relativedelta(days=5)"/>
<field name="stage_id" ref="project_stage_2"/>
<field name="tag_ids" eval="[Command.set([ref('project_tags_01')])]"/>
<field name="color">9</field>
</record>
<record id="project_3_task_4" model="project.task">
+1
View File
@@ -1055,6 +1055,7 @@ class Task(models.Model):
'res.company', string='Company', compute='_compute_company_id', store=True, readonly=False,
required=True, copy=True, default=_default_company_id)
color = fields.Integer(string='Color Index')
project_color = fields.Integer(related='project_id.color', string='Project Color')
rating_active = fields.Boolean(string='Project Rating Status', related="project_id.rating_active")
attachment_ids = fields.One2many('ir.attachment', compute='_compute_attachment_ids', string="Main Attachments",
help="Attachments that don't come from a message.")
+31 -2
View File
@@ -1313,11 +1313,11 @@
<field eval="2" name="priority"/>
<field name="arch" type="xml">
<calendar date_start="date_deadline" string="Tasks" mode="month"
color="user_ids" event_limit="5" hide_time="true"
color="color" event_limit="5" hide_time="true"
event_open_popup="true" quick_add="false" show_unusual_days="True"
js_class="project_calendar"
scales="month,year">
<field name="project_id" widget="project_private_task" filters="1"/>
<field name="project_id" widget="project_private_task" filters="1" color="color"/>
<field name="user_ids" widget="many2many_avatar_user"/>
<field name="partner_id" attrs="{'invisible': [('partner_id', '=', False)]}"/>
<field name="priority" widget="priority"/>
@@ -1329,6 +1329,18 @@
</field>
</record>
<record id="view_task_all_calendar" model="ir.ui.view">
<field name="name">project.task.all.calendar</field>
<field name="model">project.task</field>
<field name="inherit_id" ref="view_task_calendar"/>
<field name="mode">primary</field>
<field name="arch" type="xml">
<xpath expr="//calendar" position="attributes">
<attribute name="color">project_color</attribute>
</xpath>
</field>
</record>
<record id="view_project_task_graph" model="ir.ui.view">
<field name="name">project.task.graph</field>
<field name="model">project.task</field>
@@ -1414,6 +1426,23 @@
<field name="act_window_id" ref="action_view_task"/>
</record>
<record id="open_view_all_task_list_kanban" model="ir.actions.act_window.view">
<field name="sequence" eval="10"/>
<field name="view_mode">kanban</field>
<field name="act_window_id" ref="action_view_all_task"/>
</record>
<record id="open_view_all_task_list_tree" model="ir.actions.act_window.view">
<field name="sequence" eval="20"/>
<field name="view_mode">tree</field>
<field name="act_window_id" ref="action_view_all_task"/>
</record>
<record id="open_view_all_task_list_calendar" model="ir.actions.act_window.view">
<field name="sequence" eval="40"/>
<field name="view_mode">calendar</field>
<field name="act_window_id" ref="action_view_all_task"/>
<field name="view_id" ref="view_task_all_calendar"/>
</record>
<menuitem name="My Tasks" id="menu_project_management" parent="menu_main_pm"
action="action_view_all_task" sequence="2" groups="base.group_no_one,group_project_user"/>