rewrite the event view in a much cleaner way

- Cleaner code, no locals
- Indentation in the template makes it readable!
This commit is contained in:
Martin Pépin 2019-03-16 19:09:12 +01:00
parent fe06636502
commit 1a935523c6
2 changed files with 73 additions and 60 deletions

View file

@ -1,57 +1,70 @@
{% extends "gestion/base.html" %} {% extends "gestion/base.html" %}
{% block titre %}{{ nom }}{% endblock %} {% block titre %}{{ event.nom.capitalize }}{% endblock %}
{% block content %} {% block content %}
<div id="viewevent"> <div id="viewevent">
<h1>{{ nom }}</h1> <h1>{{ event.nom.capitalize }}</h1>
<h4>Le {{ev.date}}{% if fin %} de {{ ev.debut|time:"H:i"}} à {{ ev.fin|time:"H:i" }} {%else %} à {{ ev.debut|time:"H:i" }} {%endif %}{{ ev.lieu }}</h4> <h4>
{% if desc %} Le {{ event.date }}
<p>{{ev.description|safe }}</p> {% if event.fin %}
{% endif %} de {{ event.debut|time:"H:i"}} à {{ event.fin|time:"H:i" }}
{% if user.is_authenticated and ev.desc_users %} {% else %}
<p>{{ ev.desc_users|safe }}</p> à {{ event.debut|time:"H:i" }}
{% endif %} {% endif %}
{{ event.lieu }}
</h4>
{% if event.desciption %}
<p>{{ event.description|safe }}</p>
{% endif %}
{% if user.is_authenticated and event.desc_users %}
<p>{{ event.desc_users|safe }}</p>
{% endif %}
</div> </div>
{% if user.is_authenticated %} {% if user.is_authenticated %}
<div id="actions"> <div id="actions">
{% if user.profile.is_chef %} {% if user.profile.is_chef %}
<p><a href="{% url "calendrier:edit_event" ev.id %}">Modifier l'événement</a></p> <p><a href="{% url "calendrier:edit_event" event.id %}">Modifier l'événement</a></p>
<p><a href="{% url "calendrier:delete_event" ev.id %}">Supprimer l'événement</a></p> <p><a href="{% url "calendrier:delete_event" event.id %}">Supprimer l'événement</a></p>
<p><a href="{% url "calendrier:resend" ev.id %}">Renvoyer les mails</a></p> <p><a href="{% url "calendrier:resend" event.id %}">Renvoyer les mails</a></p>
{% endif %} {% endif %}
<p><a href="{% url "calendrier:change-doodle-name" %}">Changer mon nom pour le doodle</a></p> <p><a href="{% url "calendrier:change-doodle-name" %}">Changer mon nom pour le doodle</a></p>
</div> </div>
{% endif %} {% endif %}
{% if user.is_authenticated %} {% if user.is_authenticated %}
<div id="doodle"> <div id="doodle">
<h4>Participants</h4> <h4>Participants</h4>
<p><b>{{ nboui }}</b> ont répondu oui, <b>{{ nbpe }}</b> peut-être, et <b>{{ nbnon }}</b> non</p> <p><b>{{ nboui }}</b> ont répondu oui, <b>{{ nbpe }}</b> peut-être, et <b>{{ nbnon }}</b> non</p>
<table> <table>
{% if part %}<tr> {% if participants %}
<th>Ernestophoniste</th> <tr>
<th>Réponse</th> <th>Ernestophoniste</th>
<th></th> <th>Réponse</th>
</tr> <th></th>
{% endif %} </tr>
{% for p in part %} {% endif %}
<tr> {% for p in participants %}
{% if p.participant.doodlename %} <tr>
<td>{{ p.participant.doodlename }}</td> {% if p.participant.doodlename %}
{%else %} <td>{{ p.participant.doodlename }}</td>
<td>{{ p.participant.user.username }}</td> {% else %}
{% endif %} <td>{{ p.participant.user.username }}</td>
{% if p.reponse == "oui" %}<td class="oui"></td><td class="details">{{ p.details }}</td> {% endif %}
{% elif p.reponse == "pe" %}<td class="pe"></td><td class="details">{{ p.details }}</td> {% if p.reponse == "oui" %}
{% elif p.reponse == "non" %}<td class="non"></td><td class="details">{{ p.details }}</td> <td class="oui"></td><td class="details">{{ p.details }}</td>
{% else %} {% elif p.reponse == "pe" %}
{% endif %} <td class="pe"></td><td class="details">{{ p.details }}</td>
</tr> {% elif p.reponse == "non" %}
{% empty %} <td class="non"></td><td class="details">{{ p.details }}</td>
Pas de réponse pour l'instant {% endif %}
{% endfor %} </tr>
</table> {% empty %}
<p><a href="{% url 'calendrier:reponse' id %}">Répondre à l'événement</a></p> Pas de réponse pour l'instant
</div> {% endfor %}
</table>
<p><a href="{% url 'calendrier:reponse' event.id %}">Répondre à l'événement</a></p>
</div>
{% endif %} {% endif %}
{% endblock %} {% endblock %}

View file

@ -70,21 +70,21 @@ def calendar(request, pYear, pMonth):
def view_event(request, id): def view_event(request, id):
ev = get_object_or_404(Event, id=id) event = get_object_or_404(Event, id=id)
if not request.user.is_authenticated and not ev.calendrier:
# Restricted event, only erneso users can see it
if not request.user.is_authenticated and not event.calendrier:
return redirect(reverse('calendrier:home')) return redirect(reverse('calendrier:home'))
part = ev.participants_set.all()
nom = ev.nom.capitalize participants = event.participants_set.all()
fin = False context = {
desc = False "event": event,
nboui = len(part.filter(reponse="oui")) "participants": participants,
nbpe = len(part.filter(reponse="pe")) "nboui": len(participants.filter(reponse="oui")),
nbnon = len(part.filter(reponse="non")) "nbpe": len(participants.filter(reponse="pe")),
if ev.fin: "nbnon": len(participants.filter(reponse="non")),
fin = True }
if ev.description: return render(request, 'calendrier/view_event.html', context=context)
desc = True
return render(request, 'calendrier/view_event.html', locals())
# XXX: Horrible nasty code duplication. Go to hell RikM # XXX: Horrible nasty code duplication. Go to hell RikM