Commit bdb62a17 authored by Nicolas Joyard's avatar Nicolas Joyard

Gestion bascule doc publié/masqué

parent 60e62898
......@@ -40,7 +40,8 @@ SEXES = {
# L'ordre est utilisé comme clé primaire lors de cet import.
#
ETAPE_DOCUMENT = -30
ETAPE_DOC_PUBLIE = -31
ETAPE_DOC_MASQUE = -30
ETAPE_COM_PUBLIE = -21
ETAPE_COM_A_MODERER = -20
ETAPE_COURRIEL = -10
......@@ -54,12 +55,23 @@ ETAPE_REPONSE_NEGATIVE = 50
ETAPES = [
{
'ordre': ETAPE_DOCUMENT,
'ordre': ETAPE_DOC_PUBLIE,
'label': 'Document',
'description': """
Un document nous a été transmis par le parlementaire.
""",
'couleur': '#88dd88',
'couleur': '#33aa33',
'icone': 'paperclip',
'hidden': False,
'alerte': False,
},
{
'ordre': ETAPE_DOC_MASQUE,
'label': 'Document (non publié)',
'description': """
Un document nous a été transmis par le parlementaire.
""",
'couleur': '#ccaa66',
'icone': 'paperclip',
'hidden': True,
'alerte': False,
......
......@@ -10,7 +10,8 @@ from sqlalchemy.orm import joinedload
from ..models import Action, Parlementaire, User, db
from ..models.constants import (ETAPE_A_CONFIRMER, ETAPE_A_ENVOYER,
ETAPES_BY_ORDRE, ETAPE_COM_A_MODERER,
ETAPE_COM_PUBLIE, ETAPE_DOCUMENT)
ETAPE_COM_PUBLIE, ETAPE_DOC_MASQUE,
ETAPE_DOC_PUBLIE)
from ..tools.files import EXTENSIONS, handle_upload
from ..tools.mails import envoyer_alerte
......@@ -103,12 +104,20 @@ def setup_routes(app):
@require_admin
def admin_publish(id):
action = Action.query \
.filter(Action.etape == ETAPE_COM_A_MODERER) \
.filter(Action.etape.in_([ETAPE_COM_A_MODERER,
ETAPE_DOC_MASQUE,
ETAPE_DOC_PUBLIE])) \
.filter(Action.id == id) \
.first()
if action:
action.etape = ETAPE_COM_PUBLIE
if action.etape == ETAPE_COM_A_MODERER:
action.etape = ETAPE_COM_PUBLIE
elif action.etape == ETAPE_DOC_PUBLIE:
action.etape = ETAPE_DOC_MASQUE
elif action.etape == ETAPE_DOC_MASQUE:
action.etape = ETAPE_DOC_PUBLIE
db.session.commit()
return redirect_back()
......@@ -147,7 +156,7 @@ def setup_routes(app):
return redirect_back(error=msg,
fallback=url_for('parlementaire', id=id_parl))
if etape == ETAPE_DOCUMENT:
if etape in (ETAPE_DOC_MASQUE, ETAPE_DOC_PUBLIE):
prefix = 'document'
else:
prefix = 'etape-%s' % etape
......
......@@ -8,8 +8,9 @@ from ..models import Action, Parlementaire, User
from ..models.constants import (CHAMBRES, ETAPES, ETAPES_BY_ORDRE,
ETAPE_AR_RECU, ETAPE_A_CONFIRMER,
ETAPE_A_ENVOYER, ETAPE_COM_A_MODERER,
ETAPE_COM_PUBLIE, ETAPE_COURRIEL, ETAPE_ENVOYE,
ETAPE_NA, ETAPE_REPONSE_NEGATIVE,
ETAPE_COM_PUBLIE, ETAPE_COURRIEL,
ETAPE_DOC_MASQUE, ETAPE_DOC_PUBLIE,
ETAPE_ENVOYE, ETAPE_NA, ETAPE_REPONSE_NEGATIVE,
ETAPE_REPONSE_POSITIVE)
......@@ -143,6 +144,8 @@ def setup(app):
'ordres': {
'ETAPE_COM_PUBLIE': ETAPE_COM_PUBLIE,
'ETAPE_COM_A_MODERER': ETAPE_COM_A_MODERER,
'ETAPE_DOC_MASQUE': ETAPE_DOC_MASQUE,
'ETAPE_DOC_PUBLIE': ETAPE_DOC_PUBLIE,
'ETAPE_COURRIEL': ETAPE_COURRIEL,
'ETAPE_NA': ETAPE_NA,
'ETAPE_A_ENVOYER': ETAPE_A_ENVOYER,
......
......@@ -47,19 +47,23 @@
{{ action.suivi|e }}
{% endif %}
</td>
<td>
<td class="col-nobreak">
{% if action.attachment %}
<a class="btn btn-default btn-sm" href="{{ url_for('attachment', id=action.id) }}" target="_blank">Voir</a>
{{ action.attachment }}
{% endif %}
</td>
<td class="col-right">
{% if action.etape == ordres.ETAPE_COM_A_MODERER %}
<a class="btn btn-primary btn-sm" href="{{ url_for('admin_publish', id=action.id) }}" title="Publier" data-toggle="tooltip"><i class="fa fa-check"></i></a>
<td class="col-right col-nobreak">
{% if action.etape in (ordres.ETAPE_COM_A_MODERER, ordres.ETAPE_DOC_MASQUE) %}
<a class="btn btn-primary btn-sm" href="{{ url_for('admin_publish', id=action.id) }}" title="Publier" data-toggle="tooltip"><i class="fa fa-eye"></i></a>
{% elif action.etape == ordres.ETAPE_DOC_PUBLIE %}
<a class="btn btn-warning btn-sm" href="{{ url_for('admin_publish', id=action.id) }}" title="Masquer" data-toggle="tooltip"><i class="fa fa-eye-slash"></i></a>
{% endif %}
{% if action.etape == ordres.ETAPE_COM_A_MODERER or
action.etape == ordres.ETAPE_COM_PUBLIE or
action.etape == ordres.ETAPE_DOC_MASQUE or
action.etape == ordres.ETAPE_DOC_PUBLIE or
action.etape == action.parlementaire.etape %}
<a class="btn btn-danger btn-sm" href="{{ url_for('admin_delete', id=action.id) }}" title="Supprimer" data-toggle="tooltip"><i class="fa fa-trash"></i></a>
{% endif %}
......
......@@ -158,16 +158,25 @@
{% endif %}
</td>
<td class="col-right col-nobreak">
{% if act.attachment %}
{% set doc_label -%}
{% if act.etape == ordres.ETAPE_ENVOYE %}
Voir la preuve d'envoi
{% else %}
Voir le document joint
{% endif %}
{%- endset %}
<a class="btn btn-default btn-sm" target="_blank" href="{{ url_for('attachment', id=act.id) }}">{{ doc_label }}</a>
{% endif %}
{% if act.etape == ordres.ETAPE_A_CONFIRMER %}
<a class="btn btn-default btn-sm" target="_blank" href="{{ url_for('demande_pdf', id=parlementaire.id, mode='show') }}">
<i class="fa fa-download"></i> Télécharger le courrier (PDF)
</a>
{% elif act.etape == ordres.ETAPE_ENVOYE and act.attachment %}
<a class="btn btn-default btn-sm" target="_blank" href="{{ url_for('preuve_envoi', id=parlementaire.id) }}">Voir la preuve d'envoi</a>
{% elif act.etape == ordres.ETAPE_COM_A_MODERER and is_admin %}
<a class="btn btn-primary btn-sm" href="{{ url_for('admin_publish', id=act.id) }}" title="Publier" data-toggle="tooltip"><i class="fa fa-check"></i></a>
{% elif act.attachment %}
<a class="btn btn-default btn-sm" target="_blank" href="{{ url_for('attachment', id=act.id) }}">Voir le document joint</a>
{% elif act.etape in (ordres.ETAPE_COM_A_MODERER, ordres.ETAPE_DOC_MASQUE) and is_admin %}
<a class="btn btn-primary btn-sm" href="{{ url_for('admin_publish', id=act.id) }}" title="Publier" data-toggle="tooltip"><i class="fa fa-eye"></i></a>
{% elif act.etape == ordres.ETAPE_DOC_PUBLIE and is_admin %}
<a class="btn btn-warning btn-sm" href="{{ url_for('admin_publish', id=act.id) }}" title="Masquer" data-toggle="tooltip"><i class="fa fa-eye-slash"></i></a>
{% endif %}
{% if is_admin %}
......@@ -529,7 +538,7 @@
<div class="col-md-10">
<select name="etape">
{% for etape in etapes if etape.ordre > parlementaire.etape or etape.ordre < -10 %}
<option value="{{ etape.ordre }}">{{ etape.label }}</option>
<option value="{{ etape.ordre }}">{{ etape.label }}{% if etape.ordre == ordres.ETAPE_DOC_PUBLIE %} (public !){% endif %}</option>
{% endfor %}
</select>
</div>
......
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