diff --git a/controllers/main.py b/controllers/main.py
index 6e7c4d5eeae2ac43294000529949c4e4aa9d9509..b33e54c9f7c72efd82458385d66d4f4b9655809b 100644
--- a/controllers/main.py
+++ b/controllers/main.py
@@ -1,17 +1,17 @@
# Copyright 2023 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-from odoo import _, http
+from odoo import http
+from odoo.addons.oacc_portal.controllers.main import \
+ CustomerPortal as CustomerPortal
from odoo.http import request
-# from odoo.addons.portal.controllers.portal import CustomerPortal as CustomerPortal
-from odoo.addons.oacc_portal.controllers.main import CustomerPortal as CustomerPortal
-
class CustomerPortal(CustomerPortal):
def _get_data_date(self, is_data_cdc, operation=None):
vals = {}
- # Si des données existent, récupérer les dates min/max/début/fin de l'opération
+ # Si des données existent, récupérer les dates min/max/début/fin
+ # de l'opération
if is_data_cdc:
vals["data_values"] = operation.get_values_init_graph()
@@ -38,7 +38,8 @@ class CustomerPortal(CustomerPortal):
website=True,
)
def pmo(self, operation, **kw):
- render_values = self._get_operation_values(operation)
+ render_values = {}
+ render_values.update(self._get_role(operation))
render_values.update(
self._get_data_date(render_values.get("isDataCdc"), operation)
)
@@ -60,7 +61,8 @@ class CustomerPortal(CustomerPortal):
website=True,
)
def consumer(self, operation, **kw):
- render_values = self._get_operation_values(operation)
+ render_values = {}
+ render_values.update(self._get_role(operation))
render_values.update(
self._get_data_date(render_values.get("isDataCdc"), operation)
@@ -83,13 +85,16 @@ class CustomerPortal(CustomerPortal):
)
@http.route(
- ['/operation/<model("acc.operation"):operation>/productor',],
+ [
+ '/operation/<model("acc.operation"):operation>/productor',
+ ],
type="http",
auth="user",
website=True,
)
def productor(self, operation, **kw):
- render_values = self._get_operation_values(operation)
+ render_values = {}
+ render_values.update(self._get_role(operation))
render_values.update(
self._get_data_date(render_values.get("isDataCdc"), operation)
@@ -113,7 +118,11 @@ class CustomerPortal(CustomerPortal):
@http.route(
["/chart/update_json"],
- type="json", auth="public", methods=["POST"], website=True, csrf=False,
+ type="json",
+ auth="public",
+ methods=["POST"],
+ website=True,
+ csrf=False,
)
def chart_update_json(
self,
diff --git a/static/src/js/canvas.js b/static/src/js/canvas.js
index 748179d811d5e443fad24af7b5f897f2954dceda..8fb92d78aca69399d8e83a0763fab339a6f01df0 100644
--- a/static/src/js/canvas.js
+++ b/static/src/js/canvas.js
@@ -1,11 +1,8 @@
odoo.define("oacc_portal_overview_cdc.canvas", function (require) {
"use strict";
- var core = require("web.core");
var publicWidget = require("web.public.widget");
- var concurrency = require("web.concurrency");
-
publicWidget.registry.oaccPortalOverviewCdc = publicWidget.Widget.extend({
jsLibs: [
"/web/static/lib/Chart/Chart.js",
@@ -69,8 +66,10 @@ odoo.define("oacc_portal_overview_cdc.canvas", function (require) {
*/
start: function () {
var self = this;
- $('select[name="endpoint"]').select2({placeholder: "Sélectionner"});
- $('button[id="next-period"]').prop("disabled",true);
+ $('select[name="endpoint"]').select2({
+ placeholder: "Sélectionner",
+ });
+ $('button[id="next-period"]').prop("disabled", true);
return this._super().then(function () {
// Récupération des dates de début et fin
@@ -169,38 +168,38 @@ odoo.define("oacc_portal_overview_cdc.canvas", function (require) {
render_daterangepicker: function () {
var self = this;
- this.date_range_picker = this
- .$('input[name="daterange"]')
- .daterangepicker(
- {
- showDropdowns: true,
- startDate: self.first_day,
- endDate: self.last_day,
- minDate: self.minDate,
- maxDate: self.maxDate,
- autoApply: true,
- alwaysShowCalendars: true,
- autoUpdateInput: true,
- linkedCalendars: true,
- },
- function (start, end, label) {
- self.first_day = start.format("DD/MM/YYYY");
- self.last_day = end.format("DD/MM/YYYY");
- self._rpc({
- route: "/chart/update_json",
- params: {
- operation_id: self.operation,
- date_start: self.first_day,
- date_end: self.last_day,
- partner_id: self.partner_id,
- prm_id: self.prm_id,
- data_type: self.data_type,
- },
- }).then(function (data) {
- self._updateDataTemplate(data);
- });
- }
- );
+ this.date_range_picker = this.$(
+ 'input[name="daterange"]'
+ ).daterangepicker(
+ {
+ showDropdowns: true,
+ startDate: self.first_day,
+ endDate: self.last_day,
+ minDate: self.minDate,
+ maxDate: self.maxDate,
+ autoApply: true,
+ alwaysShowCalendars: true,
+ autoUpdateInput: true,
+ linkedCalendars: true,
+ },
+ function (start, end, label) {
+ self.first_day = start.format("DD/MM/YYYY");
+ self.last_day = end.format("DD/MM/YYYY");
+ self._rpc({
+ route: "/chart/update_json",
+ params: {
+ operation_id: self.operation,
+ date_start: self.first_day,
+ date_end: self.last_day,
+ partner_id: self.partner_id,
+ prm_id: self.prm_id,
+ data_type: self.data_type,
+ },
+ }).then(function (data) {
+ self._updateDataTemplate(data);
+ });
+ }
+ );
},
/**
@@ -647,7 +646,9 @@ odoo.define("oacc_portal_overview_cdc.canvas", function (require) {
if (title_name) {
var title_cdc = $(".title_cdc");
var title_upd =
- '<h3 class="title_cdc text-center mt-2">' + title_name + "</h3>";
+ '<h3 class="title_cdc text-center mt-2">' +
+ title_name +
+ "</h3>";
title_cdc.replaceWith(title_upd);
}
self._updateDataTemplate(data);
@@ -669,14 +670,14 @@ odoo.define("oacc_portal_overview_cdc.canvas", function (require) {
// Disable buttons if first or last date
if (this.last_day == this.maxDate) {
- $('button[id="next-period"]').prop("disabled",true);
+ $('button[id="next-period"]').prop("disabled", true);
} else {
- $('button[id="next-period"]').prop("disabled",false);
+ $('button[id="next-period"]').prop("disabled", false);
}
if (this.first_day == this.minDate) {
- $('button[id="previous-period"]').prop("disabled",true);
+ $('button[id="previous-period"]').prop("disabled", true);
} else {
- $('button[id="previous-period"]').prop("disabled",false);
+ $('button[id="previous-period"]').prop("disabled", false);
}
if (self.chart_line_conso !== null) {
@@ -733,7 +734,7 @@ odoo.define("oacc_portal_overview_cdc.canvas", function (require) {
},
_onChangePrm: function (ev) {
- var selected = $(ev.currentTarget).find('option:selected');
+ var selected = $(ev.currentTarget).find("option:selected");
this.title_name = selected.data("name");
this.partner_id = parseInt(selected.data("partner-id"));
this.prm_id = parseInt(selected.data("prm-id"));
@@ -752,48 +753,59 @@ odoo.define("oacc_portal_overview_cdc.canvas", function (require) {
const delta_days = last_day - first_day;
let delta_month = 0;
- if (first_day.isSame(first_day.clone().startOf('month'), 'day') && last_day.isSame(last_day.clone().endOf('month'), 'day')) {
+ if (
+ first_day.isSame(first_day.clone().startOf("month"), "day") &&
+ last_day.isSame(last_day.clone().endOf("month"), "day")
+ ) {
delta_month = last_day.month() - first_day.month() + 1;
}
if (type == "previous") {
// Compare for first day
- let next_first = first_day.clone().subtract(delta_days).subtract(1, 'd');
- let moment_min = moment(this.minDate, "DD/MM/YYYY");
- this.last_day = moment(this.last_day, "DD/MM/YYYY").subtract(delta_days).subtract(1, 'd').format("DD/MM/YYYY");
+ let next_first = first_day
+ .clone()
+ .subtract(delta_days)
+ .subtract(1, "d");
+ const moment_min = moment(this.minDate, "DD/MM/YYYY");
+ this.last_day = moment(this.first_day, "DD/MM/YYYY")
+ .subtract(1, "d")
+ .format("DD/MM/YYYY");
if (delta_month > 0) {
- next_first = first_day.subtract(delta_month, 'months');
- this.last_day = last_day.subtract(delta_month, 'months').endOf('month').format("DD/MM/YYYY");
+ next_first = first_day
+ .clone()
+ .subtract(delta_month, "months");
}
- this.first_day = moment.max([next_first, moment_min]).format("DD/MM/YYYY");
-
- this.date_range_picker
- .data("daterangepicker")
- .setStartDate(this.first_day);
- this.date_range_picker
- .data("daterangepicker")
- .setEndDate(this.last_day);
+ this.first_day = moment
+ .max([next_first, moment_min])
+ .format("DD/MM/YYYY");
}
if (type == "next") {
// Compare for last day
- let next_last = last_day.clone().add(delta_days).add(1, 'd');
- let moment_max = moment(this.maxDate, "DD/MM/YYYY");
+ let next_last = last_day.clone().add(delta_days).add(1, "d");
+ const moment_max = moment(this.maxDate, "DD/MM/YYYY");
+ this.first_day = moment(this.last_day, "DD/MM/YYYY")
+ .add(1, "d")
+ .format("DD/MM/YYYY");
+
if (delta_month > 0) {
- next_last = last_day.add(delta_month, 'months').endOf('month');
- this.first_day = first_day.add(1, 'months').format("DD/MM/YYYY");
+ next_last = last_day
+ .clone()
+ .add(delta_month, "months")
+ .endOf("month");
}
- this.last_day = moment.min([next_last, moment_max]).format("DD/MM/YYYY");
-
- this.date_range_picker
- .data("daterangepicker")
- .setStartDate(this.first_day);
- this.date_range_picker
- .data("daterangepicker")
- .setEndDate(this.last_day);
+ this.last_day = moment
+ .min([next_last, moment_max])
+ .format("DD/MM/YYYY");
}
+ this.date_range_picker
+ .data("daterangepicker")
+ .setStartDate(this.first_day);
+ this.date_range_picker
+ .data("daterangepicker")
+ .setEndDate(this.last_day);
this._updateChartData(this.title_name);
},
});