diff --git a/__manifest__.py b/__manifest__.py index 556561c98053f23599b356518b3a89e76dd97c7c..7142c36539de034590abb96f11fce8b3ec0cc3be 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -29,7 +29,6 @@ "views/scop_config_lists_views.xml", "datas/res.country.csv", "datas/union.regionale.csv", - "datas/res.partner.category.csv", "datas/res.partner.certification.csv", "datas/res.partner.company.type.csv", "datas/res.partner.cooperative.form.csv", @@ -38,11 +37,11 @@ "datas/res.partner.mandate.csv", "datas/res.partner.organization.type.csv", "datas/res.partner.rgpd.origin.csv", + "datas/res.partner.segment.csv", "datas/scop.contribution.type.csv", "datas/scop.financial.category.csv", "datas/scop.financial.intervention.type.csv", "datas/scop.financial.tools.type.csv", - "datas/scop.legal.event.type.csv", "datas/scop.liasse.fiscale.source.csv", "datas/scop.liasse.fiscale.type.csv", "datas/scop.membership.reason.end.csv", diff --git a/datas/res.partner.category.csv b/datas/res.partner.category.csv deleted file mode 100644 index 47b5ebf58433d4a298b4000c88f81337e583aa35..0000000000000000000000000000000000000000 --- a/datas/res.partner.category.csv +++ /dev/null @@ -1,26 +0,0 @@ -id,ur_id,id_riga,name -riga_11776,AURA,11776,Alimentation / Agriculture / Horticulture -riga_14074,AURA,14074,Bois / Ameublement / carton / Verre / Céramique -riga_11777,AURA,11777,BTP et activités connexes -riga_14075,AURA,14075,Bureaux d'etudes batiment -riga_14076,AURA,14076,Cuirs et étoffes -riga_14077,AURA,14077,Divers -riga_14078,AURA,14078,Fonderie / Travail des métaux / Mécanique -riga_14079,AURA,14079,Industrie du livre et communication -riga_14080,AURA,14080,Services intellectuels et culturels -riga_14081,AURA,14081,Services matériels -riga_14071,Paris,14071,ACTION SOCIALE -riga_14073,Paris,14073,ALIMENTATION / COMMERCE -riga_11772,Paris,11772,ARTISANAT / PETITE PRODUCTION -riga_14063,Paris,14063,BTP -riga_14068,Paris,14068,COMMUNICATION / WEB / PRESSE / EVT -riga_14069,Paris,14069,CULTURE / LOISIR -riga_14072,Paris,14072,EDITION -riga_14064,Paris,14064,ETUDES ET CONCEPTION BTP / AMENAGEMENT TERRITOIRE -riga_14070,Paris,14070,FORMATION / ACCOMPAGNEMENT DES PERSONNES -riga_14065,Paris,14065,FORMATION / CONSEIL AUX ORGANISATIONS -riga_14062,Paris,14062,IMPRIMERIE / REPROGRAPHIE / FACONNAGE / ROUTAGE -riga_11771,Paris,11771,INDUSTRIE -riga_14067,Paris,14067,"INFORMATIQUE (développement, conseil, maintenance)" -riga_14066,Paris,14066,PRESTATION DE SERVICE -riga_11773,Paris,11773,TRANSPORT / MANUTENTION diff --git a/datas/res.partner.segment.csv b/datas/res.partner.segment.csv new file mode 100644 index 0000000000000000000000000000000000000000..7bd481d65987e4b73678b728d9aeb73a7fde8957 --- /dev/null +++ b/datas/res.partner.segment.csv @@ -0,0 +1,26 @@ +id,ur_id,id_riga,name,category +riga_11776,AURA,11776,Alimentation / Agriculture / Horticulture,segment_1 +riga_14074,AURA,14074,Bois / Ameublement / carton / Verre / Céramique,segment_1 +riga_11777,AURA,11777,BTP et activités connexes,segment_1 +riga_14075,AURA,14075,Bureaux d'etudes batiment,segment_1 +riga_14076,AURA,14076,Cuirs et étoffes,segment_1 +riga_14077,AURA,14077,Divers,segment_1 +riga_14078,AURA,14078,Fonderie / Travail des métaux / Mécanique,segment_1 +riga_14079,AURA,14079,Industrie du livre et communication,segment_1 +riga_14080,AURA,14080,Services intellectuels et culturels,segment_1 +riga_14081,AURA,14081,Services matériels,segment_1 +riga_14071,Paris,14071,ACTION SOCIALE,segment_1 +riga_14073,Paris,14073,ALIMENTATION / COMMERCE,segment_1 +riga_11772,Paris,11772,ARTISANAT / PETITE PRODUCTION,segment_1 +riga_14063,Paris,14063,BTP,segment_1 +riga_14068,Paris,14068,COMMUNICATION / WEB / PRESSE / EVT,segment_1 +riga_14069,Paris,14069,CULTURE / LOISIR,segment_1 +riga_14072,Paris,14072,EDITION,segment_1 +riga_14064,Paris,14064,ETUDES ET CONCEPTION BTP / AMENAGEMENT TERRITOIRE,segment_1 +riga_14070,Paris,14070,FORMATION / ACCOMPAGNEMENT DES PERSONNES,segment_1 +riga_14065,Paris,14065,FORMATION / CONSEIL AUX ORGANISATIONS,segment_1 +riga_14062,Paris,14062,IMPRIMERIE / REPROGRAPHIE / FACONNAGE / ROUTAGE,segment_1 +riga_11771,Paris,11771,INDUSTRIE,segment_1 +riga_14067,Paris,14067,"INFORMATIQUE (développement, conseil, maintenance)",segment_1 +riga_14066,Paris,14066,PRESTATION DE SERVICE,segment_1 +riga_11773,Paris,11773,TRANSPORT / MANUTENTION,segment_1 diff --git a/datas/scop.legal.event.type.csv b/datas/scop.legal.event.type.csv deleted file mode 100644 index 9f42808ab6957b0da3c5c648ad2c83300515ffda..0000000000000000000000000000000000000000 --- a/datas/scop.legal.event.type.csv +++ /dev/null @@ -1,7 +0,0 @@ -id,name -event_type_1,Société devenant sans activité -event_type_2,Signature Statuts -event_type_3,Renouvellement de la période d’observation -event_type_4,Redressement judiciaire -event_type_5,Procédure de sauvegarde -event_type_6,Plan de continuation diff --git a/models/res_partner.py b/models/res_partner.py index 0d11c3cd4114eb7defd16d5f235ece444dee4b32..4ab383839cb13cdc2c6a5fb365ed58f9da1bab38 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -67,6 +67,7 @@ class ScopPartner(models.Model): track_visibility='onchange') # Infos générales / Contact + sigle = fields.Char("Sigle") cedex = fields.Char("Cedex") country_id = fields.Many2one('res.country', string='Country', ondelete='restrict', @@ -91,16 +92,35 @@ class ScopPartner(models.Model): default=_default_ur, track_visibility='onchange') creation_delegate_id = fields.Many2one( - 'res.partner', + 'res.users', string='Délégué de création', - domain=[('active', '=', True), ('user_ids', '>', 0)], on_delete='restrict') followup_delegate_id = fields.Many2one( - 'res.partner', + 'res.users', string='Délégué de suivi', - domain=[('active', '=', True), ('user_ids', '>', 0)], + domain=[('active', '=', True)], on_delete='restrict', track_visibility='onchange') + segment_1_id = fields.Many2many('res.partner.segment', + column1='partner_id', + column2='segment_id', + string='Segmentation 1', + domain=[('category', '=', 'segment_1')]) + segment_2_id = fields.Many2many('res.partner.segment', + column1='partner_id', + column2='segment_id', + string='Segmentation 2', + domain=[('category', '=', 'segment_2')]) + segment_3_id = fields.Many2many('res.partner.segment', + column1='partner_id', + column2='segment_id', + string='Segmentation 3', + domain=[('category', '=', 'segment_3')]) + segment_4_id = fields.Many2many('res.partner.segment', + column1='partner_id', + column2='segment_id', + string='Segmentation 4', + domain=[('category', '=', 'segment_4')]) # Infos générales / Infos activité creation_origin_id = fields.Many2one( @@ -160,11 +180,6 @@ class ScopPartner(models.Model): domain=[('active', '=', True), ('is_company', '=', True), ('organization_subtype_id.name', '=', 'Incubateur')], on_delete='restrict') - prescriber_canal_id = fields.Many2one( - 'res.partner.prescriber.canal', - string='Canal de Prescription', - on_delete='restrict') - sigle = fields.Char("Sigle") # Partenaires bank_id = fields.Many2one( @@ -233,10 +248,6 @@ class ScopPartner(models.Model): ('organization_subtype_id', '=', 'DIRECCTE')], on_delete='restrict') last_update_status = fields.Date('Dernière mise à jour des statuts') - ministry_list_ids = fields.One2many( - comodel_name='scop.ministry.list', - inverse_name='partner_id', - string='Liste Ministère') # Questionnaire questionnaire_ids = fields.One2many( @@ -289,16 +300,7 @@ class ScopPartner(models.Model): ('5y', 'Quinquennale'), ('5ys', "Quinquennale séquencée")], string='Périodicité de la révision') - revision_format_id = fields.Many2one( - 'scop.revision.format', - string='Format de révision', - on_delete='restrict') - revision_last_date = fields.Date("Dernier exercice révisé", - track_visibility='onchange') - revision_next_date = fields.Date("Prochain exercice révisable", - track_visibility='onchange') - revision_staff = fields.Integer(string='Effectif révision', - track_visibility='onchange') + revision_next_date = fields.Integer("Prochain exercice révisable") revision_ids = fields.One2many( comodel_name='scop.revision', @@ -408,8 +410,14 @@ class ScopPartner(models.Model): @api.multi def write(self, vals): result = super(ScopPartner, self).write(vals) - if vals.get('project_status') == '6_suivi': - for partner in self: + for partner in self: + if not partner.is_company and partner.type == 'contact': + if (not partner.email and not partner.phone + and not partner.mobile): + raise ValidationError( + "Vous devez saisir au moins un e-mail ou un téléphone\ + pour " + partner.name) + if vals.get('project_status') == '6_suivi': self._create_period(partner) return result @@ -474,21 +482,6 @@ class ScopPartner(models.Model): return True -class ScopPartnerCategory(models.Model): - _inherit = "res.partner.category" - - def _default_ur(self): - return self.env['res.company']._ur_default_get() - - id_riga = fields.Integer("ID RIGA") - ur_id = fields.Many2one( - 'union.regionale', - string='Union Régionale', - index=True, - on_delete='restrict', - default=_default_ur) - - class ResPartneCertification(models.Model): _name = "res.partner.certification" _description = "Certification" @@ -541,6 +534,13 @@ class ResPartnerCreationOrigin(models.Model): return True +class ResPartnerDissolutionReason(models.Model): + _name = "res.partner.dissolution.reason" + _description = "Dissolution Reason" + + name = fields.Char('Dissolution Reason') + + class ResPartnerMandate(models.Model): _name = "res.partner.mandate" _description = "Mandat" @@ -577,22 +577,35 @@ class ResPartnerOrganizationType(models.Model): return True -class ResPartnerDissolutionReason(models.Model): - _name = "res.partner.dissolution.reason" - _description = "Dissolution Reason" - - name = fields.Char('Dissolution Reason') - - -class ResPartnerPrescriberCanal(models.Model): - _name = "res.partner.prescriber.canal" - _description = "Prescriber Canal" - - name = fields.Char('Prescriber Canal') - - class ResPartnerRgpdOrigin(models.Model): _name = "res.partner.rgpd.origin" _description = "Origin" name = fields.Char('Origin') + + +class ResPartnerSegment(models.Model): + _name = "res.partner.segment" + _description = "Segments" + _rec_name = 'name' + _order = 'ur_id, category, name' + + def _default_ur(self): + return self.env['res.company']._ur_default_get() + + name = fields.Char('Origine / Sous-Origine', index=True, required=True) + color = fields.Integer(string='ID Couleur') + category = fields.Selection( + [('segment_1', "Segment 1"), + ('segment_2', 'Segment 2'), + ('segment_3', "Segment 3"), + ('segment_4', "Segment 4")], + string='Type de segment', + index=True) + id_riga = fields.Integer("ID RIGA") + ur_id = fields.Many2one( + 'union.regionale', + string='Union Régionale', + index=True, + on_delete='restrict', + default=_default_ur) diff --git a/models/scop_revision.py b/models/scop_revision.py index 277536279fd90cf4303b46cb70171bacd4d2aedf..4b4ef911578e5a3930f9905e6430490fd21fc7a7 100644 --- a/models/scop_revision.py +++ b/models/scop_revision.py @@ -7,6 +7,7 @@ from odoo import models, fields class ScopRevision(models.Model): _name = "scop.revision" _description = "Revision" + _order = 'partner_id, date' partner_id = fields.Many2one( comodel_name='res.partner', @@ -15,15 +16,22 @@ class ScopRevision(models.Model): ondelete='restrict', index=True) date = fields.Date("Date de révision", index=True) delegate_id = fields.Many2one( - 'res.partner', - string='Délégué de révision', - domain=[('user_ids', '>', 0)], - ondelete='restrict') - company_id = fields.Many2one( - 'res.partner', - string='Organisme de révision', - domain=[('is_company', '=', True)], + 'res.users', + string='Réviseur', ondelete='restrict') + revision_result_year = fields.Integer("Exercice révisé") + revision_staff = fields.Integer("Effectif") + revision_format_id = fields.Many2one( + 'scop.revision.format', + string='Format de révision', + on_delete='restrict') + revision_followup = fields.Selection( + [('ras', "RAS"), + ('remarks', 'Simples Remarques et Observations'), + ('reserve', "Réserves"), + ('corrections', 'Mesures Correctives'), + ('demeure', 'Mise en demeure')], + string='Suivi après révision') note = fields.Text("Commentaire") diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv index 56696cb1b67680546f6059bee2febe109ab6b9cb..057b85d752ec142089f43ede8198cb85dedc2430 100644 --- a/security/ir.model.access.csv +++ b/security/ir.model.access.csv @@ -1,30 +1,60 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_liasse_fiscale_group_user,access.liasse.fiscale.group.user,model_scop_liasse_fiscale,base.group_user,1,1,1,1 -access_contribution_group_user,access.contribution.group.user,model_scop_contribution,base.group_user,1,1,1,1 -access_financial_tools_group_user,access.financial.tools.group.user,model_scop_financial_tools,base.group_user,1,1,1,1 -access_revision_group_user,access.revision.group.user,model_scop_revision,base.group_user,1,1,1,1 -access_questionnaire_group_user,access.questionnaire.group.user,model_scop_questionnaire,base.group_user,1,1,1,1 -access_res_partner_dissolution_reason,access_res_partner_dissolution_reason,model_res_partner_dissolution_reason,base.group_user,1,1,1,1 -access_res_partner_organization_type,access_res_partner_organization_type,model_res_partner_organization_type,base.group_user,1,1,1,1 -access_res_partner_cooperative_form,access_res_partner_cooperative_form,model_res_partner_cooperative_form,base.group_user,1,1,1,1 -access_res_partner_certification,access_res_partner_certification,model_res_partner_certification,base.group_user,1,1,1,1 -access_res_partner_creation_origin,access_res_partner_creation_origin,model_res_partner_creation_origin,base.group_user,1,1,1,1 -access_res_partner_rgpd_origin,access_res_partner_rgpd_origin,model_res_partner_rgpd_origin,base.group_user,1,1,1,1 -access_res_partner_newsletter_subscription,access_res_partner_newsletter_subscription,model_res_partner_newsletter_subscription,base.group_user,1,1,1,1 -access_res_partner_newsletter,access_res_partner_newsletter,model_res_partner_newsletter,base.group_user,1,1,1,1 -access_scop_contribution_type,access_scop_contribution_type,model_scop_contribution_type,base.group_user,1,1,1,1 -access_scop_financial_tools_type,access_scop_financial_tools_type,model_scop_financial_tools_type,base.group_user,1,1,1,1 -access_scop_financial_intervention_type,access_scop_financial_intervention_type,model_scop_financial_intervention_type,base.group_user,1,1,1,1 -access_scop_financial_category,access_scop_financial_category,model_scop_financial_category,base.group_user,1,1,1,1 -access_scop_membership_period,access_scop_membership_period,model_scop_membership_period,base.group_user,1,1,1,1 -access_scop_membership_type,access_scop_membership_type,model_scop_membership_type,base.group_user,1,1,1,1 -access_scop_membership_reason_end,access_scop_membership_reason_end,model_scop_membership_reason_end,base.group_user,1,1,1,1 -access_scop_revision_format,access_scop_revision_format,model_scop_revision_format,base.group_user,1,1,1,1 -access_res_partner_prescriber_canal,access_res_partner_prescriber_canal,model_res_partner_prescriber_canal,base.group_user,1,1,1,1 -access_scop_period,access_scop_period,model_scop_period,base.group_user,1,1,1,1 -access_union_regionale,access_union_regionale,model_union_regionale,base.group_user,1,1,1,1 -access_res_partner_company_type,access_res_partner_company_type,model_res_partner_company_type,base.group_user,1,1,1,1 -access_scop_liasse_fiscale_type,access_scop_liasse_fiscale_type,model_scop_liasse_fiscale_type,base.group_user,1,1,1,1 -access_scop_questionnaire_type,access_scop_questionnaire_type,model_scop_questionnaire_type,base.group_user,1,1,1,1 -access_scop_liasse_fiscale_source,access_scop_liasse_fiscale_source,model_scop_liasse_fiscale_source,base.group_user,1,1,1,1 -access_res_partner_mandate,access_res_partner_mandate,model_res_partner_mandate,base.group_user,1,1,1,1 +access_liasse_fiscale_group_user,access_liasse_fiscale_group_user,model_scop_liasse_fiscale,base.group_user,1,0,0,0 +access_contribution_group_user,access_contribution_group_user,model_scop_contribution,base.group_user,1,0,0,0 +access_financial_tools_group_user,access_financial_tools_group_user,model_scop_financial_tools,base.group_user,1,0,0,0 +access_revision_group_user,access_revision_group_user,model_scop_revision,base.group_user,1,0,0,0 +access_questionnaire_group_user,access_questionnaire_group_user,model_scop_questionnaire,base.group_user,1,0,0,0 +access_res_partner_dissolution_reason,access_res_partner_dissolution_reason,model_res_partner_dissolution_reason,base.group_user,1,0,0,0 +access_res_partner_organization_type,access_res_partner_organization_type,model_res_partner_organization_type,base.group_user,1,0,0,0 +access_res_partner_cooperative_form,access_res_partner_cooperative_form,model_res_partner_cooperative_form,base.group_user,1,0,0,0 +access_res_partner_certification,access_res_partner_certification,model_res_partner_certification,base.group_user,1,0,0,0 +access_res_partner_creation_origin,access_res_partner_creation_origin,model_res_partner_creation_origin,base.group_user,1,0,0,0 +access_res_partner_rgpd_origin,access_res_partner_rgpd_origin,model_res_partner_rgpd_origin,base.group_user,1,0,0,0 +access_res_partner_newsletter_subscription,access_res_partner_newsletter_subscription,model_res_partner_newsletter_subscription,base.group_user,1,0,0,0 +access_res_partner_newsletter,access_res_partner_newsletter,model_res_partner_newsletter,base.group_user,1,0,0,0 +access_scop_contribution_type,access_scop_contribution_type,model_scop_contribution_type,base.group_user,1,0,0,0 +access_scop_financial_tools_type,access_scop_financial_tools_type,model_scop_financial_tools_type,base.group_user,1,0,0,0 +access_scop_financial_intervention_type,access_scop_financial_intervention_type,model_scop_financial_intervention_type,base.group_user,1,0,0,0 +access_scop_financial_category,access_scop_financial_category,model_scop_financial_category,base.group_user,1,0,0,0 +access_scop_membership_period,access_scop_membership_period,model_scop_membership_period,base.group_user,1,0,0,0 +access_scop_membership_type,access_scop_membership_type,model_scop_membership_type,base.group_user,1,0,0,0 +access_scop_membership_reason_end,access_scop_membership_reason_end,model_scop_membership_reason_end,base.group_user,1,0,0,0 +access_scop_revision_format,access_scop_revision_format,model_scop_revision_format,base.group_user,1,0,0,0 +access_scop_period,access_scop_period,model_scop_period,base.group_user,1,0,0,0 +access_union_regionale,access_union_regionale,model_union_regionale,base.group_user,1,0,0,0 +access_res_partner_company_type,access_res_partner_company_type,model_res_partner_company_type,base.group_user,1,0,0,0 +access_scop_liasse_fiscale_type,access_scop_liasse_fiscale_type,model_scop_liasse_fiscale_type,base.group_user,1,0,0,0 +access_scop_questionnaire_type,access_scop_questionnaire_type,model_scop_questionnaire_type,base.group_user,1,0,0,0 +access_scop_liasse_fiscale_source,access_scop_liasse_fiscale_source,model_scop_liasse_fiscale_source,base.group_user,1,0,0,0 +access_res_partner_mandate,access_res_partner_mandate,model_res_partner_mandate,base.group_user,1,0,0,0 +access_res_partner_segment,access_res_partner_segment,model_res_partner_segment,base.group_user,1,0,0,0 +admin_liasse_fiscale_group_user,access_liasse_fiscale_group_user,model_scop_liasse_fiscale,group_cg_list_modif,1,1,1,1 +admin_contribution_group_user,access_contribution_group_user,model_scop_contribution,group_cg_list_modif,1,1,1,1 +admin_financial_tools_group_user,access_financial_tools_group_user,model_scop_financial_tools,group_cg_list_modif,1,1,1,1 +admin_revision_group_user,access_revision_group_user,model_scop_revision,group_cg_list_modif,1,1,1,1 +admin_questionnaire_group_user,access_questionnaire_group_user,model_scop_questionnaire,group_cg_list_modif,1,1,1,1 +admin_res_partner_dissolution_reason,admin_res_partner_dissolution_reason,model_res_partner_dissolution_reason,group_cg_list_modif,1,1,1,1 +admin_res_partner_organization_type,admin_res_partner_organization_type,model_res_partner_organization_type,group_cg_list_modif,1,1,1,1 +admin_res_partner_cooperative_form,admin_res_partner_cooperative_form,model_res_partner_cooperative_form,group_cg_list_modif,1,1,1,1 +admin_res_partner_certification,admin_res_partner_certification,model_res_partner_certification,group_cg_list_modif,1,1,1,1 +admin_res_partner_creation_origin,admin_res_partner_creation_origin,model_res_partner_creation_origin,group_cg_list_modif,1,1,1,1 +admin_res_partner_rgpd_origin,admin_res_partner_rgpd_origin,model_res_partner_rgpd_origin,group_cg_list_modif,1,1,1,1 +admin_res_partner_newsletter_subscription,admin_res_partner_newsletter_subscription,model_res_partner_newsletter_subscription,group_cg_list_modif,1,1,1,1 +admin_res_partner_newsletter,admin_res_partner_newsletter,model_res_partner_newsletter,group_cg_list_modif,1,1,1,1 +admin_scop_contribution_type,admin_scop_contribution_type,model_scop_contribution_type,group_cg_list_modif,1,1,1,1 +admin_scop_financial_tools_type,admin_scop_financial_tools_type,model_scop_financial_tools_type,group_cg_list_modif,1,1,1,1 +admin_scop_financial_intervention_type,admin_scop_financial_intervention_type,model_scop_financial_intervention_type,group_cg_list_modif,1,1,1,1 +admin_scop_financial_category,admin_scop_financial_category,model_scop_financial_category,group_cg_list_modif,1,1,1,1 +admin_scop_membership_period,admin_scop_membership_period,model_scop_membership_period,group_cg_list_modif,1,1,1,1 +admin_scop_membership_type,admin_scop_membership_type,model_scop_membership_type,group_cg_list_modif,1,1,1,1 +admin_scop_membership_reason_end,admin_scop_membership_reason_end,model_scop_membership_reason_end,group_cg_list_modif,1,1,1,1 +admin_scop_revision_format,admin_scop_revision_format,model_scop_revision_format,group_cg_list_modif,1,1,1,1 +admin_scop_period,admin_scop_period,model_scop_period,group_cg_list_modif,1,1,1,1 +admin_union_regionale,admin_union_regionale,model_union_regionale,group_cg_list_modif,1,1,1,1 +admin_res_partner_company_type,admin_res_partner_company_type,model_res_partner_company_type,group_cg_list_modif,1,1,1,1 +admin_scop_liasse_fiscale_type,admin_scop_liasse_fiscale_type,model_scop_liasse_fiscale_type,group_cg_list_modif,1,1,1,1 +admin_scop_questionnaire_type,admin_scop_questionnaire_type,model_scop_questionnaire_type,group_cg_list_modif,1,1,1,1 +admin_scop_liasse_fiscale_source,admin_scop_liasse_fiscale_source,model_scop_liasse_fiscale_source,group_cg_list_modif,1,1,1,1 +admin_res_partner_mandate,admin_res_partner_mandate,model_res_partner_mandate,group_cg_list_modif,1,1,1,1 +admin_res_partner_segment,admin_res_partner_segment,model_res_partner_segment,group_cg_list_modif,1,1,1,1 +admin_ur_res_partner_segment,admin_ur_res_partner_segment,model_res_partner_segment,group_ur_list_modif,1,1,1,1 \ No newline at end of file diff --git a/security/security_rules.xml b/security/security_rules.xml index 96cb3e0b5b501256e3dbf3eb6da252298ba5e607..ee46a325ea7352303dbe56b50d4106087d954255 100644 --- a/security/security_rules.xml +++ b/security/security_rules.xml @@ -3,7 +3,6 @@ License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> <odoo> - <data noupdate="1"> <record id="res_partner_rule_ur" model="ir.rule"> <field name="name">partner rule per ur</field> @@ -14,5 +13,23 @@ <field name="perm_create" eval="True"/> <field name="perm_unlink" eval="False"/> </record> + + <record id="res_partner_segment_rule_ur" model="ir.rule"> + <field name="name">segment rule per ur</field> + <field name="model_id" ref="model_res_partner_segment"/> + <field name="domain_force">[('ur_id','=',user.company_id.ur_id.id)]</field> + <field name="perm_read" eval="True"/> + <field name="perm_write" eval="True"/> + <field name="perm_create" eval="True"/> + <field name="perm_unlink" eval="True"/> + </record> + + <record id="group_ur_list_modif" model="res.groups"> + <field name="name">Modifier les listes spécifiques de mon UR</field> + </record> + + <record id="group_cg_list_modif" model="res.groups"> + <field name="name">Modifier les listes génériques</field> + </record> </data> </odoo> diff --git a/views/res_partner.xml b/views/res_partner.xml index 0dbe2cfb79828f9e615765d2b2048aeb3fe1d7fa..a7c799fd700ee47a4f4af3f8ba5a1dd9daaafd57 100644 --- a/views/res_partner.xml +++ b/views/res_partner.xml @@ -4,64 +4,30 @@ <odoo> <data> - <record id="view_res_partner_filter_persons" model="ir.ui.view"> - <field name="name">res.partner.select.persons</field> - <field name="model">res.partner</field> - <field name="arch" type="xml"> - <search string="Search Partner"> - <field name="name" filter_domain="['|','|',('display_name','ilike',self),('ref','=',self),('email','ilike',self)]"/> - <field name="parent_id" domain="[('is_company','=',True)]" operator="child_of"/> - <filter name="filter_my_partners" help="Mes Contacts" domain="[('user_id','=',uid)]"/> - <separator/> - <filter string="Mon UR" name="my_ur" domain="[('current_user_ur_id', '=', 'ur_id')]"/> - <separator/> - <filter string="Archivés" name="inactive" domain="[('active','=',False)]"/> - <separator/> - <filter string="Mes Activités" name="activities_my" domain="[('activity_ids.user_id', '=', uid)]"/> - <separator/> - <filter string="Activités en retard" name="activities_overdue" domain="[('activity_ids.date_deadline', '<', context_today().strftime('%Y-%m-%d'))]" help="Show all records which has next action date is before today"/> - <filter string="Activités du Jour" name="activities_today" domain="[('activity_ids.date_deadline', '=', context_today().strftime('%Y-%m-%d'))]"/> - <filter string="Activités futures" name="activities_upcoming_all" domain="[('activity_ids.date_deadline', '>', context_today().strftime('%Y-%m-%d'))]"/> - <separator/> - <field name="category_id" string="Tag" filter_domain="[('category_id','ilike', self)]"/> - <field name="user_id"/> - <field name="phone" filter_domain="['|',('phone','ilike',self),('mobile','=',self)]"/> - <group expand="0" name="group_by" string="Group By"> - <filter name="salesperson" string="Salesperson" domain="[]" context="{'group_by' : 'user_id'}"/> - <filter name="group_company" string="Company" context="{'group_by': 'parent_id'}"/> - <filter name="group_country" string="Country" context="{'group_by': 'country_id'}"/> - </group> - </search> - </field> - </record> - <record id="view_res_partner_filter_partners" model="ir.ui.view"> <field name="name">res.partner.select.partners</field> <field name="model">res.partner</field> <field name="arch" type="xml"> - <search string="Search Partner"> - <field name="name" filter_domain="['|','|',('display_name','ilike',self),('ref','=',self),('email','ilike',self)]"/> - <field name="parent_id" domain="[('is_company','=',True)]" operator="child_of"/> - <filter name="filter_my_partners" help="Mes Contacts" domain="[('user_id','=',uid)]"/> - <separator/> - <filter string="Mon UR" name="my_ur" domain="[('current_user_ur_id', '=', 'ur_id')]"/> - <separator/> - <filter string="Archivés" name="inactive" domain="[('active','=',False)]"/> - <separator/> + <search string="Recherche Contact"> + <field name="name" filter_domain="['|', '|', ('display_name', 'ilike', self), ('ref', '=', self), ('email', 'ilike', self)]"/> + <field name="parent_id" domain="[('is_company','=',True)]" operator="child_of"/> + <field name="phone" filter_domain="['|',('phone','ilike',self),('mobile','ilike',self)]"/> + <field name="segment_1_id" string="Segmentation" filter_domain="['|', '|', '|', ('segment_1_id','ilike', self), ('segment_2_id','ilike', self), ('segment_3_id','ilike', self), ('segment_4_id','ilike', self)]"/> + <filter string="Mon UR" name="my_ur" domain="[('current_user_ur_id', '=', 'ur_id')]"/> + <separator/> + <filter string="Archivés" name="inactive" domain="[('active','=',False)]"/> + <separator/> <filter string="Mes Activités" name="activities_my" domain="[('activity_ids.user_id', '=', uid)]"/> <separator/> <filter string="Activités en retard" name="activities_overdue" domain="[('activity_ids.date_deadline', '<', context_today().strftime('%Y-%m-%d'))]" help="Show all records which has next action date is before today"/> <filter string="Activités du Jour" name="activities_today" domain="[('activity_ids.date_deadline', '=', context_today().strftime('%Y-%m-%d'))]"/> <filter string="Activités futures" name="activities_upcoming_all" domain="[('activity_ids.date_deadline', '>', context_today().strftime('%Y-%m-%d'))]"/> <separator/> - <field name="category_id" string="Tag" filter_domain="[('category_id','ilike', self)]"/> - <field name="user_id"/> - <field name="phone" filter_domain="['|',('phone','ilike',self),('mobile','=',self)]"/> - <group expand="0" name="group_by" string="Group By"> - <filter name="salesperson" string="Salesperson" domain="[]" context="{'group_by' : 'user_id'}"/> - <filter name="group_company" string="Company" context="{'group_by': 'parent_id'}"/> - <filter name="group_country" string="Country" context="{'group_by': 'country_id'}"/> - </group> + <group expand="0" name="group_by" string="Group By"> + <filter name="naf_id" string="Code NAF" domain="[]" context="{'group_by' : 'naf_id'}"/> + <filter name="group_company" string="Structure" context="{'group_by': 'parent_id'}"/> + <filter name="group_country" string="Pays" context="{'group_by': 'country_id'}"/> + </group> </search> </field> </record> @@ -92,7 +58,10 @@ <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="Segmentation" 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)]}" domain="[('ur_id', '=', ur_id)]"/> + <field name="segment_1_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}" domain="[('category', '=', 'segment_1'),('ur_id', '=', ur_id)]"/> + <field name="segment_2_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}" domain="[('category', '=', 'segment_2'),('ur_id', '=', ur_id)]"/> + <field name="segment_3_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}" domain="[('category', '=', 'segment_3'),('ur_id', '=', ur_id)]"/> + <field name="segment_4_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}" domain="[('category', '=', 'segment_4'),('ur_id', '=', ur_id)]"/> <field name="organization_type_id" attrs="{'invisible': [('is_company','=', False)]}" options="{'no_create': True}"/> <field name="organization_subtype_id" attrs="{'invisible': [('is_company','=', False)]}" domain="[('parent_id', '=', organization_type_id), ('child_ids', '=', False)]" options="{'no_create': True}"/> </group> @@ -103,7 +72,10 @@ <field name="birthyear" attrs="{'invisible': [('is_company','=', True)]}"/> <field name="contact_origin_id" attrs="{'invisible': [('is_company','=', True)]}" options="{'no_create': True}"/> <field name="contact_legality" readonly="True" attrs="{'invisible': [('is_company','=', True)]}"/> - <field name="category_id" string="Segmentation" 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)]}" domain="[('ur_id', '=', ur_id)]"/> + <field name="segment_1_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}" domain="[('category', '=', 'segment_1'),('ur_id', '=', ur_id)]"/> + <field name="segment_2_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}" domain="[('category', '=', 'segment_2'),('ur_id', '=', ur_id)]"/> + <field name="segment_3_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}" domain="[('category', '=', 'segment_3'),('ur_id', '=', ur_id)]"/> + <field name="segment_4_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}" domain="[('category', '=', 'segment_4'),('ur_id', '=', ur_id)]"/> </group> </xpath> <xpath expr='//form/sheet/group' position="after"> @@ -131,17 +103,66 @@ </field> </record> + <record id="scop_person_tree_view" model="ir.ui.view"> + <field name="name">scop person tree view</field> + <field name="model">res.partner</field> + <field name="arch" type="xml"> + <tree string="Personnes"> + <field name="display_name"/> + <field name="mandate_id"/> + <field name="function"/> + <field name="phone"/> + <field name="mobile"/> + <field name="email"/> + <field name="ur_id"/> + </tree> + </field> + </record> + + <record id="scop_partner_tree_view" model="ir.ui.view"> + <field name="name">scop partner tree view</field> + <field name="model">res.partner</field> + <field name="arch" type="xml"> + <tree string="Partenaires"> + <field name="display_name"/> + <field name="zip"/> + <field name="city"/> + <field name="organization_subtype_id"/> + <field name="ur_id"/> + </tree> + </field> + </record> + + <record id="view_partner_form_firstname_scop" model="ir.ui.view"> + <field name="name">Add firstname and surnames for CGScop</field> + <field name="model">res.partner</field> + <field name="inherit_id" ref="partner_firstname.view_partner_form_firstname"/> + <field name="arch" type="xml"> + <xpath expr="//field[@name='child_ids']/form//field[@name='name']" position="attributes"> + <attribute name="attrs">{'invisible': [('type','=', 'contact')]}</attribute> + <attribute name="required">1</attribute> + <attribute name="string">Nom</attribute> + </xpath> + <xpath expr="//field[@name='child_ids']/form//group/group[2]/div[hasclass('oe_edit_only')]" position="replace"/> + <xpath expr="//field[@name='child_ids']/form//field[@name='title']" position="after"> + <field name="firstname" string="Prénom" attrs="{'required': [('lastname', '=', False), ('type', '=', 'contact')], 'invisible': [('type','!=', 'contact')]}"/> + <field name="lastname" string="Nom" attrs="{'required': [('firstname', '=', False), ('type', '=', 'contact')], 'invisible': [('type','!=', 'contact')]}"/> + </xpath> + </field> + </record> + + <record id="action_not_companies_only" model="ir.actions.act_window"> <field name="name">Personnes</field> <field name="type">ir.actions.act_window</field> <field name="res_model">res.partner</field> <field name="view_type">form</field> <field name="view_mode">tree,form</field> - <field name="search_view_id" ref="view_res_partner_filter_persons"/> + <field name="search_view_id" ref="view_res_partner_filter_partners"/> <field name="domain" eval="[('is_company', '=', False), ('type', '=', 'contact')]"/> <field name="context">{'search_default_my_ur': 1, 'default_is_company': False, 'default_company_type': 'person'}</field> <field name="view_ids" eval="[(5, 0, 0), - (0, 0, {'view_mode': 'tree', 'view_id': ref('base.view_partner_tree')}), + (0, 0, {'view_mode': 'tree', 'view_id': ref('scop_person_tree_view')}), (0, 0, {'view_mode': 'form', 'view_id': ref('base.view_partner_form')})]"/> </record> @@ -156,7 +177,7 @@ <field name="domain" eval="[('is_company', '=', True), ('is_cooperative', '=', False)]"/> <field name="context">{'search_default_my_ur': 1, 'default_is_company': True, 'default_company_type': 'company'}</field> <field name="view_ids" eval="[(5, 0, 0), - (0, 0, {'view_mode': 'tree', 'view_id': ref('base.view_partner_tree')}), + (0, 0, {'view_mode': 'tree', 'view_id': ref('scop_partner_tree_view')}), (0, 0, {'view_mode': 'form', 'view_id': ref('base.view_partner_form')})]"/> </record> diff --git a/views/res_partner_cooperative.xml b/views/res_partner_cooperative.xml index 7100f3cfe2e611f15bf48db8d384508f47947fb2..c8592bbf640fe096ac71e74f3dd29225822de49f 100644 --- a/views/res_partner_cooperative.xml +++ b/views/res_partner_cooperative.xml @@ -4,43 +4,86 @@ <odoo> <data> - <record id="res_partner_view_search_inherit_scop" model="ir.ui.view"> - <field name="name">res.partner.view.search.inherit.scop</field> + <record id="scop_partner_view_search" model="ir.ui.view"> + <field name="name">scop.partner.view.search</field> <field name="model">res.partner</field> - <field name="inherit_id" ref="base.view_res_partner_filter"/> <field name="arch" type="xml"> - <filter name="type_person" position="replace"> - </filter> - <filter name="type_company" position="replace"> - <filter string="Mon UR" name="my_ur" domain="[('current_user_ur_id', '=', 'ur_id')]"/> - </filter> - <filter name="customer" position="replace"></filter> - <filter name="supplier" position="replace"></filter> + <search string="Recherche Organisme"> + <field name="name" filter_domain="['|', '|', ('display_name', 'ilike', self), ('ref', '=', self), ('email', 'ilike', self)]"/> + <field name="phone" filter_domain="['|',('phone','ilike',self),('mobile','=',self)]"/> + <field name="segment_1_id" string="Segmentation" filter_domain="['|', '|', '|', ('segment_1_id','ilike', self), ('segment_2_id','ilike', self), ('segment_3_id','ilike', self), ('segment_4_id','ilike', self)]"/> + <field name="followup_delegate_id" string="Délégué" filter_domain="['|', ('followup_delegate_id', 'ilike', self), ('creation_delegate_id', 'ilike', self)]"/> + <filter string="Mes organismes" name="my_partners" domain="['|', ('creation_delegate_id','=',uid), ('followup_delegate_id','=',uid)]"/> + <filter string="Mon UR" name="my_ur" domain="[('current_user_ur_id', '=', 'ur_id')]"/> + <separator/> + <filter string="Archivés" name="inactive" domain="[('active','=',False)]"/> + <separator/> + <filter string="Mes Activités" name="activities_my" domain="[('activity_ids.user_id', '=', uid)]"/> + <separator/> + <filter string="Activités en retard" name="activities_overdue" domain="[('activity_ids.date_deadline', '<', context_today().strftime('%Y-%m-%d'))]" help="Show all records which has next action date is before today"/> + <filter string="Activités du Jour" name="activities_today" domain="[('activity_ids.date_deadline', '=', context_today().strftime('%Y-%m-%d'))]"/> + <filter string="Activités futures" name="activities_upcoming_all" domain="[('activity_ids.date_deadline', '>', context_today().strftime('%Y-%m-%d'))]"/> + <separator/> + <group expand="0" name="group_by" string="Group By"> + <filter name="project_status" string="Statut" domain="[]" context="{'group_by' : 'project_status'}"/> + <filter name="cooperative_form_id" string="Forme Coopérative" domain="[]" context="{'group_by' : 'cooperative_form_id'}"/> + <filter name="naf_id" string="Code NAF" domain="[]" context="{'group_by' : 'naf_id'}"/> + <filter name="group_company" string="Structure" context="{'group_by': 'parent_id'}"/> + <filter name="group_country" string="Pays" context="{'group_by': 'country_id'}"/> + </group> + </search> + </field> + </record> + + <record id="view_partner_prospect_tree" model="ir.ui.view"> + <field name="name">prospect.tree</field> + <field name="model">res.partner</field> + <field name="arch" type="xml"> + <tree string="Prospects"> + <field name="display_name" string="Raison Sociale"/> + <field name="cooperative_form_id"/> + <field name="project_status"/> + <field name="zip"/> + <field name="city"/> + <field name="creation_delegate_id"/> + <field name="ur_id"/> + </tree> </field> </record> <record id="view_partner_cooperative_tree" model="ir.ui.view"> <field name="name">cooperative.tree</field> <field name="model">res.partner</field> - <field eval="8" name="priority"/> + <field name="arch" type="xml"> + <tree string="Cooperatives"> + <field name="display_name" string="Raison Sociale"/> + <field name="cooperative_form_id"/> + <field name="naf_id"/> + <field name="zip"/> + <field name="city"/> + <field name="followup_delegate_id"/> + <field name="ur_id"/> + </tree> + </field> + </record> + + <record id="view_partner_organisme_tree" model="ir.ui.view"> + <field name="name">organisme.tree</field> + <field name="model">res.partner</field> <field name="arch" type="xml"> <tree string="Organismes"> - <field name="display_name" string="Name"/> - <field name="function" invisible="1"/> - <field name="phone"/> - <field name="email"/> - <field name="user_id" invisible="1"/> - <field name="is_company" invisible="1"/> - <field name="country_id" invisible="1"/> - <field name="parent_id" invisible="1"/> - <field name="active" invisible="1"/> + <field name="display_name" string="Raison Sociale"/> + <field name="cooperative_form_id"/> + <field name="naf_id"/> + <field name="zip"/> + <field name="city"/> + <field name="followup_delegate_id"/> + <field name="ur_id"/> <field name="project_status"/> </tree> </field> </record> - - <!-- KANBAN --> <record id="view_partner_cooperative_kanban" model="ir.ui.view"> <field name="name">cooperative.kanban</field> @@ -188,10 +231,13 @@ <group string="Suivi UR"> <field name="ur_id" required="True" options="{'no_create': True}"/> <field name="creation_delegate_id" widget="res_partner_many2one" - attrs="{'required':[('project_status','in',('3_accompagnement','4_adhesion', '5_cg', '6_suivi'))]}" options="{'no_create': True}"/> - <field name="followup_delegate_id" widget="res_partner_many2one" options="{'no_create': True}"/> + attrs="{'required':[('project_status','in',('3_accompagnement','4_adhesion', '5_cg', '6_suivi'))], 'invisible':[('project_status', '=', '6_suivi')]}" options="{'no_create': True}" domain="[('ur_id', '=', ur_id)]"/> + <field name="followup_delegate_id" widget="res_partner_many2one" options="{'no_create': True}" domain="[('active', '=', True),('ur_id', '=', ur_id)]"/> <field name="revision_person_id" widget="res_partner_many2one" readonly="True" options="{'no_create': True}"/> - <field name="category_id" string="Segmentation" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}" domain="[('ur_id', '=', ur_id)]"/> + <field name="segment_1_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}" domain="[('category', '=', 'segment_1'),('ur_id', '=', ur_id)]"/> + <field name="segment_2_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}" domain="[('category', '=', 'segment_2'),('ur_id', '=', ur_id)]"/> + <field name="segment_3_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}" domain="[('category', '=', 'segment_3'),('ur_id', '=', ur_id)]"/> + <field name="segment_4_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}" domain="[('category', '=', 'segment_4'),('ur_id', '=', ur_id)]"/> </group> <group string="Informations Activité"> <field name="creation_origin_id" required="True" options="{'no_create': True}"/> @@ -199,7 +245,7 @@ <field name="date_1st_sign" attrs="{'required':[('project_status','in',('4_adhesion', '5_cg', '6_suivi'))]}"/> <field name="registration_date" attrs="{'required':[('project_status','in',('4_adhesion', '5_cg', '6_suivi'))]}"/> <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'))]}" context="{'partner_category_display': 'short'}" options="{'no_create': True}"/> + <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_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="siren" readonly="1"/> @@ -210,7 +256,6 @@ <field name="seed_end" attrs="{'invisible': [('is_seed_scop', '!=', True)], 'required':[('project_status','in',('4_adhesion', '5_cg', '6_suivi')),('is_seed_scop', '=', True)]}"/> <field name="is_incubated" required="True"/> <field name="incubator_id" widget="res_partner_many2one" attrs="{'invisible': [('is_incubated', '!=', True)]}" options="{'no_create': True}"/> - <field name="prescriber_canal_id" widget="res_partner_many2one" options="{'no_create': True}"/> </group> </group> <notebook colspan="4"> @@ -248,15 +293,13 @@ <field name="ur_id"/> <templates> <t t-name="kanban-box"> - <div t-att-class="oe_kanban_global_click"> - <div class="oe_kanban_details"> - <field name="name"/> - <div t-if="record.mandate_id.raw_value"><field name="mandate_id"/></div> - <div t-if="record.function.raw_value"><field name="function"/></div> - <div t-if="record.email.raw_value"><field name="email" widget="email"/></div> - <div t-if="record.phone.raw_value">Téléphone: <field name="phone" widget="phone"/></div> - <div t-if="record.mobile.raw_value">Mobile: <field name="mobile" widget="phone"/></div> - </div> + <div class="oe_kanban_global_click oe_kanban_details"> + <field name="name"/> + <div t-if="record.mandate_id.raw_value"><field name="mandate_id"/></div> + <div t-if="record.function.raw_value"><field name="function"/></div> + <div t-if="record.email.raw_value"><field name="email" widget="email"/></div> + <div t-if="record.phone.raw_value">Téléphone: <field name="phone" widget="phone"/></div> + <div t-if="record.mobile.raw_value">Mobile: <field name="mobile" widget="phone"/></div> </div> </t> </templates> @@ -278,10 +321,10 @@ <field name="country_id"/> </group> <group> - <field name="lastname" string="Contact Name" attrs="{'required' : [('type', '=', 'contact')]}"/> - <field name="firstname" string="Contact Name" attrs="{'required' : [('type', '=', 'contact')]}"/> <field name="title" placeholder="Madame" attrs="{'invisible': [('type','!=', 'contact')]}"/> + <field name="firstname" string="Prénom" required="1"/> + <field name="lastname" string="Nom de famille" required="1"/> <field name="mandate_id" options="{'no_create': True}" attrs="{'invisible': [('type','!=', 'contact')]}" required="1"/> <field name="function" placeholder="Responsable des ventes" attrs="{'invisible': [('type','!=', 'contact')]}"/> @@ -332,23 +375,21 @@ <field name="ur_id"/> <templates> <t t-name="kanban-box"> - <div t-att-class="oe_kanban_global_click"> - <div class="oe_kanban_details"> - <field name="name"/> - <div t-if="record.function.raw_value"><field name="function"/></div> - <div t-if="record.email.raw_value"><field name="email" widget="email"/></div> - <div t-if="record.type.raw_value != 'contact'"> - <div> - <field name="zip"/> - <field name="city"/> - <field name="cedex"/> - </div> - <field t-if="record.state_id.raw_value" name="state_id"/> - <field name="country_id"/> + <div class="oe_kanban_global_click oe_kanban_details"> + <field name="name"/> + <div t-if="record.function.raw_value"><field name="function"/></div> + <div t-if="record.email.raw_value"><field name="email" widget="email"/></div> + <div t-if="record.type.raw_value != 'contact'"> + <div> + <field name="zip"/> + <field name="city"/> + <field name="cedex"/> </div> - <div t-if="record.phone.raw_value">Phone: <field name="phone"/></div> - <div t-if="record.mobile.raw_value">Mobile: <field name="mobile"/></div> + <field t-if="record.state_id.raw_value" name="state_id"/> + <field name="country_id"/> </div> + <div t-if="record.phone.raw_value">Phone: <field name="phone"/></div> + <div t-if="record.mobile.raw_value">Mobile: <field name="mobile"/></div> </div> </t> </templates> @@ -386,11 +427,12 @@ </div> </group> <group> - <field name="lastname" string="Nom de famille" attrs="{'required' : [('type', '=', 'contact')]}"/> - <field name="firstname" string="Prénom" attrs="{'required' : [('type', '=', 'contact')]}"/> - <field name="title" placeholder="e.g. Madame" + <field name="title" placeholder="Madame" attrs="{'invisible': [('type','!=', 'contact')]}"/> - <field name="mandate_id" options="{'no_create': True}" attrs="{'invisible': [('type','!=', 'contact')]}" required="1"/> + <field name="name" string="Nom" attrs="{'required' : [('type', '!=', 'contact')], 'invisible' : [('type', '=', 'contact')]}"/> + <field name="firstname" string="Prénom" attrs="{'required' : [('type', '=', 'contact')], 'invisible' : [('type', '!=', 'contact')]}"/> + <field name="lastname" string="Nom de famille" attrs="{'required' : [('type', '=', 'contact')], 'invisible' : [('type', '!=', 'contact')]}"/> + <field name="mandate_id" options="{'no_create': True}" attrs="{'invisible': [('type','!=', 'contact')]}"/> <field name="function" placeholder="e.g. Directeur des Ventes" attrs="{'invisible': [('type','!=', 'contact')]}"/> <field name="email"/> @@ -431,13 +473,20 @@ </group> <group> <field name="revision_type"/> - <field name="revision_format_id" options="{'no_create': True}"/> - <field name="revision_staff"/> - <field name="revision_last_date"/> <field name="revision_next_date"/> </group> </group> - <field name="revision_ids" widget="one2many"/> + <field name="revision_ids" widget="one2many"> + <tree string="Révisions" editable="top"> + <field name="date"/> + <field name="delegate_id"/> + <field name="revision_result_year"/> + <field name="revision_staff"/> + <field name="revision_format_id" options="{'no_create': True}"/> + <field name="revision_followup"/> + <field name="note"/> + </tree> + </field> </page> <page name="scop_periods" string="Historique" attrs="{'invisible': [('project_status', '!=', '6_suivi')]}"> <field name="scop_period_ids" mode="tree" @@ -553,11 +602,11 @@ <field name="res_model">res.partner</field> <field name="view_type">form</field> <field name="view_mode">kanban,tree,form</field> - <field name="search_view_id" ref="cgscop_partner.res_partner_view_search_inherit_scop"/> + <field name="search_view_id" ref="scop_partner_view_search"/> <field name="domain" eval="[('is_cooperative', '=', True),('project_status','in',('1_information','2_pre-diagnostic','3_accompagnement','4_adhesion','5_cg'))]"/> <field name="view_ids" eval="[(5, 0, 0), (0, 0, {'view_mode': 'kanban', 'view_id': ref('view_partner_cooperative_kanban')}), - (0, 0, {'view_mode': 'tree', 'view_id': ref('view_partner_cooperative_tree')}), + (0, 0, {'view_mode': 'tree', 'view_id': ref('view_partner_prospect_tree')}), (0, 0, {'view_mode': 'form', 'view_id': ref('view_partner_cooperative_form')})]"/> <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> @@ -568,10 +617,10 @@ <field name="res_model">res.partner</field> <field name="view_type">form</field> <field name="view_mode">tree,form</field> - <field name="search_view_id" ref="cgscop_partner.res_partner_view_search_inherit_scop"/> + <field name="search_view_id" ref="scop_partner_view_search"/> <field name="domain" eval="[('is_cooperative', '=', True),('project_status','=','6_suivi')]"/> <field name="view_ids" eval="[(5, 0, 0), - (0, 0, {'view_mode': 'tree', 'view_id': ref('base.view_partner_tree')}), + (0, 0, {'view_mode': 'tree', 'view_id': ref('view_partner_cooperative_tree')}), (0, 0, {'view_mode': 'form', 'view_id': ref('view_partner_cooperative_form')})]"/> <field name="context">{'search_default_my_ur': True, 'default_is_company': True, 'default_is_cooperative': True, 'default_company_type': 'company', 'default_project_status': '6_suivi'}</field> </record> @@ -582,10 +631,10 @@ <field name="res_model">res.partner</field> <field name="view_type">form</field> <field name="view_mode">tree,form</field> - <field name="search_view_id" ref="cgscop_partner.res_partner_view_search_inherit_scop"/> + <field name="search_view_id" ref="scop_partner_view_search"/> <field name="domain" eval="[('is_cooperative', '=', True)]"/> <field name="view_ids" eval="[(5, 0, 0), - (0, 0, {'view_mode': 'tree', 'view_id': ref('view_partner_cooperative_tree')}), + (0, 0, {'view_mode': 'tree', 'view_id': ref('view_partner_organisme_tree')}), (0, 0, {'view_mode': 'form', 'view_id': ref('view_partner_cooperative_form')})]"/> <field name="context">{'default_is_company': True, 'search_default_my_ur': True, 'default_is_cooperative': True, 'default_company_type': 'company', 'default_project_status': '1_information'}</field> </record> diff --git a/views/scop_config_lists_views.xml b/views/scop_config_lists_views.xml index f806bca7989d4874ac39a75f0769b7dfeec7e300..22e96939bbeb9484a5ff22ae6d3c7b76c150a04b 100644 --- a/views/scop_config_lists_views.xml +++ b/views/scop_config_lists_views.xml @@ -194,7 +194,7 @@ <!-- MENUS --> <menuitem id="menu_scop_lists" name="SCOP Lists" - parent="contacts.res_partner_menu_config" sequence="30"/> + parent="contacts.res_partner_menu_config" sequence="30" groups="group_cg_list_modif"/> <menuitem id="menu_scop_membership_reason_end" parent="menu_scop_lists" diff --git a/views/scop_config_views.xml b/views/scop_config_views.xml index 491766622e8f1b3006264f117c34b9a0c4c602a6..8d0826da0f4d94ea128c6fa8f88d774b89f55fea 100644 --- a/views/scop_config_views.xml +++ b/views/scop_config_views.xml @@ -16,22 +16,10 @@ </field> </record> - <record id="view_res_partner_dissolution_reason_form" model="ir.ui.view"> - <field name="name">res.partner.dissolution.reason.form</field> - <field name="model">res.partner.dissolution.reason</field> - <field name="arch" type="xml"> - <form string="Dissolution Reason"> - <group name="main"> - <field name="name"/> - </group> - </form> - </field> - </record> - <record id="action_view_res_partner_dissolution_reason_tree" model="ir.actions.act_window"> <field name="name">Dissolution Reasons</field> <field name="res_model">res.partner.dissolution.reason</field> - <field name="view_mode">tree,form</field> + <field name="view_mode">tree</field> <field name="help">Display and manage the list of Dissolution Reasons.</field> </record> @@ -87,22 +75,10 @@ </field> </record> - <record id="view_res_partner_cooperative_form_form" model="ir.ui.view"> - <field name="name">res.partner.cooperative.form.form</field> - <field name="model">res.partner.cooperative.form</field> - <field name="arch" type="xml"> - <form string="Cooperative Form"> - <group name="main"> - <field name="name"/> - </group> - </form> - </field> - </record> - <record id="action_view_res_partner_cooperative_form_tree" model="ir.actions.act_window"> <field name="name">Cooperative Forms</field> <field name="res_model">res.partner.cooperative.form</field> - <field name="view_mode">tree,form</field> + <field name="view_mode">tree</field> <field name="help">Display and manage the list of Cooperative Forms.</field> </record> @@ -118,29 +94,17 @@ </field> </record> - <record id="view_res_partner_certification_form" model="ir.ui.view"> - <field name="name">res.partner.certification.form</field> - <field name="model">res.partner.certification</field> - <field name="arch" type="xml"> - <form string="Certification"> - <group name="main"> - <field name="name"/> - </group> - </form> - </field> - </record> - <record id="action_view_res_partner_certification_tree" model="ir.actions.act_window"> <field name="name">Certifications</field> <field name="res_model">res.partner.certification</field> - <field name="view_mode">tree,form</field> + <field name="view_mode">tree</field> <field name="help">Display and manage the list of Certifications.</field> </record> <!-- Company Type --> <record model="ir.ui.view" id="res_partner_company_type_form_view"> - <field name="name">res.partner.company.type.form (in in cgscop_partner)</field> + <field name="name">res.partner.company.type.form (in cgscop_partner)</field> <field name="model">res.partner.company.type</field> <field name="inherit_id" ref="partner_company_type.res_partner_company_type_form_view"/> <field name="arch" type="xml"> @@ -183,22 +147,10 @@ </field> </record> - <record id="view_res_partner_rgpd_origin_form" model="ir.ui.view"> - <field name="name">res.partner.rgpd.origin.form</field> - <field name="model">res.partner.rgpd.origin</field> - <field name="arch" type="xml"> - <form string="RGPD Origin"> - <group name="main"> - <field name="name"/> - </group> - </form> - </field> - </record> - <record id="action_view_res_partner_rgpd_origin_tree" model="ir.actions.act_window"> <field name="name">RGPD Origins</field> <field name="res_model">res.partner.rgpd.origin</field> - <field name="view_mode">tree,form</field> + <field name="view_mode">tree</field> <field name="help">Display and manage the list of RGPD Origins.</field> </record> @@ -214,57 +166,36 @@ </field> </record> - <record id="view_res_partner_newsletter_form" model="ir.ui.view"> - <field name="name">res.partner.newsletter.form</field> - <field name="model">res.partner.newsletter</field> - <field name="arch" type="xml"> - <form string="Newsletter"> - <group name="main"> - <field name="name"/> - </group> - </form> - </field> - </record> - <record id="action_view_res_partner_newsletter_tree" model="ir.actions.act_window"> <field name="name">Newsletters</field> <field name="res_model">res.partner.newsletter</field> - <field name="view_mode">tree,form</field> + <field name="view_mode">tree</field> <field name="help">Display and manage the list of Newsletters.</field> </record> - - <!-- Prescriber Canal --> - <record id="view_res_partner_prescriber_canal_tree" model="ir.ui.view"> - <field name="name">res.partner.prescriber.canal.tree</field> - <field name="model">res.partner.prescriber.canal</field> + <!-- Segmentation --> + <record id="view_res_partner_segment_tree" model="ir.ui.view"> + <field name="name">res.partner.segment.tree</field> + <field name="model">res.partner.segment</field> <field name="arch" type="xml"> - <tree string="Prescriber Canals"> + <tree string="Segmentations"> + <field name="category"/> <field name="name"/> </tree> </field> </record> - <record id="view_res_partner_prescriber_canal_form" model="ir.ui.view"> - <field name="name">res.partner.prescriber.canal.form</field> - <field name="model">res.partner.prescriber.canal</field> - <field name="arch" type="xml"> - <form string="Prescriber Canal"> - <group name="main"> - <field name="name"/> - </group> - </form> - </field> + <record id="action_view_res_partner_segment_tree" model="ir.actions.act_window"> + <field name="name">Segmentations</field> + <field name="res_model">res.partner.segment</field> + <field name="view_mode">tree</field> + <field name="help">Display and manage the list of Segmentations.</field> </record> - <record id="action_view_res_partner_prescriber_canal_tree" model="ir.actions.act_window"> - <field name="name">Prescriber Canals</field> - <field name="res_model">res.partner.prescriber.canal</field> - <field name="view_mode">tree,form</field> - <field name="help">Display and manage the list of Prescriber Canals.</field> - </record> + + <!-- Union Régionales --> <record model="ir.ui.view" id="union_regionale_tree_view"> <field name="name">union.regionale.tree</field> <field name="model">union.regionale</field> @@ -291,8 +222,31 @@ groups="base.group_system" sequence="99"/> + <record model="ir.ui.menu" id="contacts.res_partner_menu_config"> + <field name="groups_id" eval="[(6,0, [ref('base.group_system'), ref('group_cg_list_modif'), ref('group_ur_list_modif')])]"/> + </record> + + <menuitem id="contacts.menu_partner_category_form" + action="base.action_partner_category_form" + name="Contact Tags" + sequence="1" parent="contacts.res_partner_menu_config" + groups="base.group_no_one"/> + + <menuitem id="contacts.res_partner_industry_menu" name="Sectors of Activity" + action="base.res_partner_industry_action" parent="contacts.res_partner_menu_config" + sequence="4" groups="base.group_no_one"/> + + <menuitem id="menu_res_partner_segment" + parent="contacts.res_partner_menu_config" + action="action_view_res_partner_segment_tree" + sequence="10"/> + + <record model="ir.ui.menu" id="menu_res_partner_segment"> + <field name="groups_id" eval="[(6,0, [ref('group_cg_list_modif'), ref('group_ur_list_modif')])]"/> + </record> + <menuitem id="menu_scop" name="SCOP" - parent="contacts.res_partner_menu_config" sequence="20"/> + parent="contacts.res_partner_menu_config" sequence="20" groups="group_cg_list_modif"/> <menuitem id="menu_res_partner_newsletter" parent="menu_scop" @@ -302,14 +256,27 @@ parent="menu_scop" action="action_view_res_partner_certification_tree" sequence="10"/> + <menuitem id="contacts.menu_partner_title_contact" + parent="menu_scop" + name="Civilités" + sequence="18"/> <menuitem id="lefilament_naf.menu_naf_id" parent="menu_scop" + action="lefilament_naf.action_view_res_partner_naf_tree" name="Codes NAF" sequence="20"/> + <menuitem id="contacts.menu_config_bank_accounts" + parent="menu_scop" + name="Comptes Bancaires" + sequence="25" groups="base.group_no_one"/> <menuitem id="menu_res_partner_cooperative_form" parent="menu_scop" action="action_view_res_partner_cooperative_form_tree" sequence="30"/> + <menuitem id="contacts.menu_localisation" + parent="menu_scop" + name="Localisation" + sequence="35"/> <menuitem id="menu_res_partner_dissolution_reason" parent="menu_scop" action="action_view_res_partner_dissolution_reason_tree" @@ -322,13 +289,11 @@ parent="menu_scop" action="action_view_res_partner_rgpd_origin_tree" sequence="60"/> - <menuitem id="menu_res_partner_prescriber_canal" - parent="menu_scop" - action="action_view_res_partner_prescriber_canal_tree" - sequence="70"/> - <menuitem id="menu_res_partner_company_type" + <menuitem id="partner_company_type.menu_partner_company_type" parent="menu_scop" action="partner_company_type.res_partner_company_type_act_window" + name="Statuts Juridiques" + groups="group_cg_list_modif" sequence="80"/> <menuitem id="menu_res_partner_organization_type" parent="menu_scop"