From cd6b78f54de59c95d9e92626fd4ad4e946b8738f Mon Sep 17 00:00:00 2001
From: Benjami <benjami94@gmail.com>
Date: Fri, 16 Jun 2023 09:15:59 +0200
Subject: [PATCH] Fix relation assignment between users and companies

---
 energy_communities/models/res_company.py | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/energy_communities/models/res_company.py b/energy_communities/models/res_company.py
index 0c73aae4e..b8c9c9e2d 100644
--- a/energy_communities/models/res_company.py
+++ b/energy_communities/models/res_company.py
@@ -167,16 +167,16 @@ class ResCompany(models.Model):
         return admins
 
     def add_ce_admin(self, user):
-        if self.hierarchy_level != COMMUNITY_HIERARCHY:
+        if self.hierarchy_level != 'community':
             raise UserError(_("Only a CE can have CE admins"))
 
-        role = self.env["res.users.role"].sudo().search([{
+        role = self.env["res.users.role"].sudo().search([(
             "code", "=", "role_ce_admin"
-        }])
+        )])
         current_role = self.env["res.users.role.line"].sudo().search([
             ("user_id", "=", user.id),
             ("active", "=", True),
-            ("allowed_company_ids", "=", self.id)  # It's M2M, = is okey?
+            ("company_id", "=", self.id)  # It's M2M, = is okey?
         ])
         if current_role and len(current_role) > 1:
             raise UserError(_("Error: This user have multiple roles for this company"))
@@ -188,15 +188,15 @@ class ResCompany(models.Model):
         if current_role:
                 current_role.write({"role_id": role})
         else:
+            user = self.env["res.users"].sudo().browse(user.id)
+            user.write({
+                "company_ids": [(4, self.id)]
+            })
             self.env["res.users.role.line"].sudo().create({
                 "user_id": user.id,
                 "active": True,
-                "role_id": role,
-                "community_ids": (6, 0, self.id),
-            })
-            user = self.env["res.users"].sudo().browse(user.id)
-            user.write({
-                "community_ids": (6, 0, self.id)
+                "role_id": role.id,
+                "company_id": self.id,
             })
 
     def get_ce_members(self, domain_key="in_kc_and_active"):
-- 
GitLab