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'))]}"/>