diff --git a/cspell.json b/cspell.json index 4b33dee..b84dba2 100644 --- a/cspell.json +++ b/cspell.json @@ -4,25 +4,26 @@ "dictionaryDefinitions": [], "dictionaries": [], "words": [ + "Ammeldelink", + "anmeldung", + "hilpoltstein", + "Keycloak", + "KeycloakOIDCAB", + "oidc", + "onetimelogin", + "orga", + "organisator", + "organisators", + "repa", + "repaircafe", + "repapp", + "reparateur", "Reparateur", "Reparateure", - "reparateur", - "organisator", + "reparateurs", "Reparateurs", - "repapp", - "oidc", - "anmeldung", - "repaircafe", - "hilpoltstein", - "KeycloakOIDCAB", - "Keycloak", - "tabindex", - "onetimelogin", - "Ammeldelink", - "orga", - "repa", - "organisators" + "tabindex" ], "ignoreWords": [], "import": [] -} \ No newline at end of file +} diff --git a/rc_hip/repapp/templates/repapp/orga/main.html b/rc_hip/repapp/templates/repapp/orga/main.html index 18b2db2..0d44f7a 100644 --- a/rc_hip/repapp/templates/repapp/orga/main.html +++ b/rc_hip/repapp/templates/repapp/orga/main.html @@ -17,7 +17,8 @@

Repair-Cafés

Neues Repair-Café anlegen - Nächstes Repair-Café + Nächstes Repair-Café


Geräte

diff --git a/rc_hip/repapp/templates/repapp/orga/plan_cafe.html b/rc_hip/repapp/templates/repapp/orga/plan_cafe.html new file mode 100644 index 0000000..d0319d0 --- /dev/null +++ b/rc_hip/repapp/templates/repapp/orga/plan_cafe.html @@ -0,0 +1,86 @@ +{% extends "repapp/base.html" %} +{% block title %} + - Repair-Café planen +{% endblock title %} +{% block page_title %} + Repair-Café planen +{% endblock page_title %} +{% block content %} +

+ Zurück +

+

Repair-Café am {{ cafe.event_date|date:"l" }}, {{ cafe.event_date|date }}

+
+

Reparateure

+ + + + + + + + + + + {% for reparateur in reparateurs %} + + + + + + + {% empty %} + + + + {% endfor %} + +
NameeMailTeilnahmen zugesagt?
{{ reparateur.name }}{{ reparateur.mail }} + {% if reparateur.accepted %} + Ja + {% else %} + Nein + {% endif %} + + {% if not reparateur.accepted %} + einplanen + {% else %} + ausplanen + {% endif %} +
Es gibt keine Reparateure.
+
+

Geräte

+ + + + + + + + + + + + {% for device in devices %} + + + + + + + + {% empty %} + + + + {% endfor %} + +
Art des GerätsHersteller & Modell/TypInteressentenReparateur
{{ device.device }}{{ device.manufacturer }} + {% for reparateur in device.reparateur.all %} + {{ reparateur.name }} +
+ {% endfor %} +
//TODO: dropdown + aktualisieren +
Es gibt kein Geräte.
+{% endblock content %} diff --git a/rc_hip/repapp/urls.py b/rc_hip/repapp/urls.py index 535373a..abf4c4a 100644 --- a/rc_hip/repapp/urls.py +++ b/rc_hip/repapp/urls.py @@ -35,6 +35,7 @@ urlpatterns = [ views.review_device_accept, name="review_device_accept"), path("orga/review//reject/", views.RejectDeviceFormView.as_view(), name="review_device_reject"), + path("orga//", views.orga_plan_cafe, name="orga_plan_cafe"), path("member/device//question/", views.QuestionDeviceFormView.as_view(), name="device_question"), path("member/device//question/edit", diff --git a/rc_hip/repapp/views.py b/rc_hip/repapp/views.py index 73f1eeb..93f5150 100644 --- a/rc_hip/repapp/views.py +++ b/rc_hip/repapp/views.py @@ -1076,3 +1076,35 @@ def repa_device_unassign(request, device): return HttpResponseRedirect(reverse_lazy('repa_view_device', kwargs={ 'device': device.id })) + + +@login_required(login_url=reverse_lazy('member')) +def orga_plan_cafe(request, cafe): + """ + View device details. + """ + # TODO: test + if not is_organisator(request.user): + raise PermissionDenied('Not organisator!') + + cafe = get_object_or_404(Cafe, pk=cafe) + reparateurs = [] + for reparateur in Reparateur.objects.all(): + if cafe.reparateur.filter(pk=reparateur.pk).count() > 0: + reparateur.accepted = True + else: + reparateur.accepted = False + reparateurs.append(reparateur) + + devices = Device.objects.filter( + status__gte=Device.STATUS_WAITING_LIST).all() + + return render( + request, + "repapp/orga/plan_cafe.html", + { + 'cafe': cafe, + 'devices': devices, + 'reparateurs': reparateurs, + } + )