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,