diff --git a/models/res_partner.py b/models/res_partner.py index 253b706b66efdeee9e28fe53cd93ff72406f2475..c9d43f4ebf626a1d501b35ada18f220c27eec5d4 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -1066,6 +1066,130 @@ class ScopPartner(models.Model): } + # ------------------------------------------------------ + # Affichage des coop avec filtre par défaut + # ------------------------------------------------------ + def show_coop(self): + + ctx = " 'default_is_company': True, 'default_is_cooperative': True, 'default_company_type': 'company', 'default_project_status': '6_suivi'}" + + # Détermine le filtre par défaut pour l'affichage + filtre = self.env.user.company_id.ur_id.partner_filter + if filtre=='1' : + mycontext = "{'search_default_is_adherent': True," + ctx + elif filtre=='2' : + mycontext = "{'search_default_my_ur_adherent': True," + ctx + elif filtre=='3' : + mycontext = "{'search_default_is_federation_com': True," + ctx + elif filtre=='4' : + mycontext = "{'search_default_is_federation_indus': True," + ctx + elif filtre=='5' : + mycontext = "{'search_default_my_is_federation_btp': True," + ctx + elif filtre=='6' : + mycontext = "{'search_default_my_is_federation_cae': True," + ctx + else: + mycontext = "{'search_default_my_ur_adherent': True," + ctx + + return { + 'name': "Coopératives", + 'type': 'ir.actions.act_window', + 'res_model': 'res.partner', + 'search_view_id': (self.env.ref('cgscop_partner.scop_partner_view_search').id,), + 'view_type': 'form', + 'view_mode': 'tree,form,activity', + 'views': [ + (self.env.ref('cgscop_partner.view_partner_cooperative_tree').id, 'tree'), + (self.env.ref('cgscop_partner.scop_contact_view_form').id, 'form')], + 'target': 'current', + 'domain': [ + ('is_cooperative', '=', True), + ('project_status', '=', '6_suivi')], + 'context': mycontext + } + + # ------------------------------------------------------ + # Affichage des prospect avec filtre par défaut + # ------------------------------------------------------ + def show_prospect(self): + + ctx = " 'default_is_company': True, 'default_is_cooperative': True, 'default_company_type': 'company', 'default_project_status': '1_information'}" + + # Détermine le filtre par défaut pour l'affichage + filtre = self.env.user.company_id.ur_id.partner_filter + if filtre=='1' : + mycontext = "{" + ctx + elif filtre=='2' : + mycontext = "{'search_default_my_ur': True," + ctx + elif filtre=='3' : + mycontext = "{" + ctx + elif filtre=='4' : + mycontext = "{" + ctx + elif filtre=='5' : + mycontext = "{" + ctx + elif filtre=='6' : + mycontext = "{" + ctx + else: + mycontext = "{'search_default_my_ur': True," + ctx + + return { + 'name': "Prospects", + 'type': 'ir.actions.act_window', + 'res_model': 'res.partner', + 'search_view_id': (self.env.ref('cgscop_partner.scop_partner_view_search').id,), + 'view_type': 'form', + 'view_mode': 'kanban,tree,form,activity', + 'views': [ + (self.env.ref('cgscop_partner.view_partner_cooperative_kanban').id, 'kanban'), + (self.env.ref('cgscop_partner.view_partner_prospect_tree').id, 'tree'), + (self.env.ref('cgscop_partner.scop_contact_view_form').id, 'form')], + 'target': 'current', + 'domain': [ + ('is_cooperative', '=', True), + ('project_status','in',('1_information','2_pre-diagnostic','3_accompagnement','4_adhesion','5_cg','7_abandonne'))], + 'context': mycontext + } + + # ------------------------------------------------------ + # Affichage des organismes avec filtre par défaut + # ------------------------------------------------------ + def show_organisme(self): + + ctx = " 'default_is_company': True, 'default_is_cooperative': True, 'default_company_type': 'company', 'default_project_status': '1_information'}" + + # Détermine le filtre par défaut pour l'affichage + filtre = self.env.user.company_id.ur_id.partner_filter + if filtre=='1' : + mycontext = "{" + ctx + elif filtre=='2' : + mycontext = "{'search_default_my_ur_adherent': True," + ctx + elif filtre=='3' : + mycontext = "{" + ctx + elif filtre=='4' : + mycontext = "{" + ctx + elif filtre=='5' : + mycontext = "{" + ctx + elif filtre=='6' : + mycontext = "{" + ctx + else: + mycontext = "{'search_default_my_ur_adherent': True," + ctx + + return { + 'name': "Tous les organismes", + 'type': 'ir.actions.act_window', + 'res_model': 'res.partner', + 'search_view_id': (self.env.ref('cgscop_partner.scop_partner_view_search').id,), + 'view_type': 'form', + 'view_mode': 'tree,form,activity', + 'views': [ + (self.env.ref('cgscop_partner.view_partner_prospect_tree').id, 'tree'), + (self.env.ref('cgscop_partner.scop_contact_view_form').id, 'form')], + 'target': 'current', + 'domain': [('is_cooperative', '=', True)], + 'context': mycontext + } + + + class ResPartneCertification(models.Model): _name = "res.partner.certification" _description = "Certification" diff --git a/models/union_regionale.py b/models/union_regionale.py index 66f9e890cf40d5b9d7384910ef99f227cb2ccd92..2d14e3ff36ef076679d16527f475454155f27153 100644 --- a/models/union_regionale.py +++ b/models/union_regionale.py @@ -12,6 +12,14 @@ class UnionRegionale(models.Model): name = fields.Char("Abbréviation", required=True, index=True) code_ur = fields.Char("Code UR") id_riga = fields.Integer("Identifiant RIGA", index=True) + partner_filter = fields.Selection( + [('1', "Tous"), + ('2', 'Union régionale'), + ('3', "Fed. communication"), + ('4', "Fed. industrie"), + ('5', 'Fed. BTP'), + ('6', 'Fed CAE')], + string='Filtre par défaut') _sql_constraints = [('name_uniq', 'unique (name)', "Cette Union Régionale existe déjà !")] diff --git a/views/res_partner_cooperative.xml b/views/res_partner_cooperative.xml index b2067df86d701c4da4de80a269bebe06bfa809e4..5f2e27c6d30079b894b57c1e3482cb51a7103f69 100644 --- a/views/res_partner_cooperative.xml +++ b/views/res_partner_cooperative.xml @@ -132,7 +132,7 @@ </record> - <!-- Prospects Action --> + <!-- Prospects Action *** N'EST PLUS UTILISE *** --> <record model="ir.actions.act_window" id="scop_prospect_act"> <field name="name">Prospects</field> <field name="res_model">res.partner</field> @@ -147,7 +147,7 @@ <field name="context">{'search_default_my_ur': True, 'default_is_company': True, 'default_is_cooperative': True, 'default_company_type': 'company', 'default_project_status': '1_information'}</field> </record> - <!-- Cooperatives Action --> + <!-- Cooperatives Action *** N'EST PLUS UTILISE *** --> <record model="ir.actions.act_window" id="scop_cooperative_act"> <field name="name">Coopératives</field> <field name="res_model">res.partner</field> @@ -161,7 +161,7 @@ <field name="context">{'search_default_my_ur_adherent': True, 'default_is_company': True, 'default_is_cooperative': True, 'default_company_type': 'company', 'default_project_status': '6_suivi'}</field> </record> - <!-- Organismes Action --> + <!-- Organismes Action *** N'EST PLUS UTILISE *** --> <record model="ir.actions.act_window" id="scop_organisme_act"> <field name="name">Tous les Organismes</field> <field name="res_model">res.partner</field> @@ -175,21 +175,49 @@ <field name="context">{'default_is_company': True, 'search_default_my_ur_adherent': True, 'default_is_cooperative': True, 'default_company_type': 'company', 'default_project_status': '1_information'}</field> </record> + <!-- Action serveur pour rediriger le menu item vers du code python --> + <record model="ir.actions.server" id="scop_cooperative_act_server"> + <field name="name">CG Scop - Filtre coop par défaut</field> + <field name="model_id" ref="cgscop_partner.model_res_partner"/> + <field name="type">ir.actions.server</field> + <field name="state">code</field> + <field name="code">action = model.show_coop()</field> + </record> + + <record model="ir.actions.server" id="scop_prospect_act_server"> + <field name="name">CG Scop - Filtre prospects par défaut</field> + <field name="model_id" ref="cgscop_partner.model_res_partner"/> + <field name="type">ir.actions.server</field> + <field name="state">code</field> + <field name="code">action = model.show_prospect()</field> + </record> + + <record model="ir.actions.server" id="scop_organisme_act_server"> + <field name="name">CG Scop - Filtre organisme par défaut</field> + <field name="model_id" ref="cgscop_partner.model_res_partner"/> + <field name="type">ir.actions.server</field> + <field name="state">code</field> + <field name="code">action = model.show_organisme()</field> + </record> + <menuitem id="menu_organismes" name="Organismes" parent="contacts.menu_contacts" sequence="10"/> <menuitem id="menu_action_prospect" - action="scop_prospect_act" + action="scop_prospect_act_server" parent="menu_organismes" + name="Prospects" sequence="10"/> <menuitem id="menu_action_cooperative" - action="scop_cooperative_act" + action="scop_cooperative_act_server" parent="menu_organismes" + name="Coopératives" sequence="20"/> <menuitem id="menu_action_organismes" - action="scop_organisme_act" + action="scop_organisme_act_server" parent="menu_organismes" + name="Tous les organismes" sequence="30"/> </data> diff --git a/views/scop_config_views.xml b/views/scop_config_views.xml index 102cb5c132cbfff33d8937e07c21ea668c6310ac..47a4fba4b592950053e5a1288fab14ff930683d1 100644 --- a/views/scop_config_views.xml +++ b/views/scop_config_views.xml @@ -309,6 +309,7 @@ <tree string="Unions Régionales" editable="top"> <field name="long_name"/> <field name="name"/> + <field name="partner_filter"/> <field name="code_ur"/> <field name="id_riga"/> </tree>