Skip to content

Commit ef653a0

Browse files
committed
add text semester preparation reminder view
1 parent ba791ab commit ef653a0

File tree

2 files changed

+63
-32
lines changed

2 files changed

+63
-32
lines changed

evap/staff/templates/staff_semester_preparation_reminder.html

+57-30
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,12 @@
99

1010
{% block content %}
1111
{{ block.super }}
12-
13-
{% if responsible_list %}
14-
<div class="d-flex mb-3">
15-
<div class="me-auto">
16-
12+
<h3>
13+
{% translate 'Preparation reminder' %} ({{ semester.name }})
14+
</h3>
15+
<div class="d-flex mb-3">
16+
<div class="me-auto">
17+
{% if responsible_list and interactive %}
1718
<form reload-on-success method="POST" action="{% url 'staff:semester_preparation_reminder' semester_id=semester.id %}">
1819
{% csrf_token %}
1920

@@ -27,35 +28,47 @@
2728
<button slot="show-button" type="button" id="remindAllButton" class="btn btn-sm btn-light">{% translate 'Remind all' %}</button>
2829
</confirmation-modal>
2930
</form>
31+
{% endif %}
32+
</div>
33+
<div class="btn-switch btn-switch-light ms-2 d-print-none h-">
34+
<div class="btn-switch-label">{% translate 'View' %}</div>
35+
<div class="btn-switch btn-group">
36+
<a href="{% url 'staff:semester_preparation_reminder' semester_id=semester.id %}" role="button" class="btn btn-sm btn-light {% if interactive %} active{% endif %}">
37+
{% translate 'Interactive' %}
38+
</a>
39+
<a href="{% url 'staff:semester_preparation_reminder' semester_id=semester.id %}?mode=text" role="button" class="btn btn-sm btn-light{% if not interactive %} active{% endif %}">
40+
{% translate 'Text' %}
41+
</a>
3042
</div>
3143
</div>
32-
{% endif %}
44+
</div>
3345

34-
{% for responsible, evaluations, delegates in responsible_list %}
35-
<div class="card{% if not forloop.last %} mb-3{% endif %}">
36-
<div class="card-header d-flex">
37-
<span class="ps-1 me-auto">
38-
<a href="{% url 'staff:user_edit' responsible.id %}">{{ responsible.full_name }}</a>, {% translate 'Delegates' %}:
39-
{% for delegate in delegates %}
40-
<a href="{% url 'staff:user_edit' delegate.id %}">{{ delegate.full_name }}</a>{% if not forloop.last %},{% endif %}
41-
{% empty %}
42-
&mdash;
43-
{% endfor %}
44-
</span>
45-
<div>
46-
<a href="{% url 'staff:send_reminder' semester.id responsible.id %}" class="btn btn-sm btn-light">{% translate 'Send reminder' %}</a>
46+
{% if interactive %}
47+
{% for responsible, evaluations, delegates in responsible_list %}
48+
<div class="card{% if not forloop.last %} mb-3{% endif %}">
49+
<div class="card-header d-flex">
50+
<span class="ps-1 me-auto">
51+
<a href="{% url 'staff:user_edit' responsible.id %}">{{ responsible.full_name }}</a>, {% translate 'Delegates' %}:
52+
{% for delegate in delegates %}
53+
<a href="{% url 'staff:user_edit' delegate.id %}">{{ delegate.full_name }}</a>{% if not forloop.last %},{% endif %}
54+
{% empty %}
55+
&mdash;
56+
{% endfor %}
57+
</span>
58+
<div>
59+
<a href="{% url 'staff:send_reminder' semester.id responsible.id %}" class="btn btn-sm btn-light">{% translate 'Send reminder' %}</a>
60+
</div>
4761
</div>
48-
</div>
49-
<div class="card-body">
50-
<table class="table table-striped">
51-
<thead>
62+
<div class="card-body">
63+
<table class="table table-striped">
64+
<thead>
5265
<tr>
5366
<th class="width-percent-57">{% translate 'Name' %}</th>
5467
<th class="width-percent-18">{% translate 'Start of evaluation' %}</th>
5568
<th class="width-percent-25">{% translate 'Last modified by' %}</th>
56-
</tr>
57-
</thead>
58-
<tbody>
69+
</tr>
70+
</thead>
71+
<tbody>
5972
{% for evaluation in evaluations %}
6073
<tr{% if evaluation.state != evaluation.State.PREPARED %} class="deactivate"{% endif %}>
6174
<th scope="row">
@@ -75,10 +88,24 @@
7588
</td>
7689
</tr>
7790
{% endfor %}
78-
</tbody>
79-
</table>
91+
</tbody>
92+
</table>
93+
</div>
94+
</div>
95+
{% endfor %}
96+
{% else %}
97+
<div class="card">
98+
<div class="card-body">
99+
{% for responsible, evaluations, _ in responsible_list %}
100+
<b>{{ responsible.full_name }}</b><br />
101+
{% for evaluation in evaluations %}
102+
- {{ evaluation.full_name }} (<span class="fst-italic">{{ evaluation.course.type }}</span>)<br />
103+
{% endfor %}
104+
{% if not forloop.last %}
105+
<br />
106+
{% endif %}
107+
{% endfor %}
80108
</div>
81109
</div>
82-
{% endfor %}
83-
110+
{% endif %}
84111
{% endblock %}

evap/staff/views.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -919,7 +919,11 @@ def semester_questionnaire_assign(request, semester_id):
919919

920920

921921
@manager_required
922-
def semester_preparation_reminder(request, semester_id):
922+
def semester_preparation_reminder(request: HttpRequest, semester_id: int) -> HttpResponse:
923+
mode = request.GET.get("mode", "interactive")
924+
if request.method == "POST" and mode == "text" or mode not in ["interactive", "text"]:
925+
raise SuspiciousOperation
926+
923927
semester = get_object_or_404(Semester, id=semester_id)
924928

925929
evaluations = semester.evaluations.filter(
@@ -949,7 +953,7 @@ def semester_preparation_reminder(request, semester_id):
949953
messages.success(request, _("Successfully sent reminders to everyone."))
950954
return HttpResponse()
951955

952-
template_data = {"semester": semester, "responsible_list": responsible_list}
956+
template_data = {"semester": semester, "responsible_list": responsible_list, "interactive": mode == "interactive"}
953957
return render(request, "staff_semester_preparation_reminder.html", template_data)
954958

955959

0 commit comments

Comments
 (0)