From ecf8fba52a33033ad2bd6b7749dc85d1002942d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20-=20Le=20Filament?= <remi@le-filament.com> Date: Tue, 28 Jan 2025 11:30:12 +0100 Subject: [PATCH] [FIX] search on priority group counter --- models/acc_operation.py | 10 ++++---- models/acc_priority_group.py | 2 -- models/acc_priority_group_counter.py | 11 ++++++++- models/acc_repartition_counter.py | 5 ++-- security/security.xml | 20 ++++++++-------- static/src/js/kanban_button.js | 36 +++++++++++++++------------- 6 files changed, 45 insertions(+), 39 deletions(-) diff --git a/models/acc_operation.py b/models/acc_operation.py index abe04d0..b10c25b 100644 --- a/models/acc_operation.py +++ b/models/acc_operation.py @@ -361,20 +361,18 @@ class AccOperation(models.Model): res = [ datetime.strptime(d, "%d-%m-%y") for d in list( - OrderedDict.fromkeys( - [h.strftime("%d-%m-%y") for h in date_list] - ) + OrderedDict.fromkeys([h.strftime("%d-%m-%y") for h in date_list]) ) ] - for date in res: - counter_period[date] = ( + for date_item in res: + counter_period[date_item] = ( self.env["acc.counter.period"] ._get_periods_from_date( [ ("acc_operation_id", "=", self.id), ("prm_type", "=", "delivery"), ], - date, + date_item, ) .mapped("acc_counter_id.name") ) diff --git a/models/acc_priority_group.py b/models/acc_priority_group.py index 6b1b996..2da6651 100644 --- a/models/acc_priority_group.py +++ b/models/acc_priority_group.py @@ -49,7 +49,6 @@ class AccPriorityGroup(models.Model): for prio_group in self: prio_group.display_name = f"Priorité {str(prio_group.sequence)}" - def _compute_counter_datas(self): for priority in self: priority.counter_datas = ( @@ -77,7 +76,6 @@ class AccPriorityGroup(models.Model): return res - @api.model def unlink(self, _id): self = self.env["acc.priority.group"].browse(_id) diff --git a/models/acc_priority_group_counter.py b/models/acc_priority_group_counter.py index c278219..3df09d7 100644 --- a/models/acc_priority_group_counter.py +++ b/models/acc_priority_group_counter.py @@ -98,4 +98,13 @@ class AccPriorityGroupCounter(models.Model): # ------------------------------------------------------ def _group_expand_acc_priority_group_id(self, groups, domain, order): - return self.env["acc.priority.group"].search(domain=domain, order=order) + operation_id = self.env.context.get("default_acc_operation_id") + if not operation_id: + group_ids = self.env["acc.priority.group"].search( + domain=[], order="sequence, id" + ) + else: + group_ids = self.env["acc.priority.group"].search( + domain=[("acc_operation_id", "=", operation_id)], order="sequence, id" + ) + return group_ids diff --git a/models/acc_repartition_counter.py b/models/acc_repartition_counter.py index 7a7e9db..a6d0700 100644 --- a/models/acc_repartition_counter.py +++ b/models/acc_repartition_counter.py @@ -9,9 +9,7 @@ class AccRepartitionCounter(models.Model): acc_repartition_id = fields.Many2one("acc.repartition.keys", "Clé", required=True) weight = fields.Float(string="Répartition en pourcentage", required=False) time_slot = fields.Datetime("Horodatage de la clé", required=True) - acc_counter_id = fields.Many2one( - "acc.counter", string="Compteur", required=True - ) + acc_counter_id = fields.Many2one("acc.counter", string="Compteur", required=True) acc_operation_id = fields.Many2one( comodel_name="acc.operation", compute="_compute_operation_id", store=True ) @@ -27,6 +25,7 @@ class AccRepartitionCounter(models.Model): """ ) + # ------------------------------------------------------ # SQL Constraints # ------------------------------------------------------ diff --git a/security/security.xml b/security/security.xml index 57a539b..8a917fa 100644 --- a/security/security.xml +++ b/security/security.xml @@ -7,8 +7,8 @@ <field name="name">Groupes de priorité</field> <field ref="model_acc_priority_group" name="model_id" /> <field - name="domain_force" - >[('acc_operation_id', 'in', list(user.commercial_partner_id.acc_operation_admin_ids.ids))]</field> + name="domain_force" + >[('acc_operation_id', 'in', list(user.commercial_partner_id.acc_operation_admin_ids.ids))]</field> <field name="groups" eval="[(4, ref('oacc.group_operation_admin'))]" /> </record> @@ -23,8 +23,8 @@ <field name="name">Compteur pour repartition</field> <field ref="model_acc_priority_group_counter" name="model_id" /> <field - name="domain_force" - >[('acc_operation_id', 'in', list(user.commercial_partner_id.acc_operation_admin_ids.ids))]</field> + name="domain_force" + >[('acc_operation_id', 'in', list(user.commercial_partner_id.acc_operation_admin_ids.ids))]</field> <field name="groups" eval="[(4, ref('oacc.group_operation_admin'))]" /> </record> @@ -39,8 +39,8 @@ <field name="name">Clés de repartition par compteur</field> <field ref="model_acc_repartition_counter" name="model_id" /> <field - name="domain_force" - >[('acc_operation_id', 'in', list(user.commercial_partner_id.acc_operation_admin_ids.ids))]</field> + name="domain_force" + >[('acc_operation_id', 'in', list(user.commercial_partner_id.acc_operation_admin_ids.ids))]</field> <field name="groups" eval="[(4, ref('oacc.group_operation_admin'))]" /> </record> @@ -55,8 +55,8 @@ <field name="name">Ensemble des clés par operation</field> <field ref="model_acc_repartition_keys" name="model_id" /> <field - name="domain_force" - >[('operation_id', 'in', list(user.commercial_partner_id.acc_operation_admin_ids.ids))]</field> + name="domain_force" + >[('operation_id', 'in', list(user.commercial_partner_id.acc_operation_admin_ids.ids))]</field> <field name="groups" eval="[(4, ref('oacc.group_operation_admin'))]" /> </record> @@ -71,8 +71,8 @@ <field name="name">Fichier de clés de repartition</field> <field ref="model_acc_repartition_keys_file" name="model_id" /> <field - name="domain_force" - >[('operation_id', 'in', list(user.commercial_partner_id.acc_operation_admin_ids.ids))]</field> + name="domain_force" + >[('operation_id', 'in', list(user.commercial_partner_id.acc_operation_admin_ids.ids))]</field> <field name="groups" eval="[(4, ref('oacc.group_operation_admin'))]" /> </record> diff --git a/static/src/js/kanban_button.js b/static/src/js/kanban_button.js index cd3cf80..298414f 100644 --- a/static/src/js/kanban_button.js +++ b/static/src/js/kanban_button.js @@ -9,23 +9,25 @@ export class PriorityGroupKanbanController extends KanbanController { async CreatePriorityGroupClick() { self = this; - this.actionService.doAction({ - type: "ir.actions.act_window", - res_model: "acc.priority.group", - name: "Creer un groupe de priorité", - view_mode: "form", - view_type: "form", - views: [[false, "form"]], - target: "new", - res_id: false, - context: this.props.context || {}, - }, - { - onClose: async () => { - await self.model.root.load(); - self.render(true); - } - }); + this.actionService.doAction( + { + type: "ir.actions.act_window", + res_model: "acc.priority.group", + name: "Creer un groupe de priorité", + view_mode: "form", + view_type: "form", + views: [[false, "form"]], + target: "new", + res_id: false, + context: this.props.context || {}, + }, + { + onClose: async () => { + await self.model.root.load(); + self.render(true); + }, + } + ); } } -- GitLab