diff --git a/__manifest__.py b/__manifest__.py index 42561fe364c5a677275bc45cdf7645ee8437f9b9..1684a321e21c3d7a69f820872266c060533117d8 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -1,7 +1,7 @@ { "name": "CG SCOP - Gestion Contacts", "summary": "CG SCOP - Gestion des contacts", - "version": "14.0.1.0.0", + "version": "14.0.1.0.2", "author": "Le Filament", "license": "AGPL-3", "application": False, diff --git a/migrations/14.0.1.0.2/post-migration.py b/migrations/14.0.1.0.2/post-migration.py new file mode 100644 index 0000000000000000000000000000000000000000..b66b8a7ef205e2c5f5e9d7683a34098ba7651629 --- /dev/null +++ b/migrations/14.0.1.0.2/post-migration.py @@ -0,0 +1,54 @@ +# © 2022 Le Filament (<http://www.le-filament.com>) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +import logging + +from openupgradelib import openupgrade + +_logger = logging.getLogger(__name__) + + +def update_status_project_accompagnement(env): + openupgrade.logged_query( + env.cr, + """ + UPDATE res_partner rsp + SET project_status = '3_accompagnement' + WHERE rsp.project_status = '4_adhesion' + """, + ) + + +def update_status_project_soumis_cg(env): + openupgrade.logged_query( + env.cr, + """ + UPDATE res_partner rsp + SET project_status = '4_suivi', membership_status='soumis_cg' + WHERE rsp.project_status = '5_cg' + """, + ) + + +def update_with_new_status(env): + openupgrade.logged_query( + env.cr, + """ + UPDATE res_partner rsp + SET project_status = ( + CASE + WHEN rsp.dissolution_date IS NOT NULL THEN '6_decede' + WHEN rsp.project_status = '6_suivi' THEN '4_suivi' + WHEN rsp.project_status = '7_abandonne' THEN '5_abandonne' + ELSE project_status + END + ) + """, + ) + + +@openupgrade.migrate() +def migrate(env, version): + update_status_project_accompagnement(env) + update_status_project_soumis_cg(env) + update_with_new_status(env) diff --git a/migrations/14.0.1.0.2/upgrade_analysis.txt b/migrations/14.0.1.0.2/upgrade_analysis.txt new file mode 100644 index 0000000000000000000000000000000000000000..db54504b32b90f80d98a75bc486c0044eff9ffb0 --- /dev/null +++ b/migrations/14.0.1.0.2/upgrade_analysis.txt @@ -0,0 +1,3 @@ +---Fields in module 'cgscop_partner'--- +cgscop_partner / res.partner / project_status (selection) : selection_keys is now '['1_information','2_pre-diagnostic','3_accompagnement', '4_suivi', '5_abandonne', '6_decede'] ('['1_information','2_pre-diagnostic','3_accompagnement', '4_adhesion', '5_cg', '6_suivi', '7_abandonne']') +cgscop_partner / res.partner / membership_status (selection) : selection_keys is now '['not_member', 'adhesion', 'soumis_cg', 'member', 'out'] ('['not_member', 'adhesion', 'soumis_cg', 'member', 'out']') diff --git a/models/res_partner.py b/models/res_partner.py index fb09f835ff88b1e251addf17b98b27a2afbd9e5e..d796c868b99f05799fed53d72928dc14521dd6f0 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -72,10 +72,9 @@ class ScopPartner(models.Model): ("1_information", "Phase d'information"), ("2_pre-diagnostic", "Phase de pré-diagnostic"), ("3_accompagnement", "Phase d'accompagnement projet"), - ("4_adhesion", "Phase d'adhésion"), - ("5_cg", "Soumis CGScop"), - ("6_suivi", "Phase de suivi"), - ("7_abandonne", "Projet abandonné"), + ("4_suivi", "Phase de suivi"), + ("5_abandonne", "Projet abandonné"), + ("6_decede", "Coop Décédée"), ], tracking=True, string="Statut projet", @@ -94,15 +93,18 @@ class ScopPartner(models.Model): ondelete="restrict", tracking=True, ) + membership_status = fields.Selection( [ - ("member", "Adhérent"), ("not_member", "Non Adhérent"), + ("adhesion", "Phase d'Adhésion"), + ("soumis_cg", "Soumis CG"), + ("member", "Adhérent"), ("out", "Radié"), ], string="Statut d'adhésion", - compute="_compute_membership", - store=True, + default="not_member", + tracking=True, ) member_number = fields.Char( "No adhérent (texte)", compute="_compute_membership_number", store=True @@ -310,6 +312,9 @@ class ScopPartner(models.Model): ondelete="restrict", ) is_ag_constitution = fields.Boolean("AG constitutive réalisée") + is_registration_in_progress = fields.Boolean( + string="En cours d'immatriculation", default=False + ) is_federation_com = fields.Boolean( string="Fédération de la Communication", compute="_compute_federation", @@ -568,7 +573,10 @@ class ScopPartner(models.Model): def _check_siret(self): if self.siret and not self.env.context.get("import_file"): siren = self.siret[:3] + " " + self.siret[3:6] + " " + self.siret[6:9] - if not self.siret.isdigit(): + if ( + not self.siret.isdigit() + and self.siret != "En attente d'immatriculation" + ): raise ValidationError(_("Ce SIRET n'est pas valide")) if len(self.siret) != 14: raise ValidationError(_("La longueur du SIRET doit être égale à 14")) @@ -585,6 +593,16 @@ class ScopPartner(models.Model): elif self.search_count([("siret", "=", self.siret)]) > 1: raise ValidationError(_("Ce SIRET existe déjà")) + @api.constrains("is_company", "type", "email", "phone", "mobile", "user_ids") + def _check_contact_info(self): + # Contrainte de tel ou mail lors de la modification d'un contact + if not self.is_company and self.type == "contact" and not self.user_ids: + if not self.email and not self.phone and not self.mobile: + raise UserError( + _("Vous devez saisir au moins un e-mail ou un téléphone pour %s") + % self.name + ) + # ------------------------------------------------------ # Actions # ------------------------------------------------------ @@ -730,6 +748,10 @@ class ScopPartner(models.Model): # Common functions # ------------------------------------------------------ def _create_period(self, partner): + new_period = self._add_period(partner) + partner.scop_period_ids = new_period + + def _add_period(self, partner): new_period = self.env["scop.period"].create( { "partner_id": partner.id, @@ -737,7 +759,11 @@ class ScopPartner(models.Model): "name": partner.name, "cooperative_form_id": partner.cooperative_form_id.id, "partner_company_type_id": partner.partner_company_type_id.id, - "siret": partner.siret, + "siret": ( + partner.siret + if partner.siret or not partner.is_registration_in_progress + else "En attente d'immatriculation" + ), "street": partner.street, "street2": partner.street2, "street3": partner.street3, @@ -752,7 +778,7 @@ class ScopPartner(models.Model): "cae": partner.cae, } ) - partner.scop_period_ids = new_period + return new_period # ------------------------------------------------------ # Override ORM @@ -770,7 +796,6 @@ class ScopPartner(models.Model): return self._search(domain + args, limit=limit, access_rights_uid=name_get_uid) # Creation d'une periode lorsque le statut passe en Phase de Suivi - # TODO: à revoir et demander si mise en majuscule du nom de la structure def write(self, vals): # Gestion casse des informations if vals.get("name"): @@ -796,27 +821,12 @@ class ScopPartner(models.Model): ) for partner in self: - # Contrainte de tel ou mail lors de la modification d'un contact - if ( - not partner.is_company - and partner.type == "contact" - and not partner.user_ids - ): - 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 - ) - ) - # Création d'une période lors du changement de statut en Suivi - if vals.get("project_status") == "6_suivi" and not self.env.context.get( + if vals.get("project_status") == "4_suivi" and not self.env.context.get( "import_file" ): if not partner.scop_period_ids: - partner._create_period(partner) + partner.sudo()._create_period(partner) # Ajout des followers de la fiche partners_to_subscribe = [] @@ -830,10 +840,11 @@ class ScopPartner(models.Model): return result - # TODO: à revoir - # Création d'une période lors de la création d'une coopérative @api.model_create_multi def create(self, vals_list): + """ + Création d'une période lors de la création d'une coopérative + """ # Gestion casse des informations for vals in vals_list: if vals.get("name"): @@ -849,10 +860,10 @@ class ScopPartner(models.Model): for vals in vals_list: # Création d'une période si la coop est en statut en Suivi - if vals.get("is_cooperative") and vals.get("project_status") == "6_suivi": + if vals.get("is_cooperative") and vals.get("project_status") == "4_suivi": for partner in partners: if not partner.scop_period_ids: - partner._create_period(partner) + partner.sudo()._create_period(partner) return partners @@ -1025,6 +1036,7 @@ class ScopPartner(models.Model): "membership_period_ids.end", "membership_period_ids.start", ) + # Todo: A revoir comment on assigne le statut member def _compute_membership(self): for partner in self: if partner.membership_period_ids: @@ -1194,41 +1206,17 @@ class ScopPartner(models.Model): # ------------------------------------------------------ # Button & Action # ------------------------------------------------------ - def scop_send_to_cg(self): - self.write( - { - "project_status": "5_cg", - } - ) - return True - def partner_archive(self): self.active = False - def scop_valid_cg_button(self): - self.ensure_one() - self.scop_valid_cg() - - def scop_valid_cg(self): - self.write( - { - "project_status": "6_suivi", - } - ) - return True - def scop_prj_adhesion(self): - self.write( - { - "project_status": "4_adhesion", - } - ) + self.write({"membership_status": "adhesion"}) return True def scop_abandonne(self): self.write( { - "project_status": "7_abandonne", + "project_status": "5_abandonne", } ) return True @@ -1332,7 +1320,7 @@ class ScopPartner(models.Model): "default_is_company": True, "default_is_cooperative": True, "default_company_type": "company", - "default_project_status": "6_suivi", + "default_project_status": "4_suivi", } # Détermine le filtre par défaut pour l'affichage @@ -1371,14 +1359,14 @@ class ScopPartner(models.Model): "target": "current", "domain": [ ("is_cooperative", "=", True), - ("project_status", "=", "6_suivi"), + ("project_status", "=", "4_suivi"), ], "context": ctx, } - def show_prospect(self): + def show_creation_project(self): """ - Affichage des prospect avec filtre par défaut + Affichage des projets en création avec filtre par défaut """ ctx = { "default_is_company": True, @@ -1393,7 +1381,7 @@ class ScopPartner(models.Model): ctx.update({"search_default_my_ur": True}) return { - "name": "Prospects", + "name": "Projets de création", "type": "ir.actions.act_window", "res_model": "res.partner", "search_view_id": ( @@ -1424,9 +1412,7 @@ class ScopPartner(models.Model): "1_information", "2_pre-diagnostic", "3_accompagnement", - "4_adhesion", - "5_cg", - "7_abandonne", + "5_abandonne", ), ), ], @@ -1468,7 +1454,64 @@ class ScopPartner(models.Model): ), ], "target": "current", - "domain": [("is_cooperative", "=", True)], + "domain": [ + ("is_cooperative", "=", True), + ( + "project_status", + "in", + ("4_suivi",), + ), + ], + "context": ctx, + } + + def show_processus_adhesion(self): + """ + Affichage des coopératives dans leur processus d'adhésion par défaut + """ + ctx = { + "default_is_company": True, + "default_is_cooperative": True, + "default_company_type": "company", + "default_project_status": "4_suivi", + } + + # Détermine le filtre par défaut pour l'affichage + filtre = self.env.company.ur_id.partner_filter + if filtre == "2": + ctx.update({"search_default_my_ur": True}) + + return { + "name": "Processus d'adhésion", + "type": "ir.actions.act_window", + "res_model": "res.partner", + "search_view_id": ( + self.env.ref("cgscop_partner.scop_partner_view_search").id, + ), + "view_mode": "kanban,tree,form,activity", + "views": [ + ( + self.env.ref("cgscop_partner.view_partner_adhesion_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), + ( + "membership_status", + "in", + ("adhesion", "soumis_cg"), + ), + ], "context": ctx, } diff --git a/models/res_partner_lists.py b/models/res_partner_lists.py index 10bb45d070faf6d95885b0478196007e4aa5ae00..e4ec3032917be216fc3d01097c3a690cba6ab193 100644 --- a/models/res_partner_lists.py +++ b/models/res_partner_lists.py @@ -30,6 +30,12 @@ class ResPartnerCooperativeForm(models.Model): name = fields.Char("Forme Coopérative") id_riga = fields.Integer("ID RIGA") + def _get_lm_form(self): + type_lm = self.env.ref("cgscop_partner.form_scop") + type_lamaneur = self.env.ref("cgscop_partner.form_lamaneur") + type_unionscop = self.env.ref("cgscop_partner.form_unionscop") + return type_lm + type_lamaneur + type_unionscop + class ResPartnerCreationOrigin(models.Model): _name = "res.partner.creation.origin" diff --git a/models/scop_partner_staff.py b/models/scop_partner_staff.py index 0c736a6a647ed9107de45b6674b72c1cbb82905b..0a082b10f23947a9df8740a2be2a6e5ecd8e0395 100644 --- a/models/scop_partner_staff.py +++ b/models/scop_partner_staff.py @@ -67,6 +67,7 @@ class ScopPartnerStaff(models.Model): [ ("questionnaire", "Questionnaire"), ("questionnaire_inscription", "Questionnaire Inscription"), + ("membership", "Adhésion"), ("regul_ur", "Régularisation UR"), ("regul_cg", "Régularisation CG"), ("regul_diane", "Régularisation Diane"), @@ -82,7 +83,6 @@ class ScopPartnerStaff(models.Model): ) staff_count = fields.Integer( "Effectif (EF)", - required=True, ) staff_shareholder_count = fields.Integer("Nb Sociétaires Salarié") staff_shareholder_total = fields.Integer("Total associés") diff --git a/models/scop_period.py b/models/scop_period.py index cadb5174e9422360763fc04159ecf939d0b8c79f..f52de721174657e995e4270dc00c25bf7e5870fc 100644 --- a/models/scop_period.py +++ b/models/scop_period.py @@ -33,6 +33,7 @@ class ScopPeriod(models.Model): ("acti", "Changement d'activité (NAF)"), ("adr", "Changement d'adresse"), ("nom", "Changement de dénomination sociale"), + ("registration", "Immatriculation"), ("dreets", "Radiation DREETS"), ("deces", "Décès"), ("autr", "Autres"), diff --git a/views/res_partner.xml b/views/res_partner.xml index f8941dc58666dc59dd7d9c26cc8c4da759f0fd5a..611388efcba5662f04885db38ed4f3ea2745aded 100644 --- a/views/res_partner.xml +++ b/views/res_partner.xml @@ -597,7 +597,7 @@ type="action" name="%(cgscop_partner.scop_period_wizard_create_action)d" class="oe_highlight" - attrs="{'invisible': ['|', ('write_date', '=', False), ('project_status', '!=', '6_suivi')]}" + attrs="{'invisible': [('project_status', '!=', '4_suivi')]}" groups="cgscop_partner.group_add_period" /> <button @@ -605,58 +605,35 @@ type="action" name="%(cgscop_partner.scop_address_wizard_action)d" class="oe_highlight" - attrs="{'invisible': ['|', ('write_date', '=', False), ('project_status', '!=', '6_suivi')]}" + attrs="{'invisible': [('project_status', '!=', '4_suivi')]}" /> <button string="Nouvelle période d'adhésion" type="action" name="%(cgscop_partner.scop_membership_period_wizard_create_action)d" class="oe_highlight" - attrs="{'invisible': ['|', ('write_date', '=', False), ('project_status', '!=', '6_suivi')]}" + attrs="{'invisible': ['|', ('project_status', '!=', '4_suivi'), ('membership_status', '!=', 'member')]}" groups="cgscop_partner.group_add_period" /> <button string="Décès/Mise en sommeil" type="action" name="%(cgscop_partner.scop_deces_wizard_create_action)d" - attrs="{'invisible': ['|', ('dissolution_reason_id', '!=', False), '|', ('write_date', '=', False), ('project_status', '!=', '6_suivi')]}" + attrs="{'invisible': ['|', ('dissolution_reason_id', '!=', False), ('project_status', '!=', '4_suivi')]}" groups="cgscop_partner.group_add_period" /> <button string="Radiation" type="action" name="%(cgscop_partner.scop_membership_out_wizard_create_action)d" - attrs="{'invisible': ['|', ('write_date', '=', False), ('project_status', '!=', '6_suivi')]}" + attrs="{'invisible': ['|', ('project_status', '!=', '4_suivi'), ('membership_status','!=','member')]}" groups="cgscop_partner.group_add_period" /> - <button - string="Envoyer Dossier CG" - type="object" - name="scop_send_to_cg" - class="btn-primary" - attrs="{'invisible': ['|', ('write_date', '=', False), ('project_status', '!=', '4_adhesion')]}" - /> - <button - string="Dossier créé CG" - type="object" - name="scop_valid_cg_button" - class="btn-primary" - attrs="{'invisible': ['|', ('write_date', '=', False), ('project_status', '!=', '5_cg')]}" - groups="cgscop_partner.group_cg_administrator" - /> <button string="Prospect Abandonne" type="object" name="scop_abandonne" - attrs="{'invisible':[('project_status','in',('5_cg', '6_suivi', '7_abandonne'))]}" - /> - <button - string="Projet d'adhésion" - class="oe_read_only" - type="object" - name="scop_prj_adhesion" - attrs="{'invisible':['|',('project_status','not in',('6_suivi')),('membership_status','in',('member'))]}" - confirm="Êtes-vous sûr de vouloir basculer cette coopérative dans les projets ?" + attrs="{'invisible':[('project_status','in', ('4_suivi', '5_abandonne'))]}" /> <button string="Modification statut projet" @@ -668,8 +645,15 @@ name="project_status" widget="statusbar" clickable="True" - statusbar_visible="1_information,2_pre-diagnostic,3_accompagnement,4_adhesion" - attrs="{'invisible':[('project_status','in',('6_suivi'))], 'readonly': [('project_status','in',('5_cg', '6_suivi'))]}" + statusbar_visible="1_information,2_pre-diagnostic,3_accompagnement" + attrs="{'invisible':[('project_status','in',('4_suivi'))]}" + /> + <field + name="membership_status" + widget="statusbar" + readonly="1" + statusbar_visible="adhesion,soumis_cg" + attrs="{'invisible':[('project_status','not in',('4_suivi'))]}" /> </header> </xpath> @@ -715,7 +699,7 @@ default_focus="1" required="1" placeholder="Raison Sociale" - attrs="{'readonly': [('write_date', '!=', False), ('project_status', '=', '6_suivi'), ('is_cooperative', '=', True)]}" + attrs="{'readonly': [('project_status', '=', '4_suivi'), ('is_cooperative', '=', True)]}" /> <button style="margin: -50px 0px 0px" @@ -733,7 +717,7 @@ <field class="o_field_header" name="cooperative_form_id" - attrs="{'readonly': [('write_date', '!=', False), ('project_status', '=', '6_suivi')], 'required': ['|', ('project_status','in',('2_pre-diagnostic', '3_accompagnement','4_adhesion', '5_cg')), '&', ('write_date', '=', False), ('project_status', '=', '6_suivi')]}" + attrs="{'readonly': [('project_status', '=', '4_suivi')], 'required': [('project_status','in',('2_pre-diagnostic', '3_accompagnement', '4_suivi'))]}" options="{'no_open': True, 'no_create': True}" placeholder="Forme Coopérative" /> @@ -744,19 +728,12 @@ options="{'no_open': True, 'no_create': True}" domain="[('is_coop', '=', True)]" name="partner_company_type_id" - attrs="{'readonly': [('write_date', '!=', False), ('project_status', '=', '6_suivi')], 'required':['|', ('project_status','in',('4_adhesion', '5_cg')), '&', ('write_date', '=', False), ('project_status', '=', '6_suivi')], 'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic'))]}" + attrs="{'readonly': [('project_status', '=', '4_suivi')], 'required': [('project_status', 'in', ('3_accompagnement', '4_suivi'))], 'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic'))]}" placeholder="Statut Juridique" /> </h3> </div> <div class="o_row d-flex "> - <h3> - <field - name="membership_status" - readonly="1" - class="o_field_header" - /> - </h3> <h3> <field name="member_number_int" @@ -781,7 +758,7 @@ <field name="cae" class="oe_edit_only" - attrs="{'readonly': [('write_date', '!=', False), ('project_status', '=', '6_suivi')]}" + attrs="{'readonly': [('project_status', '=', '4_suivi')]}" /> </h3> <field name="user_id" invisible="1" /> @@ -809,48 +786,48 @@ name="street" placeholder="Rue..." class="o_address_street" - attrs="{'readonly': [('type', '!=', 'facility'), ('write_date', '!=', False), ('project_status', '=', '6_suivi')], 'required':['|', ('project_status','in',('4_adhesion', '5_cg')), '&', ('write_date', '=', False), ('project_status', '=', '6_suivi')]}" + attrs="{'readonly': [('type', '!=', 'facility'), ('project_status', '=', '4_suivi')], 'required':[('project_status', 'in', ('3_accompagnement', '4_suivi'))]}" /> <field name="street2" placeholder="Rue 2..." class="o_address_street" - attrs="{'readonly': [('type', '!=', 'facility'), ('write_date', '!=', False), ('project_status', '=', '6_suivi')]}" + attrs="{'readonly': [('type', '!=', 'facility'), ('project_status', '=', '4_suivi')]}" /> <field name="street3" placeholder="Rue 3..." class="o_address_street" - attrs="{'readonly': [('type', '!=', 'facility'), ('write_date', '!=', False), ('project_status', '=', '6_suivi')]}" + attrs="{'readonly': [('type', '!=', 'facility'), ('project_status', '=', '4_suivi')]}" /> <field name="zip_id" options="{'create_name_field': 'city', 'no_open': True, 'no_create': True}" placeholder="CP / Ville autocomplétion..." class="oe_edit_only" - attrs="{'readonly': [('write_date', '!=', False), ('project_status', '=', '6_suivi')]}" + attrs="{'readonly': [('project_status', '=', '4_suivi')]}" /> <field name="zip" placeholder="CP..." class="o_address_city" - attrs="{'readonly': [('type', '!=', 'facility'), ('write_date', '!=', False), ('project_status', '=', '6_suivi')], 'required':['|', ('project_status','in',('4_adhesion', '5_cg')), '&', ('write_date', '=', False), ('project_status', '=', '6_suivi')]}" + attrs="{'readonly': [('type', '!=', 'facility'), ('project_status', '=', '4_suivi')], 'required':[('project_status', 'in', ('3_accompagnement', '4_suivi'))]}" /> <field name="zip_departement" invisible="1" /> <field name="city" placeholder="Ville..." class="o_address_city" - attrs="{'readonly': [('type', '!=', 'facility'), ('write_date', '!=', False), ('project_status', '=', '6_suivi')], 'required':['|', ('project_status','in',('4_adhesion', '5_cg')), '&', ('write_date', '=', False), ('project_status', '=', '6_suivi')]}" - modifiers="{'readonly':[['project_status', '=', '6_suivi']], 'required':['|', ('project_status','in',('4_adhesion', '5_cg')), '&', ('write_date', '=', False), ('project_status', '=', '6_suivi')]}" + attrs="{'readonly': [('type', '!=', 'facility'), ('project_status', '=', '4_suivi')], 'required':[('project_status', 'in', ('3_accompagnement', '4_suivi'))]}" + modifiers="{'readonly':[['project_status', '=', '4_suivi']], 'required':[('project_status', 'in', ('3_accompagnement', '4_suivi'))]}" /> <field name="city_id" invisible="1" /> <field name="cedex" placeholder="Cedex" class="o_address_city" - attrs="{'readonly': [('type', '!=', 'facility'), ('write_date', '!=', False), ('project_status', '=', '6_suivi')]}" - modifiers="{'readonly':[['project_status', '=', '6_suivi']]}" + attrs="{'readonly': [('type', '!=', 'facility'), ('project_status', '=', '4_suivi')]}" + modifiers="{'readonly':[['project_status', '=', '4_suivi']]}" /> <field name="state_id" @@ -858,16 +835,16 @@ placeholder="Région" options='{"no_open": True, "no_create": True}' context="{'country_id': country_id, 'zip': zip}" - attrs="{'readonly': [('type', '!=', 'facility'), ('write_date', '!=', False), ('project_status', '=', '6_suivi')]}" - modifiers="{'readonly':[['project_status', '=', '6_suivi']]}" + attrs="{'readonly': [('type', '!=', 'facility'), ('project_status', '=', '4_suivi')]}" + modifiers="{'readonly':[['project_status', '=', '4_suivi']]}" /> <field name="country_id" placeholder="Pays" class="o_address_country" options='{"no_open": True, "no_create": True}' - attrs="{'readonly': [('type', '!=', 'facility'), ('write_date', '!=', False), ('project_status', '=', '6_suivi')]}" - modifiers="{'readonly':[['project_status', '=', '6_suivi']]}" + attrs="{'readonly': [('type', '!=', 'facility'), ('project_status', '=', '4_suivi')]}" + modifiers="{'readonly':[['project_status', '=', '4_suivi']]}" /> </div> <field name="zip_departement" string="N° de département" /> @@ -876,7 +853,7 @@ name="phone" widget="phone" string="Téléphone 1" - attrs="{'required':['|', ('project_status','in',('4_adhesion', '5_cg')), '&', ('write_date', '=', False), ('project_status', '=', '6_suivi')]}" + attrs="{'required':[('project_status', 'in', ('3_accompagnement', '4_suivi'))]}" /> <field name="mobile" @@ -1000,9 +977,9 @@ /> <field name="creation_delegate_id" - attrs="{'required':[('project_status','in',('3_accompagnement','4_adhesion', '5_cg'))], 'invisible':[('project_status', 'in', '6_suivi')]}" - widget="many2one_mailto" + attrs="{'required':['|', ('membership_status','in',('adhesion', 'soumis_cg')), ('project_status','in',('3_accompagnement'))], 'invisible':[('project_status', 'in', '4_suivi')]}" options="{'no_open': True, 'no_create': True, 'mailto_field': 'email'}" + widget="many2one_mailto" domain="[('ur_id', '=', ur_id)]" /> <field @@ -1098,86 +1075,100 @@ name="is_ag_constitution" attrs="{'invisible': ['|', ('project_status', '!=', '3_accompagnement'), ('cooperative_form_id', '=', %(cgscop_partner.form_noncooperative)d)]}" /> + <field + name="is_registration_in_progress" + attrs="{'invisible': [('project_status', '!=', '3_accompagnement')]}" + /> <field name="date_1st_sign" attrs="{ - 'invisible': ['|', '&', ('project_status', 'in', ('1_information', '2_pre-diagnostic', '3_accompagnement')), ('is_ag_constitution', '!=', True), ('cooperative_form_id', '=', %(cgscop_partner.form_noncooperative)d)], - 'required': ['|', ('project_status', 'in', ('4_adhesion', '5_cg', '6_suivi')), ('is_ag_constitution', '=', True), ('is_cooperative', '=', True), ('cooperative_form_id', '!=', %(cgscop_partner.form_noncooperative)d)], - 'readonly': [('id','!=',False), ('project_status', '=', '6_suivi'), ('is_administrative', '!=', True)]}" + 'invisible': ['|', '&', ('project_status', 'in', ('1_information', '2_pre-diagnostic',)), ('is_ag_constitution', '!=', True), ('cooperative_form_id', '=', %(cgscop_partner.form_noncooperative)d)], + 'required': [('project_status', 'not in', ('4_suivi')), ('is_ag_constitution', '=', True), ('is_cooperative', '=', True), ('cooperative_form_id', '!=', %(cgscop_partner.form_noncooperative)d),], + 'readonly': [('id','!=',False), ('project_status', '=', '4_suivi'), ('is_administrative', '!=', True)]}" /> <field name="registration_date" - attrs="{'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic', '3_accompagnement'))]}" + attrs="{ + 'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic',))], + 'required':[('project_status', '=', '3_accompagnement'), ('is_registration_in_progress', '!=', True)], + 'readonly': [('project_status', '=', '4_suivi'), ('is_administrative', '!=', True)] + }" /> <field name="social_object" - attrs="{'required': [('is_cooperative', '=', True), ('project_status','in',('2_pre-diagnostic', '3_accompagnement','4_adhesion', '5_cg', '6_suivi'))]}" + attrs="{'required': [('is_cooperative', '=', True), ('project_status','in',('2_pre-diagnostic', '3_accompagnement', '4_suivi'))],}" /> <field name="naf_id" - attrs="{'readonly': [('write_date', '!=', False), ('project_status', '=', '6_suivi')], 'required':['|', ('project_status','in',('4_adhesion', '5_cg')), '&', ('write_date', '=', False), ('project_status', '=', '6_suivi')], 'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic', '3_accompagnement'))]}" + attrs="{ + 'readonly': [('project_status', '=', '4_suivi')], + 'required':[('project_status', '=', '3_accompagnement'), ('is_registration_in_progress', '!=', True)], + 'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic',))]}" options="{'no_open': True, 'no_create': True}" /> <field name="certification_ids" widget="many2many_tags" options="{'color_field': 'color', 'no_create': True}" - attrs="{'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic', '3_accompagnement'))]}" + attrs="{'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic',))]}" /> <field name="other_certification" - attrs="{'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic', '3_accompagnement'))]}" + attrs="{'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic',))]}" /> <label for='siret' string="SIRET" class="oe_edit_only" - attrs="{'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic', '3_accompagnement'))]}" + attrs="{'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic',))]}" /> <div> <field name="siret" class="oe_edit_only" - attrs="{'readonly': [('write_date', '!=', False), ('project_status', '=', '6_suivi')], 'required':['|', ('project_status','in',('4_adhesion', '5_cg')), '&', ('write_date', '=', False), ('project_status', '=', '6_suivi')], 'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic', '3_accompagnement'))]}" + attrs="{ + 'readonly': [('project_status', '=', '4_suivi')], + 'required':[('project_status', '=', '3_accompagnement'), ('is_registration_in_progress', '!=', True)], + 'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic',))]}" /> </div> <label for='formatted_siret' string="SIRET" class="oe_read_only" - attrs="{'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic', '3_accompagnement'))]}" + attrs="{'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic',))]}" /> <div> <field name="formatted_siret" class="oe_read_only" - attrs="{'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic', '3_accompagnement'))]}" + attrs="{'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic',))]}" /> </div> <field name="siren" readonly="1" - attrs="{'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic', '3_accompagnement'))]}" + attrs="{'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic',))]}" /> <field name="vat" - attrs="{'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic', '3_accompagnement'))]}" + attrs="{'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic',))]}" /> <field name="capital" - attrs="{'required':[('project_status','in',('4_adhesion', '5_cg', '6_suivi'))], 'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic', '3_accompagnement'))],}" + attrs="{'required':[('project_status','in',('4_suivi'))], 'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic',))],}" widget="monetary" /> <field name="first_closeout" attrs="{ - 'required':[('is_cooperative', '!=', False), ('project_status', 'in', ('4_adhesion', '5_cg', '6_suivi')), ('cooperative_form_id', '!=', %(cgscop_partner.form_noncooperative)d)], - 'invisible': ['|', ('project_status', 'in', ('1_information', '2_pre-diagnostic', '3_accompagnement')), ('cooperative_form_id', '=', %(cgscop_partner.form_noncooperative)d)], - 'readonly': [('id','!=',False), ('project_status', '=', '6_suivi'), ('is_administrative', '!=', True)]}" + 'required':[('is_cooperative', '!=', False), ('project_status', '=', '4_suivi'), ('cooperative_form_id', '!=', %(cgscop_partner.form_noncooperative)d)], + 'invisible': ['|', ('project_status', 'in', ('1_information', '2_pre-diagnostic',)), ('cooperative_form_id', '=', %(cgscop_partner.form_noncooperative)d)], + 'readonly': [('id','!=',False), ('project_status', '=', '4_suivi'), ('is_administrative', '!=', True)]}" /> <field name="closeout_month" - attrs="{'required':[('project_status','in',('4_adhesion', '5_cg', '6_suivi'))], 'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic', '3_accompagnement'))]}" + attrs="{'required':[('project_status','=','4_suivi')], 'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic',))]}" /> <field name="is_seed_scop" @@ -1185,7 +1176,7 @@ /> <field name="seed_end" - attrs="{'invisible': [('is_seed_scop', '!=', True)], 'required':[('project_status','in',('4_adhesion', '5_cg', '6_suivi')),('is_seed_scop', '=', True)]}" + attrs="{'invisible': [('is_seed_scop', '!=', True)], 'required':[('project_status','=','4_suivi'),('is_seed_scop', '=', True)]}" /> <field name="is_incubated" @@ -1198,11 +1189,11 @@ /> <field name="staff_last" - attrs="{'invisible': [('project_status', 'not in', ('6_suivi'))]}" + attrs="{'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic', '3_accompagnement'))]}" /> <field name="staff_last_date" - attrs="{'invisible': [('project_status', 'not in', ('6_suivi'))]}" + attrs="{'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic', '3_accompagnement'))]}" /> </group> </group> @@ -1484,7 +1475,7 @@ <page name='scop_revision' string="Révisions" - attrs="{'invisible': ['|', ('is_cooperative', '!=', True), ('project_status', '!=', '6_suivi')]}" + attrs="{'invisible': ['|', ('is_cooperative', '!=', True), ('project_status', '!=', '4_suivi')]}" > <group col="3"> <group string="Contrat de révision"> @@ -1553,7 +1544,7 @@ <page name="scop_periods" string="Historique" - attrs="{'invisible': ['|', ('is_cooperative', '!=', True), ('project_status', '!=', '6_suivi')]}" + attrs="{'invisible': ['|', ('is_cooperative', '!=', True), ('project_status', '!=', '4_suivi')]}" > <field name="scop_period_ids" @@ -1596,7 +1587,7 @@ <page name='scop_membership' string="Périodes d'adhésion" - attrs="{'invisible': ['|', ('is_cooperative', '!=', True), ('project_status', '!=', '6_suivi')]}" + attrs="{'invisible': ['|', ('is_cooperative', '!=', True), ('project_status', '!=', '4_suivi')]}" > <field name="membership_period_ids" @@ -1622,7 +1613,7 @@ <page name='scop_staff' string="Effectifs" - attrs="{'invisible': ['|','&', ('is_cooperative', '=', True), ('project_status', '!=', '6_suivi'),'&',('is_cooperative', '=', False),('organization_subtype_id','!=', %(cgscop_partner.riga_11528)d)]}" + attrs="{'invisible': ['|','&', ('is_cooperative', '=', True), ('project_status', '!=', '4_suivi'),'&',('is_cooperative', '=', False),('organization_subtype_id','!=', %(cgscop_partner.riga_11528)d)]}" > <field name="staff_ids" @@ -1638,27 +1629,27 @@ <field name="is_partner_in_tracked_naf" invisible="1" /> <field name="effective_date" - attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}" + attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription', 'membership'))]}" /> <field name="type_entry" - attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}" + attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription', 'membership'))]}" /> <field name="staff_count" - attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}" + attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription', 'membership'))]}" /> <field name="staff_shareholder_count" - attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}" + attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription', 'membership'))]}" /> <field name="staff_shareholder_total" - attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}" + attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription', 'membership'))]}" /> <field name="staff_average" - attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))], 'required':[('is_partner_in_tracked_naf', '=', True)]}" + attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription', 'membership'))], 'required':[('is_partner_in_tracked_naf', '=', True)]}" /> <field name="comment" /> <field name="user_id" readonly="1" /> @@ -1673,7 +1664,7 @@ <page name='scop_rse' string="Actions RSE" - attrs="{'invisible': ['|', ('is_cooperative', '!=', True), ('project_status', '!=', '6_suivi')]}" + attrs="{'invisible': ['|', ('is_cooperative', '!=', True), ('project_status', '!=', '4_suivi')]}" > <field name="action_rse_ids" widget="one2many"> <tree string="Actions RSE" editable="top"> @@ -1689,7 +1680,7 @@ <page name='scop_xnet' string="Extranet" - attrs="{'invisible': ['|', ('is_cooperative', '!=', True), ('project_status', '!=', '6_suivi')]}" + attrs="{'invisible': ['|', ('is_cooperative', '!=', True), ('project_status', '!=', '4_suivi')]}" > <group string="Annuaire"> <field name="secteur_id" /> @@ -1749,24 +1740,6 @@ 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="naf_id" @@ -1886,7 +1859,7 @@ /> <field name="birthyear" /> <br /> - <field name="email" /> + <field name="email" required="True" /> <field name="phone" widget="phone" /> <field name="mobile" widget="phone" /> <br /> diff --git a/views/res_partner_cooperative.xml b/views/res_partner_cooperative.xml index f46d58767db8e7ac230a3ec3d128216e3cae3a5b..7458e1d0b85918a088f956861a1ed8b6656f05a5 100644 --- a/views/res_partner_cooperative.xml +++ b/views/res_partner_cooperative.xml @@ -102,23 +102,6 @@ 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 /> <filter string="Fédération de la Com" name="is_federation_com" @@ -146,6 +129,11 @@ name="is_rse" domain="[('is_rse', '=', True)]" /> + <filter + string="En cours d'immatriculation" + name="is_registration_in_progress" + domain="[('is_registration_in_progress', '=', True)]" + /> <separator /> <group expand="0" name="group_by" string="Group By"> @@ -287,6 +275,35 @@ </field> </record> + <!-- KANBAN --> + <record id="view_partner_adhesion_kanban" model="ir.ui.view"> + <field name="name">adhesion.kanban</field> + <field name="model">res.partner</field> + <field name="mode">primary</field> + <field name="inherit_id" ref="base.res_partner_kanban_view" /> + <field name="arch" type="xml"> + <xpath expr="//kanban" position="attributes"> + <attribute name="default_group_by">membership_status</attribute> + <attribute name="archivable">0</attribute> + <attribute name="group_create">0</attribute> + <attribute name="group_edit">0</attribute> + <attribute name="group_delete">0</attribute> + <attribute name="quick_create">0</attribute> + <attribute name="create">0</attribute> + <attribute name="quick_create_view">0</attribute> + <attribute name="block_drag_drop_kanban">1</attribute> + <attribute name="records_draggable">0</attribute> + </xpath> + <xpath expr="//kanban/field[@name='type']" position="after"> + <field name="activity_state" /> + <progressbar + field="activity_state" + colors='{"planned": "success", "today": "warning", "overdue": "danger"}' + /> + </xpath> + </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> @@ -296,12 +313,12 @@ <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> + <record model="ir.actions.server" id="scop_creation_project_act_server"> + <field name="name">CG Scop - Filtre projets de création 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> + <field name="code">action = model.show_creation_project()</field> </record> <record model="ir.actions.server" id="scop_organisme_act_server"> @@ -312,6 +329,14 @@ <field name="code">action = model.show_organisme()</field> </record> + <record model="ir.actions.server" id="scop_adhesion_act_server"> + <field name="name">CG Scop - Filtre processus d'adhésion 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_processus_adhesion()</field> + </record> + <menuitem id="menu_organismes" name="Coopératives" @@ -319,10 +344,17 @@ sequence="10" /> <menuitem - id="menu_action_prospect" - action="scop_prospect_act_server" + id="menu_action_creation_project" + action="scop_creation_project_act_server" + parent="menu_organismes" + name="Projets de création" + sequence="10" + /> + <menuitem + id="menu_action_adhesion" + action="scop_adhesion_act_server" parent="menu_organismes" - name="Projets" + name="Processus d'adhésion" sequence="10" /> <menuitem diff --git a/views/scop_partner_staff.xml b/views/scop_partner_staff.xml index 1c2afd3acf297ede573b3e887b04a3d8b8831621..bbb39a9f1e34636724362bdf4f90d1bc18ec0a68 100644 --- a/views/scop_partner_staff.xml +++ b/views/scop_partner_staff.xml @@ -25,7 +25,7 @@ <field name="type_entry" /> <field name="effective_date" - attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}" + attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription', 'membership'))]}" /> </group> <group name="staff_stats"> @@ -33,19 +33,19 @@ <field name="is_partner_in_tracked_naf" invisible="1" /> <field name="staff_count" - attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}" + attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription', 'membership'))]}" /> <field name="staff_shareholder_count" - attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}" + attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription', 'membership'))]}" /> <field name="staff_shareholder_total" - attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}" + attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription', 'membership'))]}" /> <field name="staff_average" - attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))], 'required':[('is_partner_in_tracked_naf', '=', True)]}" + attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription', 'membership'))], 'required':[('is_partner_in_tracked_naf', '=', True)]}" /> </group> <group name="staff_stats"> diff --git a/wizard/scop_deces_wizard.py b/wizard/scop_deces_wizard.py index e6919c9a899d79cd8adceafb10f56d85f4eca339..d047691b3ffad7a411c778265497b5738225d035 100644 --- a/wizard/scop_deces_wizard.py +++ b/wizard/scop_deces_wizard.py @@ -71,6 +71,7 @@ class ScopDecesWizard(models.TransientModel): { "dissolution_date": period.end, "dissolution_reason_id": period.dissolution_reason_id.id, + "project_status": "6_decede", } ) diff --git a/wizard/scop_membership_out_wizard.py b/wizard/scop_membership_out_wizard.py index 41e774fe9919cffe297a37e475b6de5fc6bfe393..1077c361ff8752d09114a579bba3458d54b4e959 100644 --- a/wizard/scop_membership_out_wizard.py +++ b/wizard/scop_membership_out_wizard.py @@ -60,6 +60,7 @@ class ScopMembershipOutWizard(models.TransientModel): period.end_reason_id.id, period.note, ) + self.partner_id.write({"membership_status": "out"}) return # ............................................................ diff --git a/wizard/scop_period_wizard.py b/wizard/scop_period_wizard.py index 6496e49705f23c34ed3891ea60e744e4e002941a..c52b835a33de56ce17a49a425cc37719c1b3c60a 100644 --- a/wizard/scop_period_wizard.py +++ b/wizard/scop_period_wizard.py @@ -116,6 +116,7 @@ class ScopPeriodWizard(models.TransientModel): ("acti", "Changement d'activité (NAF)"), ("adr", "Changement d'adresse"), ("nom", "Changement de dénomination sociale"), + ("registration", "Immatriculation"), ("dreets", "Radiation DREETS"), ("autr", "Autres"), ], @@ -252,3 +253,5 @@ class ScopPeriodWizard(models.TransientModel): partner = self.env["res.partner"].browse(period.partner_id) partner.sudo().write(partner_values) + if period.siret and partner.is_registration_in_progress: + partner.update({"is_registration_in_progress": False}) diff --git a/wizard/scop_status_wizard.py b/wizard/scop_status_wizard.py index e2029dc984164d1efc34c501f602d9133a402c73..57a82e4200708204ecbc0e68dfd7559e8c1cd407 100644 --- a/wizard/scop_status_wizard.py +++ b/wizard/scop_status_wizard.py @@ -7,10 +7,8 @@ PROJECT_STATUS = [ ("1_information", "Phase d'information"), ("2_pre-diagnostic", "Phase de pré-diagnostic"), ("3_accompagnement", "Phase d'accompagnement projet"), - ("4_adhesion", "Phase d'adhésion"), - ("5_cg", "Soumis CGScop"), - ("6_suivi", "Phase de suivi"), - ("7_abandonne", "Projet abandonné"), + ("4_suivi", "Phase de suivi"), + ("5_abandonne", "Projet abandonné"), ]