Commit e168c294 authored by Nicolas Joyard's avatar Nicolas Joyard

Mise à jour

parent bebdd4fd
...@@ -34,6 +34,8 @@ ETAPE_AR_RECU = 30 ...@@ -34,6 +34,8 @@ ETAPE_AR_RECU = 30
ETAPE_REPONSE_POSITIVE = 40 ETAPE_REPONSE_POSITIVE = 40
ETAPE_REPONSE_NEGATIVE = 50 ETAPE_REPONSE_NEGATIVE = 50
ETAPE_DEMANDE_CADA = 60 ETAPE_DEMANDE_CADA = 60
ETAPE_INCOMPETENCE_CADA = 65
ETAPE_REQUETE_TA = 70
ETAPES = [ ETAPES = [
{ {
...@@ -189,6 +191,40 @@ ETAPES = [ ...@@ -189,6 +191,40 @@ ETAPES = [
'icone': 'balance-scale', 'icone': 'balance-scale',
'hidden': False, 'hidden': False,
'alerte': True 'alerte': True
},
{
'ordre': ETAPE_INCOMPETENCE_CADA,
'label': 'Incompétence CADA',
'description': """
Suite au refus ou a l'absence de réponse du parlementaire, nous
avons transmis la demande d'accès aux relevés de compte à la
Commission d'Accès aux Documents Administratifs. Celle-ci s'est
déclarée incompétente pour répondre à notre demande.
""",
'couleur': '#bbbbbb',
'icone': 'balance-scale',
'hidden': False,
'alerte': False
},
{
'ordre': ETAPE_REQUETE_TA,
'label': 'Requête TA',
'description': """
Suite à la déclaration d'incompétence de la CADA, nous avons
transmis la requête au tribunal administratif.
""",
'description_mail': """
Suite au refus ou a l'absence de réponse du parlementaire, nous
avons transmis la demande d'accès aux relevés de compte à la
Commission d'Accès aux Documents Administratifs. Celle-ci s'est
déclarée incompétente pour répondre à notre demande.
Nous avons donc transmis la requête au tribunal administratif.
""",
'couleur': '#eebb44',
'icone': 'balance-scale',
'hidden': False,
'alerte': True
} }
] ]
......
...@@ -11,7 +11,8 @@ from ..models.constants import (CHAMBRES, ETAPES, ETAPES_BY_ORDRE, ...@@ -11,7 +11,8 @@ from ..models.constants import (CHAMBRES, ETAPES, ETAPES_BY_ORDRE,
ETAPE_COM_PUBLIE, ETAPE_COURRIEL, ETAPE_COM_PUBLIE, ETAPE_COURRIEL,
ETAPE_DOC_MASQUE, ETAPE_DOC_PUBLIE, ETAPE_DOC_MASQUE, ETAPE_DOC_PUBLIE,
ETAPE_ENVOYE, ETAPE_NA, ETAPE_REPONSE_NEGATIVE, ETAPE_ENVOYE, ETAPE_NA, ETAPE_REPONSE_NEGATIVE,
ETAPE_REPONSE_POSITIVE, ETAPE_DEMANDE_CADA) ETAPE_REPONSE_POSITIVE, ETAPE_DEMANDE_CADA,
ETAPE_INCOMPETENCE_CADA, ETAPE_REQUETE_TA)
def setup(app): def setup(app):
...@@ -156,7 +157,9 @@ def setup(app): ...@@ -156,7 +157,9 @@ def setup(app):
'ETAPE_AR_RECU': ETAPE_AR_RECU, 'ETAPE_AR_RECU': ETAPE_AR_RECU,
'ETAPE_REPONSE_POSITIVE': ETAPE_REPONSE_POSITIVE, 'ETAPE_REPONSE_POSITIVE': ETAPE_REPONSE_POSITIVE,
'ETAPE_REPONSE_NEGATIVE': ETAPE_REPONSE_NEGATIVE, 'ETAPE_REPONSE_NEGATIVE': ETAPE_REPONSE_NEGATIVE,
'ETAPE_DEMANDE_CADA': ETAPE_DEMANDE_CADA 'ETAPE_DEMANDE_CADA': ETAPE_DEMANDE_CADA,
'ETAPE_INCOMPETENCE_CADA': ETAPE_INCOMPETENCE_CADA,
'ETAPE_REQUETE_TA': ETAPE_REQUETE_TA
}, },
'chambres': CHAMBRES 'chambres': CHAMBRES
} }
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
{% set page_title -%} {% set page_title -%}
{% block title %}Transparence IRFM par Regards Citoyens{% endblock %} {% block title %}Transparence des Frais de Mandat par Regards Citoyens{% endblock %}
{%- endset %} {%- endset %}
{% set page_subtitle -%} {% set page_subtitle -%}
......
...@@ -98,6 +98,20 @@ ...@@ -98,6 +98,20 @@
</section> </section>
</div> </div>
<div class="col-md-12">
<section class="panel panel-default">
<header class="panel-heading">
<b>Historique de l'opération</b>
</header>
<article class="panel-body">
{% filter markdown -%}
{% include "text/histo_operation.md" %}
{% endfilter %}
</article>
</section>
</div>
{% endblock %} {% endblock %}
{% block scripts %} {% block scripts %}
...@@ -223,23 +237,24 @@ ...@@ -223,23 +237,24 @@
/* Procedure */ /* Procedure */
var en_cours = "En cours: requête déposée au Tribunal Administratif pour 567 députés n'ayant pas répondu favorablement à notre demande";
var tooltips = { var tooltips = {
'#demande': "Envoi d'une demande de communication des relevés bancaires et de l'attestation d'utilisation de l'IRFM aux parlementaires", '#demande': "Envoi d'une demande de communication des relevés bancaires et de l'attestation d'utilisation de l'IRFM aux parlementaires",
'#parl_cada': "Demande de communication au parlementaire suite à l'accord CADA", // '#parl_cada': "Demande de communication au parlementaire suite à l'accord CADA",
'#parl_ta': "Demande de communication au parlementaire suite à l'accord du Tribunal Administratif", '#parl_ta': "Demande de communication au parlementaire suite à l'accord du Tribunal Administratif",
'#parl_caa': "Demande de communication au parlementaire suite à l'accord de la Cour Administrative d'Appel", '#parl_caa': "Demande de communication au parlementaire suite à l'accord de la Cour Administrative d'Appel",
'#silence_parl': "Pas de réponse du parlementaire", '#silence_parl': "Pas de réponse du parlementaire",
'#silence_parl_cada': "Pas de réponse du parlementaire", // '#silence_parl_cada': "Pas de réponse du parlementaire",
'#refus_parl': "Le parlementaire refuse de nous communiquer les informations demandées", '#refus_parl': "Le parlementaire refuse de nous communiquer les informations demandées",
'#refus_parl_cada': "Le parlementaire refuse de nous communiquer les informations demandées malgré la décision de la CADA", // '#refus_parl_cada': "Le parlementaire refuse de nous communiquer les informations demandées malgré la décision de la CADA",
'#refus_parl_ta': "Le parlementaire fait appel de la décision du Tribunal Administratif", '#refus_parl_ta': "Le parlementaire fait appel de la décision du Tribunal Administratif",
'#refus_parl_caa': "Le parlementaire forme un pourvoi devant le Conseil d'État", '#refus_parl_caa': "Le parlementaire forme un pourvoi devant le Conseil d'État",
'#accord_parl': "Le parlementaire accepte de nous communiquer les informations demandées", '#accord_parl': "Le parlementaire accepte de nous communiquer les informations demandées",
'#accord_parl_cada': "Le parlementaire accepte de nous communiquer les informations demandées", // '#accord_parl_cada': "Le parlementaire accepte de nous communiquer les informations demandées",
'#accord_parl_ta': "Le parlementaire accepte de nous communiquer les informations demandées", '#accord_parl_ta': "Le parlementaire accepte de nous communiquer les informations demandées",
'#accord_parl_caa': "Le parlementaire accepte de nous communiquer les informations demandées", '#accord_parl_caa': "Le parlementaire accepte de nous communiquer les informations demandées",
...@@ -247,19 +262,25 @@ ...@@ -247,19 +262,25 @@
'#incompetence_ta': "Le Tribunal Administratif se déclare incompétent pour traiter notre demande", '#incompetence_ta': "Le Tribunal Administratif se déclare incompétent pour traiter notre demande",
'#incompetence_ce': "Le Conseil d'État se déclare incompétent pour traiter notre demande", '#incompetence_ce': "Le Conseil d'État se déclare incompétent pour traiter notre demande",
'#rejet_cada': "La CADA rejette notre demande", // '#rejet_cada': "La CADA rejette notre demande",
'#rejet_ta': "Le Tribunal Administratif rejette notre demande", '#rejet_ta': "Le Tribunal Administratif rejette notre demande",
'#rejet_caa': "La Cour Administrative d'Appel rejette notre demande", '#rejet_caa': "La Cour Administrative d'Appel rejette notre demande",
'#rejet_ce': "Le Conseil d'État rejette notre demande", '#rejet_ce': "Le Conseil d'État rejette notre demande",
'#rejet_eur': "La juridiction Européenne rejette notre demande", '#rejet_eur': "La juridiction Européenne rejette notre demande",
'#accord_cada': "La CADA nous accorde le droit d'accès aux informations", // '#accord_cada': "La CADA nous accorde le droit d'accès aux informations",
'#accord_ta': "Le Tribunal Administratif nous accorde le droit d'accès aux informations", '#accord_ta': "Le Tribunal Administratif nous accorde le droit d'accès aux informations",
'#accord_caa': "La Cour Administrative d'Appel nous accorde le droit d'accès aux informations", '#accord_caa': "La Cour Administrative d'Appel nous accorde le droit d'accès aux informations",
'#accord_ce': "Le Conseil d'État nous accorde le droit d'accès aux informations", '#accord_ce': "Le Conseil d'État nous accorde le droit d'accès aux informations",
'#accord_eur': "La juridiction Européenne nous accorde le droit d'accès aux informations", '#accord_eur': "La juridiction Européenne nous accorde le droit d'accès aux informations",
'#lobbying': "Nous faisons du lobbying pour qu'un projet de loi soit adopté qui établisse la transparence de l'IRFM" '#lobbying': "Nous faisons du lobbying pour qu'un projet de loi soit adopté qui établisse la transparence de l'IRFM",
'#pin': en_cours,
'#nb_negatifs': en_cours,
'#saisie_ta': en_cours,
'#nb_positifs': "7 parlementaires ont accepté de nous communiquer les informations demandées"
}; };
var tooltips_right = ['#accord_eur', '#rejet_eur', '#lobbying']; var tooltips_right = ['#accord_eur', '#rejet_eur', '#lobbying'];
......
# <a href="{{ url_for('home') }}">Transparence IRFM</a> # <a href="{{ url_for('home') }}">Transparence des Frais de Mandat</a>
Aidez-nous à obtenir la transparence sur l'Indemnité Représentative de Frais de Mandat de la précédente législature ! Aidez-nous à obtenir la transparence sur l'Indemnité Représentative de Frais de Mandat de la précédente législature !
**15 mai 2017**
* Lancement de l'opération : envoi par e-mail de la demande d'accès aux documents aux 574 députés concernés.
* Ouverture de l'envoi des relances par recommandé avec l'aide des citoyens.
**du 16 mai 2017 au 7 juillet 2017**
* 279 relances envoyées par recommandé avec l'aide des citoyens ; 239 avis de réception reçus.
* 7 réponse positives de parlementaires, 18 réponses négatives.
**8 juillet 2017**
* Clôture des envois de recommandés avec l'aide des citoyens.
* Dépôt de 567 recours auprès de la Commission d'Accès aux Documents administratifs pour les parlementaires ne nous ayant pas répondu, ou ayant répondu par la négative.
**23 novembre 2017**
* Réception du premier avis de la CADA, qui se déclare incompétente pour traiter notre demande.
**du 23 novembre 2017 au 3 janvier 2018**
* Réception des 573 avis de la CADA sur les demandes à chaque parlementaire concerné. Tous les avis reçus sont identiques.
**15 mai 2018**
* Dépôt d'un recours collectif auprès du Tribunal Administratif.
...@@ -8,7 +8,11 @@ C'est simple : choisissez un parlementaire pour lequel la demande de document n ...@@ -8,7 +8,11 @@ C'est simple : choisissez un parlementaire pour lequel la demande de document n
{% else %} {% else %}
Nous avons transmis un recours auprès de la [Commission d'Accès aux Documents Administratifs (CADA)](http://cada.fr) pour chaque parlementaire n'ayant pas répondu positivement à notre demande. Celle-ci statuera vraisemblablement à la rentrée. {% if current_step == ordres.ETAPE_DEMANDE_CADA %}
Nous avons transmis un recours auprès de la [Commission d'Accès aux Documents Administratifs (CADA)](http://cada.fr) pour chaque parlementaire n'ayant pas répondu positivement à notre demande. Celle-ci statuera vraisemblablement à la rentrée.
{% elif current_step == ordres.ETAPE_REQUETE_TA %}
Nous avons déposé une requête auprès du Tribunal Administratif pour chaque parlementaire n'ayant pas répondu positivement à notre demande.
{% endif %}
En attendant, vous pouvez contacter directement l'un des parlementaires ou l'un de leurs collaborateurs pour recueillir leur avis sur cette opération, et tenter de les convaincre de nous répondre favorablement. En attendant, vous pouvez contacter directement l'un des parlementaires ou l'un de leurs collaborateurs pour recueillir leur avis sur cette opération, et tenter de les convaincre de nous répondre favorablement.
...@@ -16,4 +20,4 @@ En attendant, vous pouvez contacter directement l'un des parlementaires ou l'un ...@@ -16,4 +20,4 @@ En attendant, vous pouvez contacter directement l'un des parlementaires ou l'un
{% endif %} {% endif %}
Notez bien que tous les parlementaires sont des élus de la Nation, vous êtes donc tout à fait en droit de solliciter un élu d'une autre circonscription que celle de votre domicile. Notez bien que tous les parlementaires sont des élus de la Nation, vous êtes donc tout à fait en droit de solliciter un élu d'une autre circonscription que celle de votre domicile.
\ No newline at end of file
...@@ -10,6 +10,10 @@ ...@@ -10,6 +10,10 @@
<!-- <!--
Classification des formes Classification des formes
#pin
#nb_negatifs
#nb_positifs
.rect .rect
.parl .parl
#demande #demande
...@@ -145,6 +149,16 @@ ...@@ -145,6 +149,16 @@
#procedure #saisie_caa .label { #procedure #saisie_caa .label {
font-size: 8pt; font-size: 8pt;
} }
/* Etapes passées */
#accord_cada,
#rejet_cada,
#parl_cada,
#accord_parl_cada,
#refus_parl_cada,
#silence_parl_cada {
opacity: 0.1 !important;
}
</style> </style>
<defs <defs
...@@ -975,4 +989,49 @@ ...@@ -975,4 +989,49 @@
</g> </g>
</g> </g>
</g> </g>
<path
style="fill:#ff2000;fill-opacity:1;stroke:#bd0000;stroke-width:1.33638978;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 466.97368,53.530316 c 2.82647,-10.81409 13.71669,-21.803645 12.51016,-28.663806 -1.20652,-6.86017 -7.17453,-11.52239 -12.78506,-11.369834 -5.61053,0.152551 -11.45054,4.787129 -12.39108,11.615654 -0.94054,6.828526 10.16307,17.816918 12.66598,28.417986 z m 0.28697,-20.237954 a 7.1766908,7.1766908 0 0 1 -7.22557,-7.12763 7.1766908,7.1766908 0 0 1 7.12701,-7.225559 7.1766908,7.1766908 0 0 1 7.22556,7.127005 7.1766908,7.1766908 0 0 1 -7.127,7.226184 z"
id="pin"
transform="translate(-70,-12)"
inkscape:connector-curvature="0" />
<g
id="nb_positifs"
transform="translate(294,265)">
<path
inkscape:connector-curvature="0"
id="path1031"
d="m -135.68833,-80.411704 a 10.049657,10.049657 0 0 1 -10.04966,10.049657 10.049657,10.049657 0 0 1 -10.04966,-10.049657 10.049657,10.049657 0 0 1 10.04966,-10.049657 10.049657,10.049657 0 0 1 10.04966,10.049657 z"
style="opacity:1;vector-effect:none;fill:#66bb66;fill-opacity:1;stroke:#ddeedd;stroke-width:1.00157475;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
id="text1057"
y="-76.039421"
x="-145.41687"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:12px;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:middle;white-space:normal;shape-padding:0;opacity:1;vector-effect:none;fill:#ddeedd;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
xml:space="preserve"><tspan
y="-76.039421"
x="-145.41687"
id="tspan1055"
sodipodi:role="line">7</tspan></text>
</g>
<g
id="nb_negatifs"
transform="translate(471,360)">
<path
inkscape:connector-curvature="0"
id="path1031-7"
d="m -13.039689,-217.90771 c -5.55027,0 -10.04966,-4.49938 -10.04966,-10.04966 0,-5.55027 4.49939,-10.04966 10.04966,-10.04965 H 6.9603107 c 5.5502703,-10e-6 10.0496603,4.49938 10.0496603,10.04965 0,5.55028 -4.49939,10.04966 -10.0496603,10.04966 z"
style="opacity:1;vector-effect:none;fill:#bb6666;fill-opacity:1;stroke:#eedddd;stroke-width:1.00157475;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:nodetypes="csccscc" />
<text
id="text1057-5"
y="-223.58508"
x="-2.7185695"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:12px;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:middle;white-space:normal;shape-padding:0;opacity:1;vector-effect:none;fill:#eedddd;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
xml:space="preserve"><tspan
y="-223.58508"
x="-2.7185695"
id="tspan1055-3"
sodipodi:role="line">567</tspan></text>
</g>
</svg> </svg>
...@@ -45,7 +45,10 @@ def envoyer_alerte(app, etape, parl, commentaire=None): ...@@ -45,7 +45,10 @@ def envoyer_alerte(app, etape, parl, commentaire=None):
subject = 'Transparence IRFM - Alerte pour %s' % parl.nom_complet subject = 'Transparence IRFM - Alerte pour %s' % parl.nom_complet
if not commentaire: if not commentaire:
commentaire = etape['description'] if 'description_mail' in etape:
commentaire = etape['description_mail']
else:
commentaire = etape['description']
messages = [] messages = []
for user in parl.abonnes: for user in parl.abonnes:
......
...@@ -9,9 +9,10 @@ from ..models import Action, Parlementaire, User, db ...@@ -9,9 +9,10 @@ from ..models import Action, Parlementaire, User, db
from ..models.constants import (DEBUT_ACTION, ETAPE_A_CONFIRMER, from ..models.constants import (DEBUT_ACTION, ETAPE_A_CONFIRMER,
ETAPE_COURRIEL, ETAPES_BY_ORDRE, ETAPE_COURRIEL, ETAPES_BY_ORDRE,
ETAPE_DEMANDE_CADA, ETAPE_DOC_PUBLIE, ETAPE_DEMANDE_CADA, ETAPE_DOC_PUBLIE,
ETAPE_REPONSE_NEGATIVE, ETAPE_REPONSE_NEGATIVE, ETAPE_REQUETE_TA,
ETAPE_DOC_MASQUE, ETAPE_ENVOYE, ETAPE_DOC_MASQUE, ETAPE_ENVOYE, ETAPE_AR_RECU,
ETAPE_REPONSE_POSITIVE, ETAPE_NA) ETAPE_REPONSE_POSITIVE, ETAPE_NA,
ETAPE_INCOMPETENCE_CADA)
from .mails import envoyer_alerte from .mails import envoyer_alerte
from .text import slugify from .text import slugify
...@@ -49,12 +50,13 @@ def avance_procedure(app, ordre_etape): ...@@ -49,12 +50,13 @@ def avance_procedure(app, ordre_etape):
etape = ETAPES_BY_ORDRE.get(ordre_etape, None) etape = ETAPES_BY_ORDRE.get(ordre_etape, None)
admin = User.query.filter(User.nick == '!rc').one() admin = User.query.filter(User.nick == '!rc').one()
if ordre_etape == ETAPE_DEMANDE_CADA: if ordre_etape in (ETAPE_DEMANDE_CADA, ETAPE_INCOMPETENCE_CADA,
ETAPE_REQUETE_TA):
# Recherche des parlementaire n'ayant pas de réponse positive # Recherche des parlementaire n'ayant pas de réponse positive
# et avant l'étape CADA # et avant l'étape demandée
query = Parlementaire.query \ query = Parlementaire.query \
.filter(Parlementaire.etape != ETAPE_REPONSE_POSITIVE) \ .filter(Parlementaire.etape != ETAPE_REPONSE_POSITIVE) \
.filter(Parlementaire.etape < ETAPE_DEMANDE_CADA) .filter(Parlementaire.etape < ordre_etape)
elif etape: elif etape:
print('Etape non supportée : %s' % etape['label']) print('Etape non supportée : %s' % etape['label'])
return return
...@@ -66,10 +68,12 @@ def avance_procedure(app, ordre_etape): ...@@ -66,10 +68,12 @@ def avance_procedure(app, ordre_etape):
# ne sont pas déjà à cette étape # ne sont pas déjà à cette étape
parls = query.filter(Parlementaire.etape != ordre_etape) \ parls = query.filter(Parlementaire.etape != ordre_etape) \
.filter(Parlementaire.etape > ETAPE_NA) \ .filter(Parlementaire.etape > ETAPE_NA) \
.order_by(Parlementaire.nom) \
.all() .all()
for parl in parls: for parl in parls:
print(parl.nom_complet) print(parl.nom_complet)
act = None
# Cas particulier demande CADA # Cas particulier demande CADA
if ordre_etape == ETAPE_DEMANDE_CADA: if ordre_etape == ETAPE_DEMANDE_CADA:
...@@ -92,14 +96,32 @@ def avance_procedure(app, ordre_etape): ...@@ -92,14 +96,32 @@ def avance_procedure(app, ordre_etape):
if act: if act:
act.etape = ETAPE_DEMANDE_CADA act.etape = ETAPE_DEMANDE_CADA
# Cas particulier incompétence CADA
if ordre_etape == ETAPE_INCOMPETENCE_CADA:
# Transformation de l'action 'Document' avec l'avis CADA en action
# "incompétence cada"
act = Action.query \
.filter(Action.parlementaire == parl) \
.filter(Action.etape == ETAPE_DOC_MASQUE) \
.filter(Action.attachment.like('avis-cada-%')) \
.first()
if act:
act.etape = ETAPE_INCOMPETENCE_CADA
# Création de l'action si inexistante # Création de l'action si inexistante
if not act: if not act:
act = Action( act = Action(
parlementaire=parl, parlementaire=parl,
etape=ordre_etape, etape=ordre_etape,
date=datetime.now(), date=datetime.now(),
user=admin, user=admin
) )
if ordre_etape == ETAPE_REQUETE_TA:
act.suivi = etape['description'].strip()
act.attachment = 'requete-ta-%s.pdf' % \
slugify(parl.nom_complet)
db.session.add(act) db.session.add(act)
parl.etape = ordre_etape parl.etape = ordre_etape
...@@ -107,7 +129,7 @@ def avance_procedure(app, ordre_etape): ...@@ -107,7 +129,7 @@ def avance_procedure(app, ordre_etape):
# Commit immédiat pour pouvoir arrêter en plein milieu et reprendre # Commit immédiat pour pouvoir arrêter en plein milieu et reprendre
db.session.commit() db.session.commit()
if etape['alerte']: if etape['alerte'] and not app.config['MAIL_SUPPRESS_SEND']:
cnt = envoyer_alerte(app, etape, parl) cnt = envoyer_alerte(app, etape, parl)
if cnt: if cnt:
print('%s e-mails d\'alerte envoyés' % cnt) print('%s e-mails d\'alerte envoyés' % cnt)
...@@ -121,8 +143,9 @@ def export_pour_ta(app): ...@@ -121,8 +143,9 @@ def export_pour_ta(app):
.order_by(Parlementaire.nom) \ .order_by(Parlementaire.nom) \
.all() .all()
output_order = ['num', 'nom', 'sexe', 'refus', 'demande', 'bordereau', output_order = ['num', 'nom', 'slug', 'sexe', 'adresse', 'refus',
'avis_cada', 'date_cada'] 'demande', 'bordereau', 'cada_no', 'avis_cada',
'date_cada', 'lar_envoi', 'lar_reception']
print(';'.join(output_order)) print(';'.join(output_order))
...@@ -133,21 +156,30 @@ def export_pour_ta(app): ...@@ -133,21 +156,30 @@ def export_pour_ta(app):
data = { data = {
'num': '%03d' % parl_num, 'num': '%03d' % parl_num,
'nom': parl.nom_complet, 'nom': parl.nom_complet,
'slug': slugify(parl.nom_complet),
'sexe': parl.sexe, 'sexe': parl.sexe,
'refus': '', 'refus': ' ',
'demande': 'demande-irfm-%s.pdf' % slugify(parl.nom_complet) 'demande': 'demande-irfm-%s.pdf' % slugify(parl.nom_complet),
'adresse': parl.adresse.replace('\n', ', ').replace(',,', ',')
.replace("\xa0", " ")
} }
for act in parl.actions: for act in parl.actions:
if act.etape == ETAPE_ENVOYE: if act.etape == ETAPE_ENVOYE:
data['bordereau'] = act.attachment data['bordereau'] = act.attachment or 'NONE'
data['lar_envoi'] = act.date.strftime('%d %B %Y')
if act.etape == ETAPE_AR_RECU:
data['lar_reception'] = act.date.strftime('%d %B %Y')
if act.etape == ETAPE_REPONSE_NEGATIVE: if act.etape == ETAPE_REPONSE_NEGATIVE:
data['refus'] = 'REFUS' data['refus'] = 'REFUS'
if act.etape == ETAPE_DOC_MASQUE and \ if act.etape == ETAPE_DOC_MASQUE and \
act.attachment.startswith('avis-cada'): act.attachment.startswith('avis-cada'):
data['avis_cada'] = act.attachment data['avis_cada'] = act.attachment or 'NONE'
data['date_cada'] = act.date.strftime('%d/%m/%Y') data['date_cada'] = act.date.strftime('%d %B %Y')
data['cada_no'] = data['avis_cada'].replace('avis-cada-', '') \
.replace('.pdf', '')
print(';'.join([data.get(k, '') for k in output_order])) print(';'.join([data.get(k, '') for k in output_order]))
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment