Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • e75d534cfb9745e477681fac8d03718067a8c19e
  • 14.0 par défaut
  • 14.0-2507-inpi
  • 12.0 protégée
  • 13.0
  • 12.0-lm-00 protégée
6 résultats

scop_federation_activity.py

Blame
  • main.py 4,13 Kio
    # 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.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
            if is_data_cdc:
                vals["data_values"] = operation.get_values_init_graph()
    
            else:
                vals["data_values"] = {
                    "date_day_start": False,
                    "date_day_end": False,
                    "date_week_start": False,
                    "date_week_end": False,
                    "date_month_start": False,
                    "date_month_end": False,
                    "date_year_start": False,
                    "date_year_end": False,
                }
    
            vals["data_values"].update(operation.get_date_min_max())
    
            return vals
    
        @http.route(
            ['/operation/<model("acc.operation"):operation>/pmo'],
            type="http",
            auth="user",
            website=True,
        )
        def pmo(self, operation, **kw):
            render_values = self._get_operation_values(operation)
            render_values.update(
                self._get_data_date(render_values.get("isDataCdc"), operation)
            )
    
            render_values.update(
                {
                    "page_name": "pmo-view",
                    "page_breadcrumbs": "Vue globale",
                    "scale": "month",
                }
            )
    
            return request.render("oacc_portal_overview_cdc.operation_pmo", render_values)
    
        @http.route(
            ['/operation/<model("acc.operation"):operation>/consumer'],
            type="http",
            auth="user",
            website=True,
        )
        def consumer(self, operation, **kw):
            render_values = self._get_operation_values(operation)
    
            render_values.update(
                self._get_data_date(render_values.get("isDataCdc"), operation)
            )
    
            partner_ids = operation.acc_delivery_ids.mapped("partner_id").sorted(
                key=lambda p: p.name
            )
            render_values.update(
                {
                    "partners": partner_ids,
                    "page_name": "conso",
                    "page_breadcrumbs": "Suivi consommation",
                    "scale": "month",
                }
            )
    
            return request.render(
                "oacc_portal_overview_cdc.operation_consumer", render_values
            )
    
        @http.route(
            ['/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.update(
                self._get_data_date(render_values.get("isDataCdc"), operation)
            )
    
            partner_ids = operation.acc_injection_ids.mapped("partner_id").sorted(
                key=lambda p: p.name
            )
            render_values.update(
                {
                    "partners": partner_ids,
                    "page_name": "prod",
                    "page_breadcrumbs": "Suivi production",
                    "scale": "month",
                }
            )
    
            return request.render(
                "oacc_portal_overview_cdc.operation_productor", render_values
            )
    
        @http.route(
            ["/chart/update_json"],
            type="json", auth="public", methods=["POST"], website=True, csrf=False,
        )
        def chart_update_json(
            self,
            operation_id,
            partner_id=None,
            prm_id=None,
            date_start=None,
            date_end=None,
            data_type=None,
            **kw,
        ):
            """
            This route is called :
                - When click on button period
                - When click on a consumer, a productor or a PRM
                - When click on date range
            """
            operation = request.env["acc.operation"].browse(operation_id)
            vals = operation.graph_view_global(
                date_start, date_end, partner_id, prm_id, data_type
            )
    
            return vals