Commit 9c514e84 authored by Nicolas Joyard's avatar Nicolas Joyard

Gestion confirmation envoi (sans upload)

parent f5f88eff
......@@ -5,9 +5,9 @@ from datetime import datetime
from flask import abort, flash, redirect, render_template, session, url_for
from sqlalchemy.orm import joinedload, contains_eager
from .util import redirect_back, require_user
from .util import not_found, redirect_back, require_user
from ..models import db, Action, Etape, Parlementaire
from ..models.constants import ETAPE_A_ENVOYER, ETAPE_A_CONFIRMER
from ..models.constants import ETAPE_A_ENVOYER, ETAPE_A_CONFIRMER, ETAPE_ENVOYE
def setup_routes(app):
......@@ -34,7 +34,7 @@ def setup_routes(app):
.first()
if not parl:
abort(404)
return not_found()
pris_en_charge = False
if session.get('user') and parl.etape.ordre == ETAPE_A_CONFIRMER:
......@@ -64,7 +64,7 @@ def setup_routes(app):
.first()
if not parl:
abort(404)
return not_found()
if parl.etape.ordre != ETAPE_A_ENVOYER:
msg = 'Oups, la situation a changé pour ce parlementaire...'
......@@ -98,7 +98,7 @@ def setup_routes(app):
.first()
if not parl:
abort(404)
return not_found()
pris_en_charge = False
if parl.etape.ordre == ETAPE_A_CONFIRMER:
......@@ -121,3 +121,31 @@ def setup_routes(app):
db.session.commit()
return redirect(url_for('parlementaire', id=id))
@app.route('/parlementaire/<id>/confirmer', endpoint='confirmer',
methods=['POST'])
@require_user
def confirmer(id):
parl = Parlementaire.query.filter_by(id=id) \
.options(joinedload(Parlementaire.groupe)) \
.options(joinedload(Parlementaire.etape)) \
.options(joinedload(Parlementaire.actions)) \
.first()
if not parl:
return not_found()
parl.etape = Etape.query.filter_by(ordre=ETAPE_ENVOYE).first()
action = Action(
date=datetime.utcnow(),
nick=session['user']['nick'],
email=session['user']['email'],
parlementaire=parl,
etape=parl.etape
)
db.session.add(action)
db.session.commit()
return redirect(url_for('parlementaire', id=id))
......@@ -5,7 +5,7 @@ from io import BytesIO
from flask import abort, make_response, render_template
from xhtml2pdf import pisa
from .util import slugify
from .util import not_found, slugify
from ..models import Parlementaire
......@@ -17,7 +17,7 @@ def setup_routes(app):
parl = Parlementaire.query.filter_by(id=id).first()
if not parl:
abort(404)
return not_found()
slug = slugify(parl.nom_complet)
......
......@@ -5,7 +5,7 @@ import unicodedata
from urllib.parse import urlparse, urljoin
from flask import (abort, flash, make_response, redirect, render_template,
request, session)
request, session, url_for)
SLUG_STRIP_RE = re.compile(r'[^\w\s-]')
......@@ -41,6 +41,10 @@ def redirect_back(fallback=None, error=None):
return redirect(url_for('home'))
def not_found():
return redirect_back(error='Oups, la page demandée n\'existe pas')
def sanitize(text):
return re.sub(r'[^@A-Za-z0-9_.-]', '', text)
......
......@@ -47,7 +47,7 @@
Vous avez pris en charge l'envoi du courrier à ce parlementaire. Pour confirmer l'envoi,
merci de nous envoyer une photo ou un scan de la preuve de dépôt à l'aide du formulaire ci-dessous.
<form>
<form method="POST" action="{{ url_for('confirmer', id=parlementaire.id) }}">
<div class="form-group">
<label class="col-md-4" for="file">Preuve d'envoi</label>
<div class="col-md-8">
......
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