diff --git a/__manifest__.py b/__manifest__.py index c8cdb9ce10fa4ddcff90a94718a7b0c5e6fc4de6..4623b3fc77d2f646ed9252dd0c811b1991ebb44e 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -15,6 +15,7 @@ "partner_address_street3", "partner_company_type", "partner_firstname", + "partner_multi_relation", "phone_validation", ], "data": [ @@ -39,6 +40,7 @@ "datas/res_partner_creation_origin_data.xml", "datas/res_partner_dissolution_reason_data.xml", "datas/res_partner_mandate_data.xml", + "datas/res_partner_multi_relation_data.xml", "datas/res_partner_naf_data.xml", "datas/res_partner_newsletter_data.xml", "datas/res_partner_organization_type_data.xml", diff --git a/datas/res_partner_multi_relation_data.xml b/datas/res_partner_multi_relation_data.xml new file mode 100644 index 0000000000000000000000000000000000000000..2c1ac146bd3098b68d22c4619e2cfa8eeba7dbd3 --- /dev/null +++ b/datas/res_partner_multi_relation_data.xml @@ -0,0 +1,33 @@ +<?xml version="1.0"?> +<odoo> + <data noupdate="1"> + <!-- Partner relation types --> + <record id="rel_type_partenaire" model="res.partner.relation.type"> + <field name="name">Partenaire</field> + <field name="name_inverse">Partenaire</field> + <field name="contact_type_left">c</field> + <field name="contact_type_right">c</field> + <field name="is_symmetric" eval="True"/> + </record> + <record id="rel_type_filiale" model="res.partner.relation.type"> + <field name="name">Filiale</field> + <field name="name_inverse">Filiale</field> + <field name="contact_type_left">c</field> + <field name="contact_type_right">c</field> + <field name="is_symmetric" eval="True"/> + </record> + <record id="rel_type_groupscop" model="res.partner.relation.type"> + <field name="name">Groupement de scop</field> + <field name="name_inverse">Groupement de scop</field> + <field name="contact_type_left">c</field> + <field name="contact_type_right">c</field> + <field name="is_symmetric" eval="True"/> + </record> + <record id="rel_type_person_company" model="res.partner.relation.type"> + <field name="name">Lié à la personne</field> + <field name="name_inverse">Lié à l'entreprise</field> + <field name="contact_type_left">c</field> + <field name="contact_type_right">p</field> + </record> + </data> +</odoo> \ No newline at end of file diff --git a/models/res_partner.py b/models/res_partner.py index ca1b6876856ef520e43049904193ef139acdd40e..860086581bd6843cf0b942b376c5e20825623eee 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -201,47 +201,6 @@ class ScopPartner(models.Model): 'res.partner', 'parent_id', string='Autres Contacts', domain=[('active', '=', True), ('mandate_id', '=', False)]) - # Partenaires - bank_id = fields.Many2one( - 'res.partner', - string='Banque principale', - domain=[('active', '=', True), ('is_company', '=', True), - ('organization_subtype_id.name', '=', 'Banque')], - on_delete='restrict') - bank2_id = fields.Many2one( - 'res.partner', - string='Banque secondaire', - domain=[('active', '=', True), ('is_company', '=', True), - ('organization_subtype_id.name', '=', 'Banque')], - on_delete='restrict') - accountant_id = fields.Many2one( - 'res.partner', - string='Expert-Comptable', - domain=[('active', '=', True), ('is_company', '=', True), - '|', ('organization_subtype_id.name', '=', 'Expert-Comptable'), - ('organization_subtype_id.name', '=', 'Organisme réviseur, ' + - 'Expert-comptable / Commissaire au compte')], - on_delete='restrict') - accountant_person_id = fields.Many2one( - 'res.partner', - string='Expert-Comptable (personne)', - domain=[('active', '=', True), ('is_company', '=', False)], - on_delete='restrict') - auditor_id = fields.Many2one( - 'res.partner', - string='Commissaire aux Comptes', - domain=[('active', '=', True), ('is_company', '=', True), - '|', ('organization_subtype_id.name', '=', - 'Commissaire au compte'), - ('organization_subtype_id.name', '=', 'Organisme réviseur, ' + - 'Expert-comptable / Commissaire au compte')], - on_delete='restrict') - auditor_person_id = fields.Many2one( - 'res.partner', - string='Commissaire aux Comptes (personne)', - domain=[('active', '=', True), ('is_company', '=', False)], - on_delete='restrict') - # Révisions revision_contract = fields.Date("Date du contrat de révision", track_visibility='onchange') diff --git a/views/res_partner.xml b/views/res_partner.xml index b831cdae2465903d101baac74d2773cf41b181f1..1df1161ab216bf6013748f663ede8e679dc5b463 100644 --- a/views/res_partner.xml +++ b/views/res_partner.xml @@ -278,5 +278,19 @@ parent="contacts.menu_contacts" sequence="30"/> + <menuitem + id="partner_multi_relation.menu_res_partner_relation_all" + sequence="32" + name="Relations" + parent="contacts.menu_contacts" + action="partner_multi_relation.action_res_partner_relation_all"/> + + <menuitem + id="partner_multi_relation.menu_res_partner_relation" + name="Relations" + sequence="41" + parent="contacts.menu_contacts" + groups='base.group_no_one'/> + </data> </odoo> diff --git a/views/res_partner_cooperative.xml b/views/res_partner_cooperative.xml index 27501ecff8ac1df3a8296d5ca7e9aa4c5a6f50cf..a2d30f1e800478d236244fd867cfdd4737be200a 100644 --- a/views/res_partner_cooperative.xml +++ b/views/res_partner_cooperative.xml @@ -154,6 +154,26 @@ <field name="active" widget="boolean_button" options='{"terminology": "archive"}'/> </button> + <button + class="oe_inline oe_stat_button" + type="action" + context="{ + 'search_default_this_partner_id': active_id, + 'default_this_partner_id': active_id, + 'active_model': 'res.partner', + 'active_id': id, + 'active_ids': [id], + 'active_test': False, + }" + name="%(partner_multi_relation.action_res_partner_relation_all)d" + icon="fa-users" + > + <field + string="Relations" + name="relation_count" + widget="statinfo" + /> + </button> </div> <field name="image" widget='image' class="oe_avatar" options='{"preview_image": "image_medium", "size": [90, 90]}'/> <div class="oe_title oe_title_cgscop"> @@ -537,16 +557,6 @@ </form> </field> </page> - <page name="partners" string="Partenaires"> - <group> - <field name="bank_id" widget="res_partner_many2one" options="{'no_create': True}"/> - <field name="bank2_id" widget="res_partner_many2one" options="{'no_create': True}"/> - <field name="accountant_id" widget="res_partner_many2one" options="{'no_create': True}"/> - <field name="accountant_person_id" widget="res_partner_many2one" attrs="{'invisible': [('accountant_id', '=', False)]}" domain="[('parent_id', '=', accountant_id), ('is_company', '=', False)]" options="{'no_open': True, 'no_create': True}"/> - <field name="auditor_id" widget="res_partner_many2one" options="{'no_create': True}"/> - <field name="auditor_person_id" widget="res_partner_many2one" attrs="{'invisible': [('auditor_id', '=', False)]}" domain="[('parent_id', '=', auditor_id), ('is_company', '=', False)]" options="{'no_open': True, 'no_create': True}"/> - </group> - </page> <page name='scop_revision' string="Révisions" attrs="{'invisible': [('project_status', '!=', '6_suivi')]}"> <group string="Informations de révision"> <group> diff --git a/views/scop_config_views.xml b/views/scop_config_views.xml index cc094dd0d11771ac2a8be19313dc680588bdda5d..f01bfde097c7867644428cf7437fdcde93b64c1f 100644 --- a/views/scop_config_views.xml +++ b/views/scop_config_views.xml @@ -363,6 +363,14 @@ <field name="groups_id" eval="[(6,0, [ref('group_cg_administrator'), ref('group_ur_list_modif')])]"/> </record> + <menuitem + id="partner_multi_relation.menu_res_partner_relation_type" + name="Types de Relations" + parent="contacts.res_partner_menu_config" + action="partner_multi_relation.action_res_partner_relation_type" + sequence="19" + groups="group_cg_administrator" + /> <menuitem id="menu_scop" name="SCOP" parent="contacts.res_partner_menu_config" sequence="20" groups="group_cg_administrator"/>