From f85e76cdb2498f47c85c31537bc6463202d4145b Mon Sep 17 00:00:00 2001
From: Emanuel Buzey <buzeyemanuel@gmail.com>
Date: Tue, 12 Sep 2023 16:45:24 +0200
Subject: [PATCH] [FIX] Code Refactoring and Access Group Removed

---
 .../models/selfconsumption.py                 | 29 +++++++++----------
 .../security/ir.model.access.csv              |  2 --
 2 files changed, 14 insertions(+), 17 deletions(-)

diff --git a/energy_selfconsumption/models/selfconsumption.py b/energy_selfconsumption/models/selfconsumption.py
index a38906625..c21b00462 100644
--- a/energy_selfconsumption/models/selfconsumption.py
+++ b/energy_selfconsumption/models/selfconsumption.py
@@ -1,5 +1,6 @@
 import base64
 from datetime import datetime
+
 from odoo import _, fields, models
 from odoo.exceptions import ValidationError
 
@@ -20,26 +21,24 @@ class Selfconsumption(models.Model):
         for record in self:
             record.inscription_count = len(record.inscription_ids)
 
-    def get_tables_to_use(self):
-        """
-        Returns distribution tables in "process" or "active" state.
-        """
-        process_tables = self.distribution_table_ids.filtered(
-            lambda table: table.state == "process"
-        )
-        active_tables = self.distribution_table_ids.filtered(
-            lambda table: table.state == "active"
-        )
-        return process_tables or active_tables
-
     def _compute_report_distribution_table(self):
         """
         This compute field gets the distribution table needed to generate the reports.
         It prioritizes the table in process and then the active one. It can only be one of each.
         """
         for record in self:
-            tables_to_use = record.get_tables_to_use()
-            record.report_distribution_table = tables_to_use or False
+            table_in_process = record.distribution_table_ids.filtered_domain(
+                [("state", "=", "process")]
+            )
+            table_in_active = record.distribution_table_ids.filtered_domain(
+                [("state", "=", "active")]
+            )
+            if table_in_process:
+                record.report_distribution_table = table_in_process
+            elif table_in_active:
+                record.report_distribution_table = table_in_active
+            else:
+                record.report_distribution_table = False
 
     project_id = fields.Many2one(
         "energy_project.project", required=True, ondelete="cascade"
@@ -154,7 +153,7 @@ class Selfconsumption(models.Model):
         ).report_action(self)
 
     def action_manager_partition_coefficient_report(self):
-        tables_to_use = self.get_tables_to_use()
+        tables_to_use = self.report_distribution_table
         report_data = []
 
         for table in tables_to_use:
diff --git a/energy_selfconsumption/security/ir.model.access.csv b/energy_selfconsumption/security/ir.model.access.csv
index 2c6ebce77..96bb5295f 100644
--- a/energy_selfconsumption/security/ir.model.access.csv
+++ b/energy_selfconsumption/security/ir.model.access.csv
@@ -9,5 +9,3 @@ access_energy_selfconsumption_distribution_table_admin,energy_selfconsumption.di
 access_energy_selfconsumption_supply_point_assignation_admin,energy_selfconsumption.supply_point_assignation.admin,model_energy_selfconsumption_supply_point_assignation,energy_project.group_admin,1,1,1,1
 access_energy_selfconsumption_selfconsumption_import_wizard_admin,energy_selfconsumption.selfconsumption_import.wizard.admin,model_energy_selfconsumption_selfconsumption_import_wizard,energy_project.group_admin,1,1,1,1
 access_energy_selfconsumption_distribution_table_import_wizard_admin,energy_selfconsumption.distribution_table_import.wizard.admin,model_energy_selfconsumption_distribution_table_import_wizard,energy_project.group_admin,1,1,1,1
-access_energy_selfconsumption_report_wizard_user,energy_selfconsumption.report_wizard.user,model_energy_selfconsumption_report_wizard,energy_project.group_user,1,0,0,0
-access_energy_selfconsumption_report_wizard_admin,energy_selfconsumption.report_wizard.admin,model_energy_selfconsumption_report_wizard,energy_project.group_admin,1,1,1,1
-- 
GitLab