From 0f95c54849221915733e5f7bcb7a93daada110bd Mon Sep 17 00:00:00 2001 From: benjamin <benjamin@le-filament.com> Date: Wed, 10 Aug 2022 17:43:00 +0200 Subject: [PATCH] [add] current_ur_id in user context --- models/ir_http.py | 3 +++ models/res_partner.py | 14 ++++++++------ static/src/js/abstract_web_client.js | 21 +++++++++++++++++++++ views/assets.xml | 4 ++++ 4 files changed, 36 insertions(+), 6 deletions(-) create mode 100644 static/src/js/abstract_web_client.js diff --git a/models/ir_http.py b/models/ir_http.py index 3e277a4..3330290 100644 --- a/models/ir_http.py +++ b/models/ir_http.py @@ -14,4 +14,7 @@ class IrHttp(models.AbstractModel): result = super(IrHttp, self).session_info() user = self.env.user result["ur_id"] = user.company_id.ur_id.id + result["ur_company"] = dict( + user.company_ids.mapped(lambda c: (c.id, c.ur_id.id)) + ) return result diff --git a/models/res_partner.py b/models/res_partner.py index 50908b5..8673747 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -1420,11 +1420,13 @@ class ScopPartner(models.Model): def _cron_geoloc_data_gouv(self, days=1): # Récupération des valeurs de suivi sur zip/city/street de la veille yesterday = fields.Date.today() - timedelta(days=days) - partner_model = self.env["ir.model"].search([("model", '=', "res.partner")]) - address_values = self.env["ir.model.fields"].search([ - ("model_id", "=", partner_model.id), - ("name", "in", ["street", "street2", "zip", "city"]) - ]) + partner_model = self.env["ir.model"].search([("model", "=", "res.partner")]) + address_values = self.env["ir.model.fields"].search( + [ + ("model_id", "=", partner_model.id), + ("name", "in", ["street", "street2", "zip", "city"]), + ] + ) mail_tracking_value_ids = self.env["mail.tracking.value"].search( [ ("field", "in", address_values.ids), @@ -1452,7 +1454,7 @@ class ScopPartner(models.Model): ("id", "in", partner_list), ("partner_latitude", "=", 0.0), ("partner_latitude", "=", False), - ("membership_status", "=", "member") + ("membership_status", "=", "member"), ] ) diff --git a/static/src/js/abstract_web_client.js b/static/src/js/abstract_web_client.js new file mode 100644 index 0000000..e015a48 --- /dev/null +++ b/static/src/js/abstract_web_client.js @@ -0,0 +1,21 @@ +odoo.define("cgscop_partner.AbstractWebClient", function (require) { + "use strict"; + + var AbstractWebClient = require("web.AbstractWebClient"); + var session = require("web.session"); + + AbstractWebClient.include({ + /** + * @override + * Ajoute l'UR courante dans le contexte utilisateur + */ + start: function () { + var parent = this._super.apply(this, arguments); + const companyID = session.user_context.allowed_company_ids[0]; + session.user_context.current_ur_id = session.ur_company[companyID] + ? session.ur_company[companyID] + : session.ur_id; + return parent; + }, + }); +}); diff --git a/views/assets.xml b/views/assets.xml index 0d90d66..16c3cad 100644 --- a/views/assets.xml +++ b/views/assets.xml @@ -22,6 +22,10 @@ type="text/javascript" src="/cgscop_partner/static/src/js/relational_fields.js" /> + <script + type="text/javascript" + src="/cgscop_partner/static/src/js/abstract_web_client.js" + /> </xpath> </template> -- GitLab