index view, fix data folder issue

This commit is contained in:
Tom Irgang 2023-04-18 20:04:32 +02:00
parent 054fb8dade
commit cf6b51e16b
7 changed files with 67 additions and 28 deletions

View file

@ -10,6 +10,7 @@ RUN ln -sf /dev/stdout /var/log/nginx/access.log \
RUN mkdir -p /opt/app RUN mkdir -p /opt/app
RUN mkdir -p /opt/app/pip_cache RUN mkdir -p /opt/app/pip_cache
RUN mkdir -p /opt/app/rc_hip RUN mkdir -p /opt/app/rc_hip
RUN mkdir -p /opt/app/rc_hip/data
COPY rc_hip /opt/app/rc_hip COPY rc_hip /opt/app/rc_hip
RUN rm -f /opt/app/rc_hip/data/db.sqlite3 RUN rm -f /opt/app/rc_hip/data/db.sqlite3

View file

@ -20,32 +20,32 @@ Ein Organisator ist Mitglied des Repair-Cafés das die Termine mit den Gästen o
### Gast ### Gast
- [ ] (A1) Als Gast möchte ich einen Termin für eine Reparatur vereinbaren. - [ ] Als Gast möchte ich einen Termin für eine Reparatur vereinbaren. (A1)
- [ ] (A2) Als Gast möchte ich eine Bestätigung für eine Reparaturanfrage bekommen. - [ ] Als Gast möchte ich eine Bestätigung für eine Reparaturanfrage bekommen. (A2)
- [ ] (A3) Als Gast möchte ich eine Terminbenachrichtigung oder eine Absage bekommen. - [ ] Als Gast möchte ich eine Terminbenachrichtigung oder eine Absage bekommen. (A3)
- [ ] (A4) Als Gast möchte ich mein angemeldetes Gerät und dessen Status einsehen können. - [ ] Als Gast möchte ich mein angemeldetes Gerät und dessen Status einsehen können. (A4)
- [ ] (A5) Als Gast möchte ich Rückfragen zum Gerät empfangen und diese beantworten können. - [ ] Als Gast möchte ich Rückfragen zum Gerät empfangen und diese beantworten können. (A5)
- [ ] (A6) Als Gast möchte ich ein Gerät für eine Folgereparatur anmelden können - [ ] Als Gast möchte ich ein Gerät für eine Folgereparatur anmelden können. (A6)
### Reparateur ### Reparateur
- [ ] (A7) Als Reparateur möchte ich die angemeldeten Geräte ansehen können. - [ ] Als Reparateur möchte ich die angemeldeten Geräte ansehen können. (A7)
- [ ] (A8) Als Reparateur möchte ich mir ein angemeldetes Gerät zuordnen können. - [ ] Als Reparateur möchte ich mir ein angemeldetes Gerät zuordnen können. (A8)
- [ ] (A9) Als Reparateur möchte ich ein angemeldetes Gerät ablehnen können. - [ ] Als Reparateur möchte ich ein angemeldetes Gerät ablehnen können. (A9)
- [ ] (A10) Als Reparateur möchte ich Rückfragen zum Gerät stellen können. - [ ] Als Reparateur möchte ich Rückfragen zum Gerät stellen können. (A10)
- [ ] (A11) Als Reparateur möchte ich eine Benachrichtigung bekommen wenn eine Rückfrage beantwortet wird. - [ ] Als Reparateur möchte ich eine Benachrichtigung bekommen wenn eine Rückfrage beantwortet wird. (A11)
- [ ] (A12) Als Reparateur möchte ich eine Benachrichtigung bekommen wenn mir ein Gerät zugeordnet wird. - [ ] Als Reparateur möchte ich eine Benachrichtigung bekommen wenn mir ein Gerät zugeordnet wird. (A12)
- [ ] (A13) Als Reparateur möchte ich mich für ein Repair-Café anmelden können. - [ ] Als Reparateur möchte ich mich für ein Repair-Café anmelden können. (A13)
- [ ] (A14) Als Reparateur möchte ich mich für ein Repair-Café abmelden können. - [ ] Als Reparateur möchte ich mich für ein Repair-Café abmelden können. (A14)
### Organisator ### Organisator
- [ ] (A15) Als Organisator möchte ich ein Repair-Café anlegen können. - [ ] Als Organisator möchte ich ein Repair-Café anlegen können. (A15)
- [ ] (A16) Als Organisator möchte ich die Geräte einsehen können. - [ ] Als Organisator möchte ich die Geräte einsehen können. (A16)
- [ ] (A17) Als Organisator möchte ich eine Rückfrage zu einem Geräte stellen können. - [ ] Als Organisator möchte ich eine Rückfrage zu einem Geräte stellen können. (A17)
- [ ] (A18) Als Organisator möchte ich ein Geräte ablehnen können. - [ ] Als Organisator möchte ich ein Geräte ablehnen können. (A18)
- [ ] (A19) Als Organisator möchte ich ein Geräte zu einem Termin zuordnen können. - [ ] Als Organisator möchte ich ein Geräte zu einem Termin zuordnen können. (A19)
- [ ] (A20) Als Organisator möchte ich einen Reparateur zu einem Termin zuordnen können. - [ ] Als Organisator möchte ich einen Reparateur zu einem Termin zuordnen können. (A20)
## Daten ## Daten
@ -168,29 +168,29 @@ Technische Attribute:
## Ansichten ## Ansichten
### (S1) Landing Page: Repair-Cafés ### Landing Page: Repair-Cafés (S1)
Liste der Repair-Café Termine Liste der Repair-Café Termine
### (S2) Gerät anmelden ### Gerät anmelden (S2)
Das Formular zum anmelden der Geräte hat die Felder `eMail-Adresse`, `Gerätebezeichnung`, `Fehlerbeschreibung`, eine Kontrollkästchen `Folgetermin` und einen Knopf `Absenden` zum senden des Formulars. Das Formular zum anmelden der Geräte hat die Felder `eMail-Adresse`, `Gerätebezeichnung`, `Fehlerbeschreibung`, eine Kontrollkästchen `Folgetermin` und einen Knopf `Absenden` zum senden des Formulars.
### (S3) Gast anmelden ### Gast anmelden (S3)
Das Formular zum anmelden eines neuen Gastes hat die Felder `Name`, `Telefon`, `Wohnort` und einen Knopf `Absenden` zum senden des Formulars. Das Formular zum anmelden eines neuen Gastes hat die Felder `Name`, `Telefon`, `Wohnort` und einen Knopf `Absenden` zum senden des Formulars.
### (S4) Anmeldebestätigung ### Anmeldebestätigung (S4)
Die Anmeldebestätigung zeigt die Geräte und Gast Daten erneut an, zusammen mit der Information dass das Gerät angelegt. Die Anmeldebestätigung zeigt die Geräte und Gast Daten erneut an, zusammen mit der Information dass das Gerät angelegt.
Weiter enthält die Ansicht einen Link zur Geräte Detailseite und einen Link zur Gast Detailseite. Weiter enthält die Ansicht einen Link zur Geräte Detailseite und einen Link zur Gast Detailseite.
### (S5) Geräte Detailseite ### Geräte Detailseite (S5)
Die Geräte Detailseite hat die Felder `Gerätebezeichnung`, `Fehlerbeschreibung` und eine Kontrollkästchen `Folgetermin` die mit den Angaben des Gastes ausgefüllt sind. Die Geräte Detailseite hat die Felder `Gerätebezeichnung`, `Fehlerbeschreibung` und eine Kontrollkästchen `Folgetermin` die mit den Angaben des Gastes ausgefüllt sind.
Weiter enthält die Seite einen Knopf `Aktualisieren` der das Formular absendet und die Daten aktualisiert und einen Link zur Detailseite des Gastes. Weiter enthält die Seite einen Knopf `Aktualisieren` der das Formular absendet und die Daten aktualisiert und einen Link zur Detailseite des Gastes.
### (S6) Gast Detailseite ### Gast Detailseite (S6)
Die Gast Detailseite hat die Felder `Name`, `eMail`, `Telefon` und `Wohnort` die mit den Angaben des Gastes ausgefüllt sind. Die Gast Detailseite hat die Felder `Name`, `eMail`, `Telefon` und `Wohnort` die mit den Angaben des Gastes ausgefüllt sind.
Weiter enthält die Seite einen Knopf `Aktualisieren` der das Formular absendet. Weiter enthält die Seite einen Knopf `Aktualisieren` der das Formular absendet.

