Skip to content
Extraits de code Groupes Projets
Valider 1e81e684 rédigé par Juliana's avatar Juliana
Parcourir les fichiers

[UPD]Change process adhesion

parent 3bf68a1e
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion!6[add] merge 14.0 new process adh
...@@ -110,7 +110,7 @@ class ScopPartner(models.Model): ...@@ -110,7 +110,7 @@ class ScopPartner(models.Model):
# ------------------------------------------------------ # ------------------------------------------------------
@api.onchange("project_status") @api.onchange("project_status")
def _onchange_project_status(self): def _onchange_project_status(self):
if self.project_status != "7_abandonne": if self.project_status != "5_abandonne":
self.date_abort = None self.date_abort = None
# ------------------------------------------------------ # ------------------------------------------------------
...@@ -253,7 +253,7 @@ class ScopPartner(models.Model): ...@@ -253,7 +253,7 @@ class ScopPartner(models.Model):
errors_complete_fields = self.check_compulsory_fields(lm_adhesion) errors_complete_fields = self.check_compulsory_fields(lm_adhesion)
if errors_complete_fields: if errors_complete_fields:
errors += errors_complete_fields errors += errors_complete_fields
errors_complete_docs = self.check_compulsory_docs() errors_complete_docs = self.check_compulsory_docs(True)
if errors_complete_docs: if errors_complete_docs:
errors_str = str() errors_str = str()
for error in errors_complete_docs: for error in errors_complete_docs:
...@@ -297,7 +297,7 @@ class ScopPartner(models.Model): ...@@ -297,7 +297,7 @@ class ScopPartner(models.Model):
) )
return res return res
def check_compulsory_docs(self): def check_compulsory_docs(self, is_adhesion=False):
""" """
Vérification de la présence des docs obligatoires Vérification de la présence des docs obligatoires
:return: :return:
...@@ -484,13 +484,66 @@ class ScopPartner(models.Model): ...@@ -484,13 +484,66 @@ class ScopPartner(models.Model):
self.date_abort = fields.Date.today() self.date_abort = fields.Date.today()
return True return True
def scop_suivi_check_docs(self, is_adherent=False):
"""
Passe la coop en statut suivi sans devenir adhérente
"""
self.scop_suivi_check_docs(is_adherent)
errors = str()
errors_complete_docs = self.check_compulsory_docs(is_adherent)
if errors_complete_docs:
errors_str = str()
for error in errors_complete_docs:
errors_str += "<li>" + error + "</li>"
errors += (
"<hr/><strong>Documents manquants :</strong><ul>" + errors_str + "</ul>"
)
if errors:
local_tz = timezone("Europe/Paris")
utc_tz = timezone("UTC")
self.list_logs = (
"<strong>"
+ utc_tz.localize(fields.Datetime.now())
.astimezone(local_tz)
.strftime("%d/%m/%Y - %-H:%M")
+ "</strong> - Impossible de soumettre le dossier à la CG Scop"
+ errors
)
def scop_suivi_non_adhesion(self): def scop_suivi_non_adhesion(self):
""" """
Passe la coop en statut suivi sans devenir adhérente Passe la coop en statut suivi sans devenir adhérente
""" """
# Avant de passer en suivi, vérification des documents obligatoires
self.scop_suivi_check_docs(self.env.context.get("default_with_adhesion", False))
wizard = self.env["scop.compulsory.fields.suivi.wizard"].create(
{
"partner_id": self.id,
"list_logs": self.list_logs,
}
)
return {
"name": "Confirmation des champs obligatoires",
"type": "ir.actions.act_window",
"view_mode": "form",
"res_model": "scop.compulsory.fields.suivi.wizard",
"res_id": wizard.id,
"target": "new",
}
def scop_suivi_adhesion(self):
"""
Passe la coop en statut suivi sans devenir adhérente
"""
# Todo: Gestion de la bascule suivi avec adhésion à tester
# Avant de passer en suivi, vérification des documents obligatoires
self.scop_suivi_check_docs(self.env.context.get("default_with_adhesion", False))
wizard = self.env["scop.compulsory.fields.suivi.wizard"].create( wizard = self.env["scop.compulsory.fields.suivi.wizard"].create(
{ {
"partner_id": self.id, "partner_id": self.id,
"with_adhesion": self.env.context.get("default_with_adhesion", False),
} }
) )
return { return {
......
...@@ -14,3 +14,7 @@ class ScopAdhesionFiles(models.Model): ...@@ -14,3 +14,7 @@ class ScopAdhesionFiles(models.Model):
string="Type de coopérative", string="Type de coopérative",
) )
is_compulsory = fields.Boolean("Obligatoire") is_compulsory = fields.Boolean("Obligatoire")
type_process = fields.Selection(
[("project", "Projet de création"), ("adhesion", "Processus d'adhésion")],
string="Type de process",
)
...@@ -8,9 +8,7 @@ ...@@ -8,9 +8,7 @@
<div class="page" style="font-size: 16px;"> <div class="page" style="font-size: 16px;">
<div class="row"> <div class="row">
<div class="col-6 offset-6"> <div class="col-6 offset-6">
<span <span t-field="o.name" /><br />
t-field="o.name"
/><br />
<span t-field="o.street" /><br /> <span t-field="o.street" /><br />
<t t-if="o.street2"><span t-field="o.street2" /><br /></t> <t t-if="o.street2"><span t-field="o.street2" /><br /></t>
<t t-if="o.street3"><span t-field="o.street3" /><br /></t> <t t-if="o.street3"><span t-field="o.street3" /><br /></t>
......
...@@ -38,12 +38,11 @@ ...@@ -38,12 +38,11 @@
<field name="inherit_id" ref="cgscop_partner.scop_contact_view_form" /> <field name="inherit_id" ref="cgscop_partner.scop_contact_view_form" />
<field name="priority" eval="1" /> <field name="priority" eval="1" />
<field name="arch" type="xml"> <field name="arch" type="xml">
<page name='scop_contacts' position="before"> <page name='scop_contacts' position="before">
<page <page
name="adhesion_processus1" name="adhesion_processus1"
string="Processus d'Adhésion" string="Processus d'Adhésion"
attrs="{'invisible': ['|', ('is_cooperative', '!=', True), ('project_status','=','6_suivi')]}" attrs="{'invisible': ['|', ('is_cooperative', '!=', True), ('project_status','=','4_suivi')]}"
> >
<header> <header>
<button <button
...@@ -51,35 +50,35 @@ ...@@ -51,35 +50,35 @@
type="object" type="object"
name="scop_lm_adhesion" name="scop_lm_adhesion"
class="btn-info" class="btn-info"
attrs="{'invisible': ['|', ('project_status', '!=', '4_adhesion'), ('cooperative_form_id', 'in', (%(cgscop_partner.form_scic)d, %(cgscop_partner.form_coop47)d))]}" attrs="{'invisible': ['|', ('membership_status', '!=', 'adhesion'), ('cooperative_form_id', 'in', (%(cgscop_partner.form_scic)d, %(cgscop_partner.form_coop47)d))]}"
/> />
<button <button
string="Dossier d'inscription" string="Dossier d'inscription"
type="object" type="object"
name="scop_lm_adhesion" name="scop_lm_adhesion"
class="btn-info" class="btn-info"
attrs="{'invisible': ['|', ('project_status', '!=', '4_adhesion'), ('cooperative_form_id', 'not in', (%(cgscop_partner.form_scic)d, %(cgscop_partner.form_coop47)d))]}" attrs="{'invisible': ['|', ('membership_status', '!=', 'adhesion'), ('cooperative_form_id', 'not in', (%(cgscop_partner.form_scic)d, %(cgscop_partner.form_coop47)d))]}"
/> />
<button <button
string="Données financières" string="Données financières"
type="object" type="object"
name="scop_liasse_adhesion" name="scop_liasse_adhesion"
class="btn-info" class="btn-info"
attrs="{'invisible': [('project_status', '!=', '4_adhesion')]}" attrs="{'invisible': [('membership_status', '!=', 'adhesion')]}"
/> />
<button <button
string="Modifier l'année du dossier" string="Modifier l'année du dossier"
type="object" type="object"
name="scop_change_year_dossier" name="scop_change_year_dossier"
class="btn-warning" class="btn-warning"
attrs="{'invisible': ['|', ('project_status', '!=', '4_adhesion'), ('lm_adhesion_id', '=', False)]}" attrs="{'invisible': ['|', ('membership_status', '!=', 'adhesion'), ('lm_adhesion_id', '=', False)]}"
groups="cgscop_partner.group_cg_administrator" groups="cgscop_partner.group_cg_administrator"
/> />
</header> </header>
<div <div
class="alert alert-danger" class="alert alert-danger"
role="alert" role="alert"
attrs="{'invisible':['|', '|', ('write_date', '=', False), ('list_logs', '=', False), ('project_status', 'not in', ('4_adhesion', '5_cg'))]}" attrs="{'invisible':['|', '|', ('write_date', '=', False), ('list_logs', '=', False), ('project_status', '!=', '3_accompagnement')]}"
> >
<field <field
class="o_field_header" class="o_field_header"
...@@ -107,11 +106,11 @@ ...@@ -107,11 +106,11 @@
<field name="ca_previsionnel" widget="monetary" /> <field name="ca_previsionnel" widget="monetary" />
<field <field
name="date_abort" name="date_abort"
attrs="{'invisible':[('project_status','!=','7_abandonne')], 'required':[('project_status','=','7_abandonne')]}" attrs="{'invisible':[('project_status','!=','5_abandonne')], 'required':[('project_status','=','5_abandonne')]}"
/> />
<field <field
name="abort_comments" name="abort_comments"
attrs="{'invisible':[('project_status','!=','7_abandonne')], 'required':[('project_status','=','7_abandonne')]}" attrs="{'invisible':[('project_status','!=','5_abandonne')], 'required':[('project_status','=','5_abandonne')]}"
/> />
</group> </group>
<group string="Dossier UE"> <group string="Dossier UE">
...@@ -179,7 +178,7 @@ ...@@ -179,7 +178,7 @@
<page <page
name="adhesion_processus2" name="adhesion_processus2"
string="Processus d'Adhésion" string="Processus d'Adhésion"
attrs="{'invisible': ['|', ('is_cooperative', '!=', True), ('project_status','!=','6_suivi')]}" attrs="{'invisible': ['|', ('is_cooperative', '!=', True), ('project_status','!=','4_suivi')]}"
> >
<field name="project_invoicing_status_nb" invisible="1" /> <field name="project_invoicing_status_nb" invisible="1" />
<group col="3"> <group col="3">
...@@ -197,7 +196,7 @@ ...@@ -197,7 +196,7 @@
/> />
<field <field
name="creation_delegate_id" name="creation_delegate_id"
attrs="{'required':[('project_status','in',('3_accompagnement','4_adhesion', '5_cg'))]}" attrs="{'required':['|', ('project_status','=','3_accompagnement'), ('membership_status','in',('adhesion', 'soumis_cg'))]}"
options="{'no_create': True}" options="{'no_create': True}"
domain="[('ur_id', '=', ur_id)]" domain="[('ur_id', '=', ur_id)]"
/> />
...@@ -264,7 +263,15 @@ ...@@ -264,7 +263,15 @@
string="Suivi sans adhésion" string="Suivi sans adhésion"
type="object" type="object"
name="scop_suivi_non_adhesion" name="scop_suivi_non_adhesion"
attrs="{'invisible':[('project_status','in',('5_cg', '6_suivi', '7_abandonne'))]}" attrs="{'invisible':[('project_status','in',('4_suivi', '5_abandonne'))]}"
/>
<button
string="Suivi avec adhésion"
type="object"
name="scop_suivi_adhesion"
class="oe_highlight"
attrs="{'invisible':[('project_status','in',('4_suivi', '5_abandonne'))]}"
context="{'default_with_adhesion': True}"
/> />
</xpath> </xpath>
......
...@@ -11,16 +11,19 @@ ...@@ -11,16 +11,19 @@
<tree string="Document" editable="top"> <tree string="Document" editable="top">
<field name="name" /> <field name="name" />
<field name="coop_type_id" /> <field name="coop_type_id" />
<field name="type_process" />
<field name="is_compulsory" /> <field name="is_compulsory" />
</tree> </tree>
</field> </field>
</record> </record>
<record id="action_scop_adhesion_file_tree" model="ir.actions.act_window"> <record id="action_scop_adhesion_file_tree" model="ir.actions.act_window">
<field name="name">Documents adhésion</field> <field name="name">Documents</field>
<field name="res_model">scop.adhesion.file</field> <field name="res_model">scop.adhesion.file</field>
<field name="view_mode">tree</field> <field name="view_mode">tree</field>
<field name="help">Liste des documents pour l'adhésion.</field> <field
name="help"
>Liste des documents pour l'adhésion et les projets de création</field>
</record> </record>
<!-- MENUS --> <!-- MENUS -->
......
...@@ -23,13 +23,17 @@ class ScopCompulsoryFieldsSuiviWizard(models.TransientModel): ...@@ -23,13 +23,17 @@ class ScopCompulsoryFieldsSuiviWizard(models.TransientModel):
closeout_month = fields.Selection( closeout_month = fields.Selection(
related="partner_id.closeout_month", readonly=False related="partner_id.closeout_month", readonly=False
) )
with_adhesion = fields.Boolean("Avec adhésion")
list_logs = fields.Text("Liste des erreurs")
# ------------------------------------------------------ # ------------------------------------------------------
# Actions / Buttons # Actions / Buttons
# ------------------------------------------------------ # ------------------------------------------------------
def confirm(self): def confirm(self):
""" """
Passe la coop en statut "6_suivi" Passe la coop en statut "4_suivi"
""" """
self.partner_id.write({"project_status": "6_suivi"}) self.partner_id.write({"project_status": "4_suivi"})
if self.with_adhesion:
self.partner_id.write({"membership_status": "adhesion"})
return {"type": "ir.actions.act_window_close"} return {"type": "ir.actions.act_window_close"}
...@@ -12,6 +12,18 @@ ...@@ -12,6 +12,18 @@
<field name="model">scop.compulsory.fields.suivi.wizard</field> <field name="model">scop.compulsory.fields.suivi.wizard</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="Confirmer les champs obligatoires"> <form string="Confirmer les champs obligatoires">
<div
class="alert alert-danger"
role="alert"
attrs="{'invisible':[('list_logs', '=', False)]}"
>
<field
class="o_field_header"
name="list_logs"
readonly="1"
widget="html"
/>
</div>
<group> <group>
<field <field
name="ur_id" name="ur_id"
...@@ -28,13 +40,22 @@ ...@@ -28,13 +40,22 @@
<field name="capital" required="1" /> <field name="capital" required="1" />
<field name="first_closeout" required="1" /> <field name="first_closeout" required="1" />
<field name="closeout_month" required="1" /> <field name="closeout_month" required="1" />
<field name="with_adhesion" invisible="1" />
</group> </group>
<footer> <footer>
<button <button
name="confirm" name="confirm"
type="object" type="object"
string="Valider" string="Valider sans adhésion"
class="oe_highlight"
attrs="{'invisible':['|', ('with_adhesion','=',True),('list_logs', '=', False)]}"
/>
<button
name="confirm"
type="object"
string="Valider avec adhésion"
class="oe_highlight" class="oe_highlight"
attrs="{'invisible':['|', ('with_adhesion','=',False), ('list_logs', '=', False)]}"
/> />
<button special="cancel" string="Annuler" /> <button special="cancel" string="Annuler" />
</footer> </footer>
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter