From 3de84e943480c47fd5fb14d9276faa38653d7fcf Mon Sep 17 00:00:00 2001 From: Kamlesh Pathekar Date: Wed, 22 Mar 2023 05:42:36 +0000 Subject: [PATCH] [IMP] project, web: modify calendar filter in project calendar view In this commit, we renamed the calendar filter in task from 'Undefined' to 'Private' to be consistent with the terminology used in the other views task. task-3214107 closes odoo/odoo#115621 Signed-off-by: Xavier Bol (xbo) --- .../project_calendar_controller.js | 5 +++++ .../project_calendar_filter_panel.js | 9 +++++++++ .../project_calendar_filter_panel.xml | 12 ++++++++++++ .../project_calendar/project_calendar_model.js | 16 ++++++++++++++++ .../project_calendar/project_calendar_view.js | 2 ++ .../static/src/views/calendar/calendar_model.js | 6 +++++- 6 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 addons/project/static/src/views/project_calendar/project_calendar_filter_panel/project_calendar_filter_panel.js create mode 100644 addons/project/static/src/views/project_calendar/project_calendar_filter_panel/project_calendar_filter_panel.xml create mode 100644 addons/project/static/src/views/project_calendar/project_calendar_model.js diff --git a/addons/project/static/src/views/project_calendar/project_calendar_controller.js b/addons/project/static/src/views/project_calendar/project_calendar_controller.js index 3fe595ad621..24e61059f9c 100644 --- a/addons/project/static/src/views/project_calendar/project_calendar_controller.js +++ b/addons/project/static/src/views/project_calendar/project_calendar_controller.js @@ -1,8 +1,13 @@ /** @odoo-module **/ import { CalendarController } from "@web/views/calendar/calendar_controller"; +import { ProjectCalendarFilterPanel } from "./project_calendar_filter_panel/project_calendar_filter_panel"; export class ProjectCalendarController extends CalendarController { + static components = { + ...ProjectCalendarController.components, + FilterPanel: ProjectCalendarFilterPanel, + }; setup() { super.setup(...arguments); this.displayName += this.env._t(" - Tasks by Deadline"); diff --git a/addons/project/static/src/views/project_calendar/project_calendar_filter_panel/project_calendar_filter_panel.js b/addons/project/static/src/views/project_calendar/project_calendar_filter_panel/project_calendar_filter_panel.js new file mode 100644 index 00000000000..67e3f3c35f3 --- /dev/null +++ b/addons/project/static/src/views/project_calendar/project_calendar_filter_panel/project_calendar_filter_panel.js @@ -0,0 +1,9 @@ +/** @odoo-module **/ + +import { CalendarFilterPanel } from "@web/views/calendar/filter_panel/calendar_filter_panel"; + +export class ProjectCalendarFilterPanel extends CalendarFilterPanel { } + +ProjectCalendarFilterPanel.subTemplates = { + filter: "project.ProjectCalendarFilterPanel.filter", +}; diff --git a/addons/project/static/src/views/project_calendar/project_calendar_filter_panel/project_calendar_filter_panel.xml b/addons/project/static/src/views/project_calendar/project_calendar_filter_panel/project_calendar_filter_panel.xml new file mode 100644 index 00000000000..042cc05384e --- /dev/null +++ b/addons/project/static/src/views/project_calendar/project_calendar_filter_panel/project_calendar_filter_panel.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/addons/project/static/src/views/project_calendar/project_calendar_model.js b/addons/project/static/src/views/project_calendar/project_calendar_model.js new file mode 100644 index 00000000000..c68b775601a --- /dev/null +++ b/addons/project/static/src/views/project_calendar/project_calendar_model.js @@ -0,0 +1,16 @@ +/** @odoo-module */ + +import { CalendarModel } from '@web/views/calendar/calendar_model'; + +export class ProjectCalendarModel extends CalendarModel { + /** + * @override + */ + get defaultFilterLabel() { + this.isCheckProject = 'project_id' in this.meta.filtersInfo; + if (this.isCheckProject) { + return this.env._t("Private"); + } + return super.onWillStart(); + } +} diff --git a/addons/project/static/src/views/project_calendar/project_calendar_view.js b/addons/project/static/src/views/project_calendar/project_calendar_view.js index f418f837e6b..b48949e273b 100644 --- a/addons/project/static/src/views/project_calendar/project_calendar_view.js +++ b/addons/project/static/src/views/project_calendar/project_calendar_view.js @@ -4,10 +4,12 @@ import { registry } from "@web/core/registry"; import { calendarView } from "@web/views/calendar/calendar_view"; import { ProjectCalendarController } from "@project/views/project_calendar/project_calendar_controller"; import { ProjectControlPanel } from "@project/components/project_control_panel/project_control_panel"; +import { ProjectCalendarModel } from "./project_calendar_model"; export const projectCalendarView = { ...calendarView, Controller: ProjectCalendarController, + Model: ProjectCalendarModel, ControlPanel: ProjectControlPanel, }; registry.category("views").add("project_calendar", projectCalendarView); diff --git a/addons/web/static/src/views/calendar/calendar_model.js b/addons/web/static/src/views/calendar/calendar_model.js index 1f0a00cb1e0..1a17ac74841 100644 --- a/addons/web/static/src/views/calendar/calendar_model.js +++ b/addons/web/static/src/views/calendar/calendar_model.js @@ -139,6 +139,10 @@ export class CalendarModel extends Model { return this.meta.quickCreateFormViewId; } + get defaultFilterLabel() { + return _t("Undefined"); + } + //-------------------------------------------------------------------------- async createFilter(fieldName, filterValue) { @@ -732,7 +736,7 @@ export class CalendarModel extends Model { type: "dynamic", recordId: null, value, - label: formatter(rawValue, { field }) || _t("Undefined"), + label: formatter(rawValue, { field }) || this.defaultFilterLabel, active: previousFilter ? previousFilter.active : true, canRemove: false, colorIndex,