0
rc_hip/data/.gitkeep Normal file
View file

View file

@ -0,0 +1,13 @@
<!DOCTYPE html>
<html>
<head>
<title>RepApp{% block title %}{% endblock title %}</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KK94CHFLLe+nY2dmCWGMq91rCGa5gtU4mk92HdvYe+M/SXH301p5ILy+dN9+nJOZ" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ENjdO4Dr2bkBIFxQpeoTz1HIcje39Wm4jDKdf19U8gI4ddQ3GYNS7NTKfAdVQSZe" crossorigin="anonymous"></script>
</head>
<body>
{% block content %}{% endblock content %}
</body>
</html>

View file

@ -0,0 +1,16 @@
{% extends "repapp/base.html" %}
{% block title %}- Repair-Cafés{% endblock title %}
{% block content %}
<h1>Repair-Cafés</h1>
<ul class="list-group">
{% for cafe in object_list %}
<li class="list-group-item">
<button type="button" class="btn btn-primary">Repair-Café am {{ cafe.event_date|date }}, {{ cafe.location }}</button>
</li>
{% empty %}
<li class="list-group-item">Es gibt keine geplanten Repair-Cafés.</li>
{% endfor %}
</ul>
{% endblock content %}

View file

@ -3,5 +3,5 @@ from django.urls import path
from . import views from . import views
urlpatterns = [ urlpatterns = [
path("", views.index, name="index"), path("", views.IndexView.as_view(), name="index"),
] ]

View file

@ -1,6 +1,15 @@
from django.shortcuts import render from django.shortcuts import render
from django.http import HttpResponse from django.http import HttpResponse
from django.views import generic
from .models import Cafe
def index(requst): def index(request):
return HttpResponse("Hello from RepApp.") return HttpResponse("Hello from RepApp.")
class IndexView(generic.ListView):
template_name = "repapp/index.html"
def get_queryset(self):
return Cafe.objects.all()