diff --git a/data_xml.py b/data_xml.py index bb7fe1a..2e7c5d5 100644 --- a/data_xml.py +++ b/data_xml.py @@ -10,11 +10,23 @@ POSTS = {POST_ACTUALITIES: "Actualités", POST_JOBS: "Offres d’emploi"} STATE_WAITING = 'waiting' STATE_PUBLISHED = 'published' -STATES = {STATE_WAITING: "En attente", STATE_PUBLISHED: "Publié"} +STATE_TRASHED = 'trash' +STATES = { + STATE_WAITING: "En attente", + STATE_PUBLISHED: "Publié", + STATE_TRASHED: "À la corbeille" +} ACTION_PUBLISH = 'publish' ACTION_UNPUBLISH = 'unpublish' -ACTIONS = {ACTION_PUBLISH: "Publier", ACTION_UNPUBLISH: "Dépublier"} +ACTION_REPUBLISH = 'republish' +ACTION_TRASH = 'trash' +ACTIONS = { + ACTION_PUBLISH: "Publier", + ACTION_UNPUBLISH: "Dépublier", + ACTION_REPUBLISH: "Republier", + ACTION_TRASH: "Supprimer", +} TIMESTAMP = '_timestamp' STATE = '_state' @@ -90,6 +102,8 @@ def save_post(category, timestamp, admin, form): status = STATE_WAITING elif get_path(category, STATE_PUBLISHED, timestamp, BASE_FILE).is_file(): status = STATE_PUBLISHED + elif get_path(category, STATE_TRASHED, timestamp, BASE_FILE).is_file(): + status = STATE_TRASHED else: raise DataException(http_code=404) if status == STATE_PUBLISHED and not admin: @@ -117,5 +131,13 @@ def save_post(category, timestamp, admin, form): (root / category / STATE_PUBLISHED / timestamp).rename( root / category / STATE_WAITING / timestamp ) + elif ACTION_REPUBLISH in form and status == STATE_TRASHED: + (root / category / STATE_TRASHED / timestamp).rename( + root / category / STATE_PUBLISHED / timestamp + ) + elif ACTION_TRASH in form and status == STATE_PUBLISHED: + (root / category / STATE_PUBLISHED / timestamp).rename( + root / category / STATE_TRASHED / timestamp + ) return get_post(category, timestamp) diff --git a/templates/admin.html b/templates/admin.html index 6254e3d..b57e547 100644 --- a/templates/admin.html +++ b/templates/admin.html @@ -8,7 +8,13 @@

{{ label }}

{% for state, timestamps in posts.items() %} - {% set state_label = 'En attente' if state == 'waiting' else 'Publiés' %} + {% if state == 'waiting' %} + {% set state_label= 'En attente' %} + {% elif state == 'published' %} + {% set state_label= 'Publiés' %} + {% else %} + {% set state_label= 'Supprimés' %} + {% endif %}

{{ state_label }}

{% if timestamps %} diff --git a/templates/edit_post.html b/templates/edit_post.html index a2f4245..ee6c54c 100644 --- a/templates/edit_post.html +++ b/templates/edit_post.html @@ -52,12 +52,21 @@ {% if admin %} - {% if post.state == 'waiting' %} + + {% if post._state == 'waiting' %} - {% else %} + {% elif post._state == 'published' %} + {% else %} + {% endif %} + + {% endif %} + {% if post._state == 'published' %} + + {% endif %} + {% if name == 'actualites' %}