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
+
+
+
+ | Name |
+ eMail |
+ Teilnahmen zugesagt? |
+ |
+
+
+
+ {% for reparateur in reparateurs %}
+
+ | {{ reparateur.name }} |
+ {{ reparateur.mail }} |
+
+ {% if reparateur.accepted %}
+ Ja
+ {% else %}
+ Nein
+ {% endif %}
+ |
+
+ {% if not reparateur.accepted %}
+ einplanen
+ {% else %}
+ ausplanen
+ {% endif %}
+ |
+
+ {% empty %}
+
+ | Es gibt keine Reparateure. |
+
+ {% endfor %}
+
+
+
+ Geräte
+
+
+
+ | Art des Geräts |
+ Hersteller & Modell/Typ |
+ Interessenten |
+ Reparateur |
+ |
+
+
+
+ {% for device in devices %}
+
+ | {{ device.device }} |
+ {{ device.manufacturer }} |
+
+ {% for reparateur in device.reparateur.all %}
+ {{ reparateur.name }}
+
+ {% endfor %}
+ |
+ //TODO: dropdown |
+
+ aktualisieren
+ |
+
+ {% empty %}
+
+ | Es gibt kein Geräte. |
+
+ {% endfor %}
+
+
+{% 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,
+ }
+ )