From c3ee525bd08f87b0ae6ef9b6eb65e3cc58ab6474 Mon Sep 17 00:00:00 2001
From: jordan <jordan@le-filament.com>
Date: Tue, 2 Nov 2021 12:13:36 +0100
Subject: [PATCH] [update] ur_id can only be changed in period

---
 models/res_partner.py          |  1 +
 models/scop_period.py          |  4 +++-
 views/res_partner.xml          |  3 ++-
 views/scop_period_views.xml    |  1 +
 wizard/scop_address_wizard.py  | 14 ++++++++++++--
 wizard/scop_address_wizard.xml |  1 +
 wizard/scop_period_wizard.py   |  1 -
 wizard/scop_period_wizard.xml  |  2 +-
 8 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/models/res_partner.py b/models/res_partner.py
index fbb3047..3125436 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -601,6 +601,7 @@ class ScopPartner(models.Model):
             'state_id': partner.state_id.id,
             'country_id': partner.country_id.id,
             'naf_id': partner.naf_id.id,
+            'ur_id': partner.ur_id.id,
             'cae': partner.cae
         })
         partner.scop_period_ids = new_period
diff --git a/models/scop_period.py b/models/scop_period.py
index 107299e..65043dd 100644
--- a/models/scop_period.py
+++ b/models/scop_period.py
@@ -59,6 +59,9 @@ class ScopPeriod(models.Model):
         'res.partner.naf',
         string='Code NAF',
         on_delete='restrict')
+    ur_id = fields.Many2one(
+        comodel_name='union.regionale',
+        string='Union Régionale')
     cae = fields.Boolean("CAE")
     dissolution_reason_id = fields.Many2one(
         'res.partner.dissolution.reason',
@@ -70,7 +73,6 @@ class ScopPeriod(models.Model):
         related='partner_id.member_number',
         store=False)
 
-
     # ------------------------------------------------------
     # Override ORM
     # ------------------------------------------------------
diff --git a/views/res_partner.xml b/views/res_partner.xml
index a6ab780..580588b 100644
--- a/views/res_partner.xml
+++ b/views/res_partner.xml
@@ -399,7 +399,7 @@
                             <field name="id_riga" groups="cgscop_partner.group_cg_administrator"/>
                         </group>
                         <group string="Suivi UR">
-                            <field name="ur_id" required="True" options="{'no_open': True, 'no_create': True}"/>
+                            <field name="ur_id" readonly="1" options="{'no_open': True, 'no_create': True}"/>
                             <field name="creation_delegate_id"
                                    attrs="{'required':[('project_status','in',('3_accompagnement','4_adhesion', '5_cg'))], 'invisible':[('project_status', 'in', '6_suivi')]}" options="{'no_open': True, 'no_create': True}" domain="[('ur_id', '=', ur_id)]"/>
                             <field name="followup_delegate_id" options="{'no_open': True, 'no_create': True}" domain="[('active', '=', True),('ur_id', '=', ur_id)]" attrs="{'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic', '3_accompagnement'))]}"/>
@@ -656,6 +656,7 @@
                                 <field name="state_id" invisible="1"/>
                                 <field name="country_id" invisible="1"/>
                                 <field name="naf_id"/>
+                                <field name="ur_id"/>
                                 <field name="cae"/>
                             </tree>
                         </field>
diff --git a/views/scop_period_views.xml b/views/scop_period_views.xml
index 28c1184..d6712ae 100644
--- a/views/scop_period_views.xml
+++ b/views/scop_period_views.xml
@@ -44,6 +44,7 @@
                     <field name="state_id" invisible="1"/>
                     <field name="country_id" invisible="1"/>
                     <field name="naf_id" options="{'no_open': True, 'no_create': True}"/>
+                    <field name="ur_id" options="{'no_open': True, 'no_create': True}"/>
                     <field name="cae"/>
                 </tree>
             </field>
diff --git a/wizard/scop_address_wizard.py b/wizard/scop_address_wizard.py
index 60ae4f4..8fa6b75 100644
--- a/wizard/scop_address_wizard.py
+++ b/wizard/scop_address_wizard.py
@@ -96,6 +96,11 @@ class ScopPeriodWizard(models.TransientModel):
         return self.env['res.partner'].browse(
             self.env.context.get('active_id')).cae
 
+    @api.model
+    def _default_ur_id(self):
+        return self.env['res.partner'].browse(
+            self.env.context.get('active_id')).ur_id
+
     # Fields common
     partner_id = fields.Integer('Partner', default=_default_partner_id)
 
@@ -151,7 +156,10 @@ class ScopPeriodWizard(models.TransientModel):
         string='Code NAF',
         on_delete='restrict', default=_default_naf_id)
     cae = fields.Boolean("CAE", default=_default_cae)
-
+    ur_id = fields.Many2one(
+        comodel_name='union.regionale',
+        string='Union Régionale',
+        default=_default_ur_id)
 
     # Action
     @api.onchange('zip_id')
@@ -228,7 +236,8 @@ class ScopPeriodWizard(models.TransientModel):
                 'state_id': period.state_id.id,
                 'country_id': period.country_id.id,
                 'naf_id': period.naf_id.id,
-                'cae': period.cae
+                'cae': period.cae,
+                'ur_id': period.ur_id.id,
             }
             period_values.update(values)
             self.env['scop.period'].sudo().create(period_values)
@@ -245,5 +254,6 @@ class ScopPeriodWizard(models.TransientModel):
                 'cedex': period.cedex,
                 'state_id': period.state_id.id,
                 'country_id': period.country_id.id,
+                'ur_id': period.ur_id.id,
             })
             partner.write(partner_values)
diff --git a/wizard/scop_address_wizard.xml b/wizard/scop_address_wizard.xml
index a27f4d6..a95d9f2 100644
--- a/wizard/scop_address_wizard.xml
+++ b/wizard/scop_address_wizard.xml
@@ -30,6 +30,7 @@
                             <field name="cedex" placeholder="Cedex" class="o_address_city"/>
                             <field name="state_id" placeholder="État" invisible="1"/>
                             <field name="country_id" placeholder="Pays" invisible="1"/>
+                            <field name="ur_id" required="1" options="{'no_open': True, 'no_create': True}"/>
                         </div>
                     </group>
                 </group>
diff --git a/wizard/scop_period_wizard.py b/wizard/scop_period_wizard.py
index d3ee865..cc71115 100644
--- a/wizard/scop_period_wizard.py
+++ b/wizard/scop_period_wizard.py
@@ -161,7 +161,6 @@ class ScopPeriodWizard(models.TransientModel):
         string='Union Régionale',
         default=_default_ur_id)
 
-
     # Action
     @api.onchange('zip_id')
     def _onchange_zip_id(self):
diff --git a/wizard/scop_period_wizard.xml b/wizard/scop_period_wizard.xml
index 8907029..ec98893 100644
--- a/wizard/scop_period_wizard.xml
+++ b/wizard/scop_period_wizard.xml
@@ -30,7 +30,7 @@
                             <field name="cedex" placeholder="Cedex" class="o_address_city"/>
                             <field name="state_id" placeholder="État" invisible="1"/>
                             <field name="country_id" placeholder="Pays" invisible="1"/>
-                            <field name="ur_id" required="1"/>
+                            <field name="ur_id" required="1" options="{'no_open': True, 'no_create': True}"/>
                         </div>
                     </group>
                     <group>
-- 
GitLab