From 078af4c4a2736daf9bd57aa32d45e26c5941ac09 Mon Sep 17 00:00:00 2001
From: Benjami <benjami94@gmail.com>
Date: Wed, 23 Aug 2023 07:30:30 +0200
Subject: [PATCH] =?UTF-8?q?Added=20button=20in=20crm=20to=20create=20compa?=
 =?UTF-8?q?ny=20=F0=9F=94=B2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 energy_communities/models/crm_lead.py       | 24 +++++++++++++++++++++
 energy_communities/views/crm_lead_views.xml | 22 +++++++++++++------
 2 files changed, 40 insertions(+), 6 deletions(-)

diff --git a/energy_communities/models/crm_lead.py b/energy_communities/models/crm_lead.py
index a0c8fd25b..c129fec6c 100644
--- a/energy_communities/models/crm_lead.py
+++ b/energy_communities/models/crm_lead.py
@@ -36,6 +36,15 @@ class CrmLead(models.Model):
         help="Community related to this Lead",
     )
 
+    finished = fields.Boolean(
+        related="stage_id.is_won",
+        readonly=True,
+    )
+    company_hierarchy_level = fields.Selection(
+        related="company_id.hierarchy_level",
+        readonly=True,
+    )
+
     def _create_map_place_proposal(self):
         if not self.env.user.company_id.coordinator:
             raise UserError(
@@ -345,6 +354,21 @@ class CrmLead(models.Model):
             "target": "new",
         }
 
+    def action_create_community(self):
+        default_company_vals = {
+            'default_{}'.format(field): value
+            for field, value in self._get_default_community_wizard().items()
+        }
+
+        return {
+            'type': 'ir.actions.act_window',
+            'name': 'Create community',
+            'res_model': 'account.multicompany.easy.creation.wiz',
+            'view_mode': 'form',
+            'target': 'new',
+            'context': default_company_vals,
+        }
+
 
 class CrmTags(models.Model):
     _inherit = "crm.tag"
diff --git a/energy_communities/views/crm_lead_views.xml b/energy_communities/views/crm_lead_views.xml
index b64bd39ba..b6b520b20 100644
--- a/energy_communities/views/crm_lead_views.xml
+++ b/energy_communities/views/crm_lead_views.xml
@@ -14,7 +14,7 @@
 		<field name="search_view_id" ref="crm.view_crm_case_opportunities_filter" />
 	</record>
 	-->
-	<record id="ce_crm_lead_view_form" model="ir.ui.view">
+    <record id="ce_crm_lead_view_form" model="ir.ui.view">
 		<field name="name">ce.crm.lead.view.form</field>
 		<field name="model">crm.lead</field>
 		<field name="inherit_id" ref="crm.crm_lead_view_form" />
@@ -22,11 +22,21 @@
 			<xpath expr="//sheet" position="before">
                 <header>
 					<button
-            name="action_assign_crm_to_coordinator_company"
-            type="object"
-            string="Assing CRM to coordinator company"
-            groups="energy_communities.group_platform_manager"
-          />
+						name="action_assign_crm_to_coordinator_company"
+						type="object"
+						string="Assing CRM to coordinator company"
+						groups="energy_communities.group_platform_manager"
+					/>
+                    <field name="source_id" invisible="1"/>
+                    <field name="finished" invisible="1"/>
+                    <field name="company_hierarchy_level" invisible="1"/>
+					<button
+						name="action_create_community"
+						type="object"
+						string="Create community"
+						groups="energy_communities.group_admin"
+                        attrs="{'invisible': ['|', '|', ('source_id', '!=', %(ce_source_creation_ce_proposal)d), ('finished', '=', False), ('company_hierarchy_level', '!=', 'coordinator')]}"
+                    />
 				</header>
 			</xpath>
 		</field>
-- 
GitLab