diff --git a/__manifest__.py b/__manifest__.py index d48ebdb3d9c59eb6dc1c56e72a861d413940dcf3..a68ef4299f353a60bd8edff2fc1717fe805e43c9 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -23,6 +23,7 @@ "views/res_partner_cooperative.xml", "views/scop_config_views.xml", "views/scop_config_lists_views.xml", + "datas/res.country.csv", "datas/res.partner.certification.csv", "datas/res.partner.company.type.csv", "datas/res.partner.cooperative.form.csv", diff --git a/datas/res.country.csv b/datas/res.country.csv new file mode 100644 index 0000000000000000000000000000000000000000..c1c956d7c70ae29237135ec48a93a67807e86008 --- /dev/null +++ b/datas/res.country.csv @@ -0,0 +1,2 @@ +id,address_view_id:id +base.fr,view_partner_address_french diff --git a/models/scop_period.py b/models/scop_period.py index b2913398f6d701b8625c8dc9172c9aa9b1edc03e..4d297be2c90d5e42083b1d8c19ca51d6c7528188 100644 --- a/models/scop_period.py +++ b/models/scop_period.py @@ -44,7 +44,6 @@ class ScopPeriod(models.Model): zip = fields.Char() zip_id = fields.Many2one('res.city.zip', 'ZIP Location') city = fields.Char() - city_id = fields.Many2one('res.city', string='City of Address') state_id = fields.Many2one( "res.country.state", string='State', diff --git a/views/res_partner.xml b/views/res_partner.xml index 85179513bdfb3e65d6bd5ad75a0337c318a72189..3696420e94eaa8871bf80d0a4d27d10bd35486ff 100644 --- a/views/res_partner.xml +++ b/views/res_partner.xml @@ -4,6 +4,49 @@ <odoo> <data> + <record id="view_partner_address_french" model="ir.ui.view"> + <field name="name">french.address</field> + <field name="model">res.partner</field> + <field name="arch" type="xml"> + <div class="o_address_format" modifiers="{}"> + <field name="type" invisible="1" modifiers="{'invisible':true}"/> + <field name="is_cooperative" invisible="1" modifiers="{'invisible':true}"/> + <field name="city_id" invisible="1" modifiers="{'invisible':true}"/> + <div attrs="{'invisible': ['|', ('parent_id', '=', False), ('type', '!=', 'contact')]}" class="oe_edit_only" modifiers="{'invisible':['|',['parent_id','=',false],['type','!=','contact']]}"> + <b modifiers="{}"> + Adresse de la société: + </b> + </div> + <field name="street" placeholder="Rue..." class="o_address_street" attrs="{'readonly': ['|', '&', ('type', '=', 'contact'), ('parent_id', '!=', False), ('is_cooperative','=',True)]}" + modifiers="{'readonly':['|','&',['type','=','contact'],['parent_id','!=',false],['is_cooperative','=',True]]}"/> + <field name="street2" placeholder="Rue 2..." class="o_address_street" attrs="{'readonly': ['|', '&', ('type', '=', 'contact'), ('parent_id', '!=', False), ('is_cooperative','=',True)]}" + modifiers="{'readonly':['|','&',['type','=','contact'],['parent_id','!=',false],['is_cooperative','=',True]]}"/> + <field name="street3" placeholder="Rue 3..." class="o_address_street" attrs="{'readonly': ['|', '&', ('type', '=', 'contact'), ('parent_id', '!=', False), ('is_cooperative','=',True)]}" + modifiers="{'readonly':['|','&',['type','=','contact'],['parent_id','!=',false],['is_cooperative','=',True]]}"/> + <field name="zip_id" options="{'create_name_field': 'city', 'no_open': True, 'no_create': True}" placeholder="Location completion" class="oe_edit_only" + attrs="{'readonly': ['|', '&', ('type', '=', 'contact'), ('parent_id', '!=', False), ('is_cooperative','=',True)]}" + on_change="1" can_create="true" can_write="true" + modifiers="{'readonly':['|','&',['type','=','contact'],['parent_id','!=',false],['is_cooperative','=',True]]}"/> + <field name="parent_id" invisible="1" on_change="1" can_create="true" can_write="true" modifiers="{'invisible':true}"/> + <field name="zip" placeholder="Code postal" class="o_address_city" + attrs="{'readonly': ['|', '&', ('type', '=', 'contact'), ('parent_id', '!=', False), ('is_cooperative','=',True)]}" on_change="1" + modifiers="{'readonly':['|','&',['type','=','contact'],['parent_id','!=',false],['is_cooperative','=',True]]}"/> + <field name="city" placeholder="Ville" class="o_address_city" + attrs="{'readonly': ['|', '&', ('type', '=', 'contact'), ('parent_id', '!=', False), ('is_cooperative','=',True)]}" + modifiers="{'readonly':['|','&',['type','=','contact'],['parent_id','!=',false],['is_cooperative','=',True]]}"/> + <field name="state_id" class="o_address_zip" placeholder="État" options="{'no_open': True}" + attrs="{'readonly': ['|', '&', ('type', '=', 'contact'), ('parent_id', '!=', False), ('is_cooperative','=',True)]}" + context="{'country_id': country_id, 'zip': zip}" + on_change="1" can_create="true" can_write="true" + modifiers="{'readonly':['|','&',['type','=','contact'],['parent_id','!=',false],['is_cooperative','=',True]]}"/> + <field name="country_id" placeholder="Pays" class="o_address_country" options="{'no_open': True, 'no_create': True}" + attrs="{'readonly': ['|', '&', ('type', '=', 'contact'), ('parent_id', '!=', False), ('is_cooperative','=',True)]}" + on_change="1" can_create="true" can_write="true" + modifiers="{'readonly':['|','&',['type','=','contact'],['parent_id','!=',false],['is_cooperative','=',True]]}"/> + </div> + </field> + </record> + <record id="scop_contact_view_form" model="ir.ui.view"> <field name="name">add scop fields in form view</field> <field name="model">res.partner</field> diff --git a/views/res_partner_cooperative.xml b/views/res_partner_cooperative.xml index 05f926b9ae78ffb2ccd489b819c647c3a2c2c1c9..f7efc3fe3ad14921fed841efc644401c7d376999 100644 --- a/views/res_partner_cooperative.xml +++ b/views/res_partner_cooperative.xml @@ -123,29 +123,32 @@ </div> <group string="Informations Générales" col="3"> <group string="Contact"> - <field name="country_enforce_cities" invisible="1" modifiers="{'readonly':true, 'invisible':true}"/> <label for='street' string="Adresse Administrative"/> - <div class="o_address_format" modifiers="{}"> - <field name="street" readonly="True" class="o_address_street"/> - <field name="street2" readonly="True" class="o_address_street"/> - <field name="street3" readonly="True" class="o_address_street"/> - <field name="zip_id" readonly="True" class="o_address_city"/> - <field name="zip" readonly="True" class="o_address_city"/> - <field name="city" readonly="True" attrs="{'invisible': [('country_enforce_cities', '=', True), ('city_id', '!=', False)]}" class="o_address_zip"/> - <field name="city_id" string="Ville" readonly="True" attrs="{'invisible': [('country_enforce_cities', '=', False)]}" /> - <field name="state_id" invisible="True" class="o_address_state" /> - <field name="country_id" readonly="True" class="o_address_country"/> + <div class="o_address_format oe_read_only" modifiers="{}"> + <field name="street" placeholder="Rue..." class="o_address_street"/> + <field name="street2" placeholder="Rue 2..." class="o_address_street"/> + <field name="street3" placeholder="Rue 3..." class="o_address_street"/> + <field name="zip_id" + options="{'create_name_field': 'city', 'no_open': True, 'no_create': True}" + placeholder="City completion" + class="oe_edit_only"/> + <field name="zip" placeholder="ZIP" class="o_address_zip"/> + <field name="city" placeholder="Ville" class="o_address_city" + attrs="{'readonly': [('type', '=', 'contact'), ('parent_id', '!=', False)]}" modifiers="{'readonly':[['type','=','contact'],['parent_id','!=',false]]}"/> + <field name="state_id" class="o_address_state" placeholder="State" + options='{"no_open": True}' context="{'country_id': country_id, 'zip': zip}"/> + <field name="country_id" placeholder="Country" class="o_address_country" options='{"no_open": True, "no_create": True}'/> </div> <field name="phone" widget="phone" string="Téléphone 1"/> <field name="mobile" widget="phone" string="Téléphone 2"/> <field name="admin_email" widget="email" string="E-mail administratif"/> <field name="email" widget="email" string="E-mail commercial"/> <field name="website" widget="url"/> - <label for='facebook' string="Réseaux sociaux"/> + <label for='facebook' class="oe_read_only" string="Réseaux sociaux" attrs="{'invisible':[('facebook','=',False),('linkedin','=',False),('twitter','=',False)]}"/> <div > - <button string="" class="btn-cgscop oe_read_only" name="open_facebook" type="object" icon="fa-facebook"/> - <button string="" class="btn-cgscop oe_read_only" name="open_linkedin" type="object" icon="fa-linkedin"/> - <button string="" class="btn-cgscop oe_read_only" name="open_twitter" type="object" icon="fa-twitter"/> + <button string="" class="btn-cgscop oe_read_only" name="open_facebook" type="object" icon="fa-facebook" attrs="{'invisible':[('facebook','=',False)]}"/> + <button string="" class="btn-cgscop oe_read_only" name="open_linkedin" type="object" icon="fa-linkedin" attrs="{'invisible':[('linkedin','=',False)]}"/> + <button string="" class="btn-cgscop oe_read_only" name="open_twitter" type="object" icon="fa-twitter" attrs="{'invisible':[('twitter','=',False)]}"/> </div> <label for='facebook' string="Facebook" class="oe_edit_only"/> <div > @@ -160,7 +163,7 @@ <field class="oe_edit_only" name="twitter" widget="url"/> </div> <field name="director_ids" mode="kanban" - context="{'default_parent_id': active_id, 'default_street': street, 'default_street2': street2, 'default_city': city, 'default_state_id': state_id, 'default_zip': zip, 'default_city_id': city_id, 'default_zip_id': zip_id, 'default_country_id': country_id, 'default_supplier': supplier, 'default_customer': customer, 'default_lang': lang, 'default_user_id': user_id, 'default_type': 'contact'}"> + context="{'default_parent_id': active_id, 'default_street': street, 'default_street2': street2, 'default_city': city, 'default_state_id': state_id, 'default_zip': zip, 'default_zip_id': zip_id, 'default_country_id': country_id, 'default_supplier': supplier, 'default_customer': customer, 'default_lang': lang, 'default_user_id': user_id, 'default_type': 'contact'}"> <kanban> <field name="id"/> <field name="color"/> @@ -178,7 +181,6 @@ <field name="zip"/> <field name="zip_id"/> <field name="city"/> - <field name="city_id"/> <field name="country_id"/> <field name="mobile"/> <field name="state_id"/> @@ -209,14 +211,12 @@ <field name="parent_id" invisible="1"/> <group> <group invisible="1"> - <field name="country_enforce_cities"/> <field name="street"/> <field name="street2"/> <field name="street3"/> <field name="zip_id"/> <field name="zip"/> <field name="city"/> - <field name="city_id"/> <field name="state_id"/> <field name="country_id"/> </group> @@ -322,7 +322,7 @@ </page> <page name="scop_periods" string="Historique des périodes" autofocus="autofocus"> <field name="scop_period_ids" mode="tree" - context="{'default_partner_id': active_id, 'default_name': name, 'default_cooperative_form_id': cooperative_form_id, 'default_partner_company_type_id': partner_company_type_id, 'default_siret': siret, 'default_street': street, 'default_street2': street2, 'default_city': city, 'default_city_id': city_id, 'default_state_id': state_id, 'default_zip': zip, 'default_zip_id': zip_id, 'default_country_id': country_id, 'default_naf_id': naf_id, 'default_cae': cae, 'default_is_main_location': is_main_location, 'default_parent_group_name': parent_group_name}"> + context="{'default_partner_id': active_id, 'default_name': name, 'default_cooperative_form_id': cooperative_form_id, 'default_partner_company_type_id': partner_company_type_id, 'default_siret': siret, 'default_street': street, 'default_street2': street2, 'default_city': city, 'default_state_id': state_id, 'default_zip': zip, 'default_zip_id': zip_id, 'default_country_id': country_id, 'default_naf_id': naf_id, 'default_cae': cae, 'default_is_main_location': is_main_location, 'default_parent_group_name': parent_group_name}"> <tree string="Périodes" decoration-success="end_reason==False" decoration-muted="end_reason!=False" create="false" edit="false" delete="false"> <field name="partner_id" invisible="1"/> <field name="start"/> @@ -338,8 +338,7 @@ <field name="street3"/> <field name="zip"/> <field name="zip_id" invisible="1"/> - <field name="city" invisible="1"/> - <field name="city_id"/> + <field name="city"/> <field name="state_id" invisible="1"/> <field name="country_id" invisible="1"/> <field name="naf_id"/> @@ -372,8 +371,7 @@ <field name="street3" readonly="1"/> <field name="zip" invisible="1"/> <field name="zip_id" readonly="1"/> - <field name="city" invisible="1"/> - <field name="city_id" readonly="1"/> + <field name="city" /> <field name="state_id" invisible="1"/> <field name="country_id" invisible="1"/> </group> @@ -466,7 +464,6 @@ <label for="street" string="Address"/> <div> <div class="o_address_format" name="div_address"> - <field name="country_enforce_cities" invisible="1" modifiers="{'readonly':true,'invisible':true}"/> <field name="street" placeholder="Rue..." class="o_address_street"/> <field name="street2" placeholder="Rue 2..." class="o_address_street"/> <field name="street3" placeholder="Rue 3..." class="o_address_street"/> @@ -476,13 +473,7 @@ class="oe_edit_only"/> <field name="zip" placeholder="ZIP" class="o_address_zip"/> <field name="city" placeholder="Ville" class="o_address_city" - attrs="{'invisible': [('country_enforce_cities', '=', True), ('city_id', '!=', False)], 'readonly': [('type', '=', 'contact'), ('parent_id', '!=', False)]}" modifiers="{'readonly':[['type','=','contact'],['parent_id','!=',false]],'invisible':[['country_enforce_cities','=',true],['city_id','!=',false]]}"/> - <field name="city_id" placeholder="Ville" string="Ville" class="o_address_city" - context="{'default_country_id': country_id, 'default_name': city, 'default_zipcode': zip, 'default_state_id': state_id}" - domain="[('country_id', '=', country_id)]" - attrs="{'invisible': [('country_enforce_cities', '=', False)], 'readonly': [('type', '=', 'contact')]}" - on_change="1" can_create="true" can_write="true" - modifiers="{'readonly':[['type','=','contact'],['parent_id','!=',false]],'invisible':[['country_enforce_cities','=',false]]}"/> + attrs="{'readonly': [('type', '=', 'contact'), ('parent_id', '!=', False)]}" modifiers="{'readonly':[['type','=','contact'],['parent_id','!=',false]]}"/> <field name="state_id" class="o_address_state" placeholder="State" options='{"no_open": True}' context="{'country_id': country_id, 'zip': zip}"/> <field name="country_id" placeholder="Country" class="o_address_country" options='{"no_open": True, "no_create": True}'/> diff --git a/wizard/scop_period_wizard.py b/wizard/scop_period_wizard.py index 8bc31bed02d1aff843cb74cb769d8e22b64d6281..f2f4393c7ac7c526fc05a5302273599a60531a2c 100644 --- a/wizard/scop_period_wizard.py +++ b/wizard/scop_period_wizard.py @@ -70,11 +70,6 @@ class ScopPeiodWizard(models.TransientModel): return self.env['res.partner'].browse( self.env.context.get('active_id')).city - @api.model - def _default_city_id(self): - return self.env['res.partner'].browse( - self.env.context.get('active_id')).city_id - @api.model def _default_state_id(self): return self.env['res.partner'].browse( @@ -149,8 +144,6 @@ class ScopPeiodWizard(models.TransientModel): zip_id = fields.Many2one('res.city.zip', 'ZIP Location', default=_default_zip_id) city = fields.Char(default=_default_city) - city_id = fields.Many2one('res.city', string='City of Address', - default=_default_city_id) state_id = fields.Many2one( "res.country.state", string='State', @@ -175,6 +168,14 @@ class ScopPeiodWizard(models.TransientModel): # Action + @api.onchange('zip_id') + def _onchange_zip_id(self): + if self.zip_id: + self.zip = self.zip_id.name + self.city = self.zip_id.city_id.name + self.country_id = self.zip_id.city_id.country_id + self.state_id = self.zip_id.city_id.state_id + @api.multi def create_period(self): # Create new period @@ -191,7 +192,6 @@ class ScopPeiodWizard(models.TransientModel): 'zip': self.zip, 'zip_id': self.zip_id.id, 'city': self.city, - 'city_id': self.city_id.id, 'state_id': self.state_id.id, 'country_id': self.country_id.id, 'naf_id': self.naf_id.id, @@ -224,7 +224,6 @@ class ScopPeiodWizard(models.TransientModel): 'zip': self.zip, 'zip_id': self.zip_id.id, 'city': self.city, - 'city_id': self.city_id.id, 'state_id': self.state_id.id, 'country_id': self.country_id.id, 'naf_id': self.naf_id.id, diff --git a/wizard/scop_period_wizard.xml b/wizard/scop_period_wizard.xml index 1952922c4db41935a5e0e76f75dedadcf7266a38..7fbdbd0b87670e4d527a806147630ba3fb55bcd0 100644 --- a/wizard/scop_period_wizard.xml +++ b/wizard/scop_period_wizard.xml @@ -18,15 +18,18 @@ <field name="cooperative_form_id" required="1"/> <field name="partner_company_type_id" required="1"/> <field name="siret" required="1"/> - <field name="street" required="1"/> - <field name="street2"/> - <field name="street3"/> - <field name="zip_id" invisible="1"/> - <field name="zip" required="1"/> - <field name="city_id" invisible="1"/> - <field name="city" required="1"/> - <field name="state_id" invisible="1"/> - <field name="country_id" invisible="1"/> + <label for='street' string="Adresse Administrative"/> + <div class="o_address_format" modifiers="{}"> + <field name="street" placeholder="Rue..." class="o_address_street" required="1"/> + <field name="street2" placeholder="Rue 2..." class="o_address_street"/> + <field name="street3" placeholder="Rue 3..." class="o_address_street"/> + <field name="zip_id" options="{'create_name_field': 'city', 'no_open': True, 'no_create': True}" placeholder="Location completion" + on_change="1" can_create="true" can_write="true"/> + <field name="zip" placeholder="Code postal" class="o_address_city" on_change="1" required="1"/> + <field name="city" placeholder="Ville" class="o_address_city" required="1"/> + <field name="state_id" placeholder="État" invisible="1"/> + <field name="country_id" placeholder="Pays" invisible="1"/> + </div> </group> <group> <field name="naf_id" required="1"/>