diff --git a/__manifest__.py b/__manifest__.py
index f0d9ee57e058f5bb96c4970bef7caf7f3edf7470..4c4ccecbf49936540fd26e5238705d11b43816a8 100644
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -14,6 +14,7 @@
"partner_address_street3",
"partner_company_type",
"partner_firstname",
+ "phone_validation",
],
"data": [
"security/security_rules.xml",
diff --git a/models/res_partner.py b/models/res_partner.py
index 7d42a2541b55e00e61454fed722c535b3f9f4a48..1dc2651cb4a1717f2a532e72a46d92ad6384d04a 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -150,7 +150,9 @@ class ScopPartner(models.Model):
string='Agrément', on_delete='restrict')
siret = fields.Char(string='SIRET', size=14, index=True,
track_visibility='onchange')
- siren = fields.Char(string='SIREN', size=9, compute='_compute_siren')
+ formatted_siret = fields.Char(string='SIRET formaté',
+ compute='_compute_from_siret')
+ siren = fields.Char(string='SIREN', size=9, compute='_compute_from_siret')
capital = fields.Integer("Capital (en €)")
first_closeout = fields.Date(
'1er bilan en coop')
@@ -171,8 +173,7 @@ class ScopPartner(models.Model):
track_visibility='onchange')
is_seed_scop = fields.Boolean("Est une SCOP d'amorçage")
seed_end = fields.Date("Date de fin du dispositif d'amorçage",
- default=str(datetime.today() + timedelta(2556)),
- compute='_compute_seed_end')
+ default=str(datetime.today() + timedelta(2556)))
is_incubated = fields.Boolean("Est incubé")
incubator_id = fields.Many2one(
'res.partner',
@@ -455,20 +456,15 @@ class ScopPartner(models.Model):
partner.message_subscribe(partner_ids=partners_to_subscribe)
return partners
-
- @api.model
- def _compute_siren(self):
+ @api.depends('siret')
+ def _compute_from_siret(self):
for company in self:
if company.siret:
company.siren = company.siret[:9]
-
- @api.model
- def _compute_seed_end(self):
- for company in self:
- if company.date_1st_sign:
- company.seed_end = company.date_1st_sign + timedelta(2556)
- else:
- company.seed_end = str(datetime.today() + timedelta(2556))
+ company.formatted_siret = (company.siret[:3] + " " +
+ company.siret[3:6] + " " +
+ company.siret[6:9] + " " +
+ company.siret[9:])
@api.model
def _compute_current_user_ur_id(self):
diff --git a/views/res_partner_cooperative.xml b/views/res_partner_cooperative.xml
index 58edf7cb2473af7b1b72d4e36363fd62ee733698..0faf40e5af611212b1320af2ba0278df80fc10bc 100644
--- a/views/res_partner_cooperative.xml
+++ b/views/res_partner_cooperative.xml
@@ -155,11 +155,11 @@
<div class="oe_bloc_cgscop">
<div class="o_row d-flex">
<h3>
- <field class="o_field_header" name="cooperative_form_id" attrs="{'readonly': [('write_date', '!=', False), ('project_status', '=', '6_suivi')], 'required':[('project_status','in',('2_pre-diagnostic', '3_accompagnement','4_adhesion', '5_cg', '6_suivi'))]}" options="{'no_open': True, 'no_create': True}" placeholder="Forme Coopérative"/>
+ <field class="o_field_header" name="cooperative_form_id" attrs="{'readonly': [('write_date', '!=', False), ('project_status', '=', '6_suivi')], 'required':['|', ('project_status','in',('2_pre-diagnostic', '3_accompagnement','4_adhesion', '5_cg')), '&', ('write_date', '=', False), ('project_status', '=', '6_suivi')]}" options="{'no_open': True, 'no_create': True}" placeholder="Forme Coopérative"/>
</h3>
<span> </span>
<h3>
- <field options="{'no_open': True, 'no_create': True}" name="partner_company_type_id" attrs="{'readonly': [('write_date', '!=', False), ('project_status', '=', '6_suivi')], 'required':[('project_status','in',('4_adhesion', '5_cg', '6_suivi'))]}" placeholder="Statut Juridique"/>
+ <field options="{'no_open': True, 'no_create': True}" name="partner_company_type_id" attrs="{'readonly': [('write_date', '!=', False), ('project_status', '=', '6_suivi')], 'required':['|', ('project_status','in',('4_adhesion', '5_cg')), '&', ('write_date', '=', False), ('project_status', '=', '6_suivi')]}" placeholder="Statut Juridique"/>
</h3>
</div>
<div class="o_row d-flex ">
@@ -185,16 +185,16 @@
<field name="sigle"/>
<label for='street' string="Adresse Administrative"/>
<div class="o_address_format">
- <field name="street" placeholder="Rue..." class="o_address_street" attrs="{'readonly': [('write_date', '!=', False), ('project_status', '=', '6_suivi')], 'required':[('project_status','in',('4_adhesion', '5_cg', '6_suivi'))]}"/>
+ <field name="street" placeholder="Rue..." class="o_address_street" attrs="{'readonly': [('write_date', '!=', False), ('project_status', '=', '6_suivi')], 'required':['|', ('project_status','in',('4_adhesion', '5_cg')), '&', ('write_date', '=', False), ('project_status', '=', '6_suivi')]}"/>
<field name="street2" placeholder="Rue 2..." class="o_address_street" attrs="{'readonly': [('write_date', '!=', False), ('project_status', '=', '6_suivi')]}"/>
<field name="street3" placeholder="Rue 3..." class="o_address_street" attrs="{'readonly': [('write_date', '!=', False), ('project_status', '=', '6_suivi')]}"/>
<field name="zip_id"
options="{'create_name_field': 'city', 'no_open': True, 'no_create': True}"
placeholder="CP / Ville autocomplétion..."
class="oe_edit_only" attrs="{'readonly': [('write_date', '!=', False), ('project_status', '=', '6_suivi')]}"/>
- <field name="zip" placeholder="CP..." class="o_address_city" attrs="{'readonly': [('write_date', '!=', False), ('project_status', '=', '6_suivi')], 'required':[('project_status','in',('4_adhesion', '5_cg', '6_suivi'))]}"/>
+ <field name="zip" placeholder="CP..." class="o_address_city" attrs="{'readonly': [('write_date', '!=', False), ('project_status', '=', '6_suivi')], 'required':['|', ('project_status','in',('4_adhesion', '5_cg')), '&', ('write_date', '=', False), ('project_status', '=', '6_suivi')]}"/>
<field name="city" placeholder="Ville..." class="o_address_city"
- attrs="{'readonly': [('write_date', '!=', False), ('project_status', '=', '6_suivi')]}" modifiers="{'readonly':[['project_status', '=', '6_suivi']], 'required':[('project_status','in',('4_adhesion', '5_cg', '6_suivi'))]}"/>
+ attrs="{'readonly': [('write_date', '!=', False), ('project_status', '=', '6_suivi')]}" modifiers="{'readonly':[['project_status', '=', '6_suivi']], 'required':['|', ('project_status','in',('4_adhesion', '5_cg')), '&', ('write_date', '=', False), ('project_status', '=', '6_suivi')]}"/>
<field name="city_id" invisible="1"/>
<field name="cedex" placeholder="Cedex" class="o_address_city"
attrs="{'readonly': [('write_date', '!=', False), ('project_status', '=', '6_suivi')]}" modifiers="{'readonly':[['project_status', '=', '6_suivi']]}"/>
@@ -244,9 +244,10 @@
<field name="date_1st_sign"/>
<field name="registration_date"/>
<field name="social_object" attrs="{'required':[('project_status','in',('2_pre-diagnostic', '3_accompagnement','4_adhesion', '5_cg', '6_suivi'))]}"/>
- <field name="naf_id" attrs="{'readonly': [('write_date', '!=', False), ('project_status', '=', '6_suivi')], 'required':[('project_status','in',('4_adhesion', '5_cg', '6_suivi'))]}" options="{'no_open': True, 'no_create': True}"/>
+ <field name="naf_id" attrs="{'readonly': [('write_date', '!=', False), ('project_status', '=', '6_suivi')], 'required':['|', ('project_status','in',('4_adhesion', '5_cg'), '&', ('write_date', '=', False), ('project_status', '=', '6_suivi'))]}" options="{'no_open': True, 'no_create': True}"/>
<field name="certification_ids" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}"/>
- <field name="siret" attrs="{'readonly': [('write_date', '!=', False), ('project_status', '=', '6_suivi')], 'required':[('project_status','in',('4_adhesion', '5_cg', '6_suivi'))]}"/>
+ <field name="siret" class="oe_edit_only" attrs="{'readonly': [('write_date', '!=', False), ('project_status', '=', '6_suivi')], 'required':['|', ('project_status','in',('4_adhesion', '5_cg')), '&', ('write_date', '=', False), ('project_status', '=', '6_suivi')]}"/>
+ <field name="formatted_siret" string="SIRET" class="oe_read_only"/>
<field name="siren" readonly="1"/>
<field name="capital" attrs="{'required':[('project_status','in',('4_adhesion', '5_cg', '6_suivi'))]}" widget="monetary"/>
<field name="first_closeout" attrs="{'required':[('project_status','in',('4_adhesion', '5_cg', '6_suivi'))]}"/>