diff --git a/datas/res.partner.organization.type.csv b/datas/res.partner.organization.type.csv index c75e53bb08cb7e70e33a40a220e79457f71987d9..3471281b5f80de9f412bbcd7f46d3f30d0ada47d 100644 --- a/datas/res.partner.organization.type.csv +++ b/datas/res.partner.organization.type.csv @@ -1,13 +1,76 @@ -id,name -organization_type_1,Entreprise -organization_type_2,UES -organization_type_3,UNIONSCOP -organization_type_4,Assemblée nationale / Sénat -organization_type_5,CESE /CESER -organization_type_6,Commune / Communauté de communes -organization_type_7,Conseil départemental -organization_type_8,Conseil régional -organization_type_9,Mairie -organization_type_10,Ministère / administration / Conseil national -organization_type_11,Préfecture -organization_type_12,Union Européenne +"id","parent_id:id","id_riga","name" +1,,14555,"Education & Recherche" +101,1,16396,"Université" +102,1,14418,"Education & Recherche" +103,1,16395,"Grandes écoles" +2,,11518,"Médias" +201,2,11537,"Agence de Média" +202,2,11536,"Agence de Presse" +203,2,11532,"Presse Ecrite Nationale" +204,2,11535,"Presse Ecrite PQR" +205,2,11534,"Radio" +206,2,11533,"TV" +3,,11517,"Structure du Mouvement" +301,3,14038,"Confédération" +302,3,11528,"Union Régionale" +303,3,14859,"Antenne union régionale" +304,3,14037,"Fédération" +305,3,14857,"Fédération régionale" +306,3,16776,"Antenne Fédération Régionale" +307,3,14039,"Outils Financiers" +308,3,11531,"Union Sociale" +309,3,14433,"Clubs (CAC....)" +310,3,14858,"Autre outil national du mouvement" +311,3,16398,"Organisme d'appui régional" +312,3,14856,"Organisme réviseur du mvt" +4,,14561,"Organisme de tutelle" +401,4,14562,"DIRECCTE" +5,,14419,"Réseau ESS" +501,5,16325,"Accompagnement Création / Transmission / Reprise" +502,5,14426,"CFESS" +503,5,16397,"Coopérative agricole/SICA" +504,5,16572,"Coopérative artisanale" +505,5,14420,"CRESS / CNCRES" +506,5,14425,"Entreprise Sociale" +507,5,14424,"Fondation" +508,5,14422,"Mouvement Associatif" +509,5,14421,"Mouvement Coopératif" +510,5,14434,"Mouvement Coopératif Europe / International" +511,5,16552,"Mouvement entreprises sociales" +512,5,14423,"Mutuelle" +513,5,14427,"UDES" +6,,14962,"Autre personne morale" +601,6,14964,"Association" +602,6,14963,"Entreprise" +603,6,14990,"Entreprise adhérente Centrale d'achat FEDCOM" +7,,14414,"Pouvoir Public" +701,7,14428,"CESE / CESER" +702,7,14430,"Commune / Communauté de communes" +703,7,14429,"Conseil Départemental" +704,7,14417,"Conseil Regional" +705,7,14824,"Mairie" +706,7,14416,"Ministere / Administration / Conseil (National)" +707,7,14825,"Préfecture" +708,7,14435,"Union Européenne" +709,7,14431,"Assemblée Nationale / Sénat" +8,,14554,"Fédération Hors Mouvement" +801,8,16394,"Autre fédération hors mouvement" +9,,11522,"Réseau Prestataire / Partenaire" +901,9,11763,"Accompagnement Création / Transmission / Reprise" +902,9,11759,"Administrateur/Mandataire Judiciaire" +903,9,14411,"CCI" +904,9,14826,"Chambre" +905,9,14952,"Commissaire au compte" +906,9,11757,"Consultant Formateur" +907,9,16320,"Education & Recherche" +908,9,11761,"Etablissement Financier" +909,9,14552,"Expert-Comptable" +910,9,14413,"Fédération / Syndicat professionel" +911,9,16324,"Fédération / Syndicat professionnel" +912,9,16323,"Mouvement Associatif" +913,9,14953,"Organisme réviseur" +914,9,16433,"Organisme réviseur, Expert-comptable / Commissaire au compte" +915,9,14432,"Parti Politique" +916,9,14823,"Pôle emploi" +917,9,11758,"Profession Juridique" +918,9,14412,"Syndicat de Salariés" diff --git a/models/res_partner.py b/models/res_partner.py index ead5914028c31d964bc0f622a4da42bac43dcb29..4fdd26ef887231bdae9780ac663277a1936f29de 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -269,7 +269,7 @@ class ScopPartner(models.Model): inverse_name='partner_id', string='Outils financiers') - # Champs pour contacts + # Champs pour personnes birthyear = fields.Integer("Année de naissance") education_level = fields.Selection([ ('licence', 'Licence'), @@ -295,6 +295,18 @@ class ScopPartner(models.Model): ("none", "Aucune")], string="Licéité du contact", default="none") + # Champs pour partenaires + organization_type_id = fields.Many2one( + 'res.partner.organization.type', + string="Type", + domain=[('parent_id', '=', False)], + on_delete='restrict') + organization_subtype_id = fields.Many2one( + 'res.partner.organization.type', + string="Sous-Type", + domain=[('child_ids', '=', False)], + on_delete='restrict') + @api.multi def open_facebook(self): self.ensure_one() @@ -379,7 +391,36 @@ class ResPartnerCreationOrigin(models.Model): def _check_origin_recursion(self): if not self._check_recursion(): raise ValidationError( - 'Vous ne pouvez pas créer des origines récusrives.') + 'Vous ne pouvez pas créer des origines récursives.') + return True + + +class ResPartnerOrganizationType(models.Model): + _name = "res.partner.organization.type" + _description = "Type of Organization" + _parent_name = "parent_id" + _parent_store = True + _rec_name = 'name' + _order = 'id' + + name = fields.Char('Type / Sous-Type', index=True, required=True) + parent_id = fields.Many2one( + comodel_name='res.partner.organization.type', + string='Type (parent)', + index=True, + ondelete='restrict') + parent_path = fields.Char(index=True) + child_ids = fields.One2many( + comodel_name='res.partner.organization.type', + inverse_name='parent_id', + string='Sous types') + id_riga = fields.Integer("ID RIGA") + + @api.constrains('parent_id') + def _check_origin_recursion(self): + if not self._check_recursion(): + raise ValidationError( + 'Vous ne pouvez pas créer des types récursifs.') return True @@ -402,10 +443,3 @@ class ResPartnerRgpdOrigin(models.Model): _description = "Origin" name = fields.Char('Origin') - - -class ResPartnerTypeOrganization(models.Model): - _name = "res.partner.organization.type" - _description = "Organization Type" - - name = fields.Char('Organization Type') diff --git a/views/res_partner.xml b/views/res_partner.xml index dc6fdd31544d86250ea1022560a934d263feaf5a..920a67c9d7e74b294262891e7ca4f1049ec6f13b 100644 --- a/views/res_partner.xml +++ b/views/res_partner.xml @@ -33,7 +33,6 @@ </field> </record> - <record id="view_partner_address_french" model="ir.ui.view"> <field name="name">french.address</field> <field name="model">res.partner</field> @@ -83,10 +82,20 @@ <field name="name">add scop fields in form view</field> <field name="model">res.partner</field> <field name="inherit_id" ref="base.view_partner_form"/> + <field name="priority" eval="120"/> <field name="arch" type="xml"> <field name="title" position="replace"/> + <xpath expr='//form/sheet/group/group[2]' position="replace"> + <group name="Infos activités" attrs="{'invisible': [('is_company','=', False)]}"> + <field name="certification_ids" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}" attrs="{'invisible': [('is_company','=', False)]}"/> + <field name="category_id" string="Territoire Rattaché" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}" placeholder="Territoire Rattaché..." can_create="true" can_write="true" modifiers="{}" attrs="{'invisible': [('is_company','=', False)]}"/> + <field name="industry_id" attrs="{'invisible': [('is_company','=', False)]}"/> + <field name="organization_type_id" attrs="{'invisible': [('is_company','=', False)]}"/> + <field name="organization_subtype_id" attrs="{'invisible': [('is_company','=', False)]}"/> + </group> + </xpath> <xpath expr='//form/sheet/group' position="after"> - <group> + <group attrs="{'invisible': [('is_company','=', True)]}"> <group> <field name="title" options='{"no_open": True}' attrs="{'invisible': [('is_company','=', True)]}"/> <field name="birthyear" attrs="{'invisible': [('is_company','=', True)]}"/> @@ -105,6 +114,13 @@ </group> </group> </xpath> + <field name="vat" position="replace"> + <field name="phone" widget="phone" modifiers="{}"/> + <field name="email" widget="email" on_change="1" modifiers="{}"/> + <field name="company_id" string="UR" options="{'no_create': True}" on_change="1" can_create="false" can_write="false" modifiers="{}" attrs="{'invisible': [('is_company','=', False)]}"/> + <field name="website" invisible="1"/> + <field name="lang" invisible="1"/> + </field> </field> </record> @@ -206,4 +222,4 @@ sequence="30"/> </data> -</odoo> \ No newline at end of file +</odoo> diff --git a/views/scop_config_views.xml b/views/scop_config_views.xml index 84129d2e40eea08f320b38dc634d66af0ac17184..3b4a8096d0ca7a3a3620b1829bda7824f03587ec 100644 --- a/views/scop_config_views.xml +++ b/views/scop_config_views.xml @@ -35,7 +35,7 @@ <field name="help">Display and manage the list of Dissolution Reasons.</field> </record> - <!-- Creation Suborigin --> + <!-- Creation Origin --> <record id="view_res_partner_creation_origin_tree" model="ir.ui.view"> <field name="name">res.partner.creation.origin.tree</field> <field name="model">res.partner.creation.origin</field> @@ -62,26 +62,16 @@ <field name="arch" type="xml"> <tree string="Organization Types"> <field name="name"/> + <field name="parent_id"/> + <field name="id_riga"/> </tree> </field> </record> - <record id="view_res_partner_organization_type_form" model="ir.ui.view"> - <field name="name">res.partner.organization.type.form</field> - <field name="model">res.partner.organization.type</field> - <field name="arch" type="xml"> - <form string="Organization Type"> - <group name="main"> - <field name="name"/> - </group> - </form> - </field> - </record> - <record id="action_view_res_partner_organization_type_tree" model="ir.actions.act_window"> <field name="name">Organization Types</field> <field name="res_model">res.partner.organization.type</field> - <field name="view_mode">tree,form</field> + <field name="view_mode">tree</field> <field name="help">Display and manage the list of Organization Types.</field> </record>