+ {{ cafe.address }} +
diff --git a/docs/index.md b/docs/index.md index 51e8f31..06eda45 100644 --- a/docs/index.md +++ b/docs/index.md @@ -63,6 +63,7 @@ Attribute: - Datum: Datum der Veranstaltung - Ort: Beschreibung wo das Repair-Café stattfindet +- Adresse: Adresse an der das Repair-Café stattfindet Annahmen: @@ -102,7 +103,6 @@ Attribute: - Telefon: Festnetz oder Mobilnummer des Gastes - Wohnort: Wohnort des Gastes - Mail: eMail-Adresse des Gastes für Benachrichtigungen -- Bestätigt: Ein boolesches Flag das anzeigt ob der Gast seine eMail-Adresse bestätigt hat. Technische Attribute: @@ -115,15 +115,18 @@ Ein Gerät ist ein defekter Gegenstand der im Rahmen eines Repair-Cafés reparie Attribute: - Gerät: Bezeichnung des Geräts +- Hersteller: Hersteller des Geräts - Fehler: Beschreibung des Defekts - Folgetermin: Boolesches Flag das anzeigt ob es sich um einen Folgetermin handelt. -- Bestätigt: Ein boolesches Flag das anzeigt ob der Gast die Greäteanmeldung bestätigt hat. +- Foto vom Gerät +- Foto vom Typenschild +- Bestätigung gesendet?: Ein boolesches Flag das anzeigt ob eine eMail als Anmeldebestätigung gesendet wurde. Technische Attribute: - Identifier: SHA256 Hash aus Gerät + Gast + Timestamp -- Geheimnis: SHA256 Hash aus Gerät + Gast + Timestamp + Zufallszahl - Gast: Referenz zum Gast der das Gerät besitzt +- Cafe: Referenz zum Repair-Café für das diese Gerät angemeldet ist ### Termin @@ -192,17 +195,19 @@ URL: cafe/int:cafe/ Name: register_device Diese Seite zeigt das Formular zum anmelden der Geräte. -Das Formular hat die Felder `eMail-Adresse`, `Gerätebezeichnung`, `Fehlerbeschreibung`, eine Kontrollkästchen `Folgetermin` und einen Knopf `Absenden` zum senden des Formulars. +Das Formular hat die Felder `eMail-Adresse`, `Art des Geräts`, `Hersteller & Modell/Typ`, `Fehlerbeschreibung`, `Foto vom Gerät`, `Foto vom Typenschild`, ein Kontrollkästchen `Folgetermin`, ein Kontrollkästchen `Informationen zur Reparaturabwicklung`, ein Kontrollkästchen `Datenschutz` und einen Knopf `Absenden` zum senden des Formulars. Das Repair-Café zu dem die Anmeldung gehört ist über eine ID in der URL der Seite festgelegt. +Die eMail-Benachrichtigung and die Organisatoren und die Bestätigung an den Gast wird beim absenden des Formulars gesendet, falls die eMail Adresse zu einem bekannten Gast gehört. + #### Sicherheit Die Seite ist ohne Zugangsbeschränkung oder Anmeldung erreichbar. ### Gast anmelden (S3) -URL: cafe/int:cafe/device/str:deviceentifier/str:mail/ +URL: cafe/int:cafe/device/str:device_identifier/mail/str:mail/ Name: register_guest @@ -211,37 +216,20 @@ Das Formular hat die Felder `Name`, `Telefon`, `Wohnort` und einen Knopf `Absend Die eMail-Adresse und das Gerät zu dem die Gast-Kontaktdaten gehören ist über IDs in der URL der Seite festgelegt. -#### Sicherheit - -Die Seite ist ohne Zugangsbeschränkung oder Anmeldung erreichbar. - -### Bestätigung gesendet (S4) - -URL: cafe/int:cafe/device/str:deviceentifier/guest/str:guestentifier/ - -Name: register_device_final - -Die Seite Bestätigung gesendet zeigt einen Hinweis dass eine eMail gesendet wurde und die Anmeldung des Gerätes durch einen Klick auf einen Link in der eMail bestätigt werden muss. - -Die eMail-Bestätigung wird während des Aufrufs dieser Seite gesendet. - -Das Repair-Café, der Gast und das Gerät sind über IDs in der URL der Seite festgelegt. +Die eMail-Benachrichtigung and die Organisatoren und die Bestätigung an den Gast wird beim absenden des Formulars gesendet. #### Sicherheit Die Seite ist ohne Zugangsbeschränkung oder Anmeldung erreichbar. - ### Anmeldung bestätigt (S7) -URL: confirm/str:deviceentifier/code/str:device_secret/ +URL: cafe/int:cafe/device/str:device_identifier/confirm/ -Name: register_device_confirm +Name: register_device_final Die Seite Anmeldung bestätigt zeigt einen Hinweis dass die Anmeldung des Gerätes erfolgreich abgeschlossen wurde. -Die eMail-Benachrichtigung and die Organisatoren wird während des Aufrufs dieser Seite gesendet. - Die Geräte ID ist in der URL der Seite festgelegt. #### Sicherheit @@ -250,11 +238,11 @@ Die Seite ist ohne Zugangsbeschränkung oder Anmeldung erreichbar. ### Geräte Detailseite (S5) -URL: device/str:deviceentifier/ +URL: device/str:device_identifier/ Name: view_device -Die Geräte Detailseite zeigt die Informationen `Gerätebezeichnung`, `Fehlerbeschreibung` und `Folgetermin` an. +Die Geräte Detailseite zeigt die Informationen `Art des Geräts`, `Hersteller & Modell/Typ`, `Fehlerbeschreibung`, `Foto vom Gerät`, `Foto vom Typenschild` und `Folgetermin` an. Das Gerät ist über IDs in der URL der Seite festgelegt. @@ -283,16 +271,16 @@ Die Seite enthält persönliche Daten und ist nur nach Anmeldung erreichbar. Als neuer Gast der ein defekten Geräte anmelden möchte, - gehe ich auf die Seite (S1) der Repair-Café Termine. Dort klicke ich auf `Gerät anmelden` bei dem richtigen Repair-Café Termin. Dieser Klick bringt mich auf die nächste Seite. -- Die nächste Seite (S2) enthält ein Formular mit den Feldern `eMail-Adresse`, `Gerätebezeichnung` und `Fehlerbeschreibung` und eine Kontrollkästchen `Folgetermin`. Nachdem ich die Felder ausgefüllt habe klicke auf auf `Absenden`. Dieser Klick bringt mich auf die nächste Seite. +- Die nächste Seite (S2) enthält ein Formular mit den Feldern `eMail-Adresse`, `Art des Geräts`, `Hersteller & Modell/Typ`, `Fehlerbeschreibung`, `Foto vom Gerät`, `Foto vom Typenschild`, ein Kontrollkästchen `Folgetermin`, ein Kontrollkästchen `Informationen zur Reparaturabwicklung` une ein Kontrollkästchen `Datenschutz`. Nachdem ich die Felder ausgefüllt habe klicke auf auf `Absenden`. Dieser Klick bringt mich auf die nächste Seite. - Die nächste Seite (S3) enthält ein Formular mit den Feldern `Name`, `Telefon` und `Wohnort`. Nachdem ich die Felder ausgefüllt habe klicke auf auf `Absenden`. Dieser Klick bringt mich auf die nächste Seite. -- Die nächste Seite (S4) weißt mich darauf hin dass eine eMail gesendet wurde und ich die Anmeldung über einen Klick in der eMail bestätigen muss. -- In meinem eMail Posteingang finde ich eine Bestätigung der Geräteanmeldung die ebenfalls einen Link enthält um die Anmeldung zu bestätigen. Ein Klick auf diesen Link bringt mich auf die Seite Anmeldung bestätigt (S7). +- Die nächste Seite (S5) bestätigt mir die Anmeldung meines Gerätes. +- In meinem eMail Posteingang finde ich ebenfalls eine Bestätigung der Geräteanmeldung. #### Variante: Bekannter Gast (existierende eMail Adresse) Als bekannter Gast der ein defekten Geräte anmelden möchte, - gehe ich auf die Seite (S1) der Repair-Café Termine. Dort klicke ich auf `Gerät anmelden` bei dem richtigen Repair-Café Termin. Dieser Klick bringt mich auf die nächste Seite. -- Die nächste Seite (S2) enthält ein Formular mit den Feldern `eMail-Adresse`, `Gerätebezeichnung` und `Fehlerbeschreibung` und eine Kontrollkästchen `Folgetermin`. Nachdem ich die Felder ausgefüllt habe klicke auf auf `Absenden`. Dieser Klick bringt mich auf die nächste Seite. -- Die nächste Seite (S4) weißt mich darauf hin dass eine eMail gesendet wurde und ich die Anmeldung über einen Klick in der eMail bestätigen muss. -- In meinem eMail Posteingang finde ich eine Bestätigung der Geräteanmeldung die ebenfalls einen Link enthält um die Anmeldung zu bestätigen. Ein Klick auf diesen Link bringt mich auf die Seite Anmeldung bestätigt (S7). +- Die nächste Seite (S2) enthält ein Formular mit den Feldern `eMail-Adresse`, `Art des Geräts`, `Hersteller & Modell/Typ`, `Fehlerbeschreibung`, `Foto vom Gerät`, `Foto vom Typenschild`, ein Kontrollkästchen `Folgetermin`, ein Kontrollkästchen `Informationen zur Reparaturabwicklung` une ein Kontrollkästchen `Datenschutz`. Nachdem ich die Felder ausgefüllt habe klicke auf auf `Absenden`. Dieser Klick bringt mich auf die nächste Seite. +- Die nächste Seite (S5) bestätigt mir die Anmeldung meines Gerätes. +- In meinem eMail Posteingang finde ich ebenfalls eine Bestätigung der Geräteanmeldung. diff --git a/nginx.default b/nginx.default index 1bd3943..aafba40 100644 --- a/nginx.default +++ b/nginx.default @@ -10,4 +10,7 @@ server { location /static { root /opt/app/rc_hip; } + location /media { + root /opt/app/rc_hip; + } } diff --git a/rc_hip/rc_hip/urls.py b/rc_hip/rc_hip/urls.py index 52331bf..bc7b9ae 100644 --- a/rc_hip/rc_hip/urls.py +++ b/rc_hip/rc_hip/urls.py @@ -17,6 +17,7 @@ Including another URLconf from django.contrib import admin from django.urls import path, include + urlpatterns = [ path("", include("repapp.urls")), path('admin/', admin.site.urls), diff --git a/rc_hip/repapp/forms.py b/rc_hip/repapp/forms.py index faa99d8..aabfb76 100644 --- a/rc_hip/repapp/forms.py +++ b/rc_hip/repapp/forms.py @@ -8,9 +8,12 @@ class RegisterDevice(forms.Form): " zur Anfrage verwendet.", max_length=200) device = forms.CharField( - label="Gerätebezeichnung", - help_text="Bitte geben Sie den Hersteller und die" - " Gerätebezeichnung an.", + label="Art des Geräts", + help_text="z.B. Küchenmaschine, Smartphone, Stehlampe, Drucker, ...", + max_length=200 + ) + manufacturer = forms.CharField( + label="Hersteller & Modell/Typ", max_length=200 ) error = forms.CharField( @@ -18,12 +21,33 @@ class RegisterDevice(forms.Form): help_text="Beschreiben Sie hier das Problem ihres Gerätes.", widget=forms.Textarea ) + device_picture = forms.FileField( + label="Foto vom Gerät ", required=False + ) + type_plate_picture = forms.FileField( + label="Foto vom Typenschild ", required=False + ) follow_up = forms.BooleanField( label="Folgetermin", - help_text="Klicken Sie dieses Kästchen an wenn sie mit diesem" - " Gerät bereits bei einem Repair-Café waren.", + help_text="Kreuzen Sie diese Kästchen an wenn sie mit diesem Gerät bereits bei einem Repair-Café Termin waren.", required=False ) + confirm_repair = forms.BooleanField( + label="Informationen zur Reparaturabwicklung", + help_text="Ich bin mit den " + "Allgemeinen Bedingungen zur Reparaturabwicklung einverstanden.", + required=True + ) + confirm_data = forms.BooleanField( + label="Datenschutz", + help_text=" Ich bin mit der Erhebung, Verarbeitung und Speicherung meiner Daten für " + "die Bearbeitung meiner Anfrage gemäß der " + "" + "Datenschutzerklärung einverstanden.", + required=True + ) class RegisterGuest(forms.Form): diff --git a/rc_hip/repapp/migrations/0012_remove_device_secret_remove_guest_confirmed_and_more.py b/rc_hip/repapp/migrations/0012_remove_device_secret_remove_guest_confirmed_and_more.py new file mode 100644 index 0000000..cd4999e --- /dev/null +++ b/rc_hip/repapp/migrations/0012_remove_device_secret_remove_guest_confirmed_and_more.py @@ -0,0 +1,49 @@ +# Generated by Django 4.2 on 2023-04-21 15:21 + +from django.db import migrations, models +import repapp.models + + +class Migration(migrations.Migration): + + dependencies = [ + ('repapp', '0011_rename_cafe_id_appointment_cafe_and_more'), + ] + + operations = [ + migrations.RemoveField( + model_name='device', + name='secret', + ), + migrations.RemoveField( + model_name='guest', + name='confirmed', + ), + migrations.AddField( + model_name='cafe', + name='address', + field=models.CharField(default='', max_length=200, verbose_name='Ort'), + preserve_default=False, + ), + migrations.AddField( + model_name='device', + name='device_picture', + field=models.FileField(null=True, upload_to=repapp.models.device_directory_path, verbose_name='Foto vom Gerät'), + ), + migrations.AddField( + model_name='device', + name='manufacturer', + field=models.CharField(default='', max_length=200, verbose_name='Hersteller'), + preserve_default=False, + ), + migrations.AddField( + model_name='device', + name='type_plate_picture', + field=models.FileField(null=True, upload_to=repapp.models.device_directory_path, verbose_name='Foto vom Typenschild'), + ), + migrations.AlterField( + model_name='device', + name='confirmed', + field=models.BooleanField(verbose_name='Bestätigung gesendet?'), + ), + ] diff --git a/rc_hip/repapp/models.py b/rc_hip/repapp/models.py index 35ef4dc..0836015 100644 --- a/rc_hip/repapp/models.py +++ b/rc_hip/repapp/models.py @@ -11,6 +11,8 @@ class Cafe(models.Model): """ location = models.CharField( max_length=200, verbose_name=_("Ort")) + address = models.CharField( + max_length=200, verbose_name=_("Adresse")) event_date = models.DateField(verbose_name=_("Datum")) class Meta: @@ -60,7 +62,6 @@ class Guest(models.Model): phone = models.CharField(max_length=200, verbose_name=_("Telefonnummer")) residence = models.CharField(max_length=200, verbose_name=_("Wohnort")) mail = models.CharField(max_length=200, verbose_name=_("eMail")) - confirmed = models.BooleanField(verbose_name=_("Bestätigt"), default=False) class Meta: verbose_name = _('Gast') @@ -70,21 +71,29 @@ class Guest(models.Model): return f'Gast {self.name} (eMail: {self.mail})' +def device_directory_path(instance, filename): + return f'device_{instance.identifier}/{filename}' + + class Device(models.Model): """ A Device is a broken device owned by a guest which shall be repaired during a Repair-Café. """ identifier = models.CharField(max_length=200, verbose_name=_("ID")) - secret = models.CharField( - max_length=200, verbose_name=_("Bestätigungscode"), default="TEST12345") - device = models.CharField(max_length=200, verbose_name=_("Gerät")) - error = models.TextField(verbose_name=_("Fehler")) + device = models.CharField(max_length=200, verbose_name=_("Art des Geräts")) + manufacturer = models.CharField( + max_length=200, verbose_name=_("Hersteller & Modell/Typ")) + error = models.TextField(verbose_name=_("Fehlerbeschreibung")) follow_up = models.BooleanField(verbose_name=_("Folgetermin")) - confirmed = models.BooleanField(verbose_name=_("Bestätigt"), default=False) + device_picture = models.FileField( + upload_to=device_directory_path, null=True, verbose_name=_("Foto vom Gerät")) + type_plate_picture = models.FileField( + upload_to=device_directory_path, null=True, verbose_name=_("Foto vom Typenschild")) guest = models.ForeignKey( Guest, on_delete=models.CASCADE, null=True, verbose_name=_("Gast")) cafe = models.ForeignKey( Cafe, on_delete=models.CASCADE, null=False, verbose_name=_("Repair-Café")) + confirmed = models.BooleanField(verbose_name=_("Bestätigung gesendet?")) class Meta: verbose_name = _('Gerät') @@ -116,25 +125,6 @@ class Appointment(models.Model): return f'Termin {self.cafe.event_date} {self.time} für Gerät {self.device.device}' -class Candidate(models.Model): - """ - A Candidate is a match of a broken Device and a Repair-Café without a fixed timeslot - or pre-assigned Reparateur. - """ - confirmed = models.BooleanField(verbose_name=_("bestätigt")) - cafe = models.ForeignKey( - Cafe, on_delete=models.CASCADE, verbose_name=_("Repair-Café")) - device = models.ForeignKey( - Device, on_delete=models.CASCADE, null=True, verbose_name=_("Gerät")) - - class Meta: - verbose_name = _('Kandidat') - verbose_name_plural = _('Kandidaten') - - def __str__(self): - return f'Kandidat {self.cafe.event_date} für Gerät {self.device.device}' - - class Question(models.Model): """ A Question is a request for information form a Organisator or a Reparateur for a Device. @@ -155,3 +145,22 @@ class Question(models.Model): def __str__(self): return f'Frage vom {self.date} zum Gerät {self.device.device}' + + +class Candidate(models.Model): + """ + A Candidate is a match of a broken Device and a Repair-Café without a fixed timeslot + or pre-assigned Reparateur. + """ + confirmed = models.BooleanField(verbose_name=_("bestätigt")) + cafe = models.ForeignKey( + Cafe, on_delete=models.CASCADE, verbose_name=_("Repair-Café")) + device = models.ForeignKey( + Device, on_delete=models.CASCADE, null=True, verbose_name=_("Gerät")) + + class Meta: + verbose_name = _('Kandidat') + verbose_name_plural = _('Kandidaten') + + def __str__(self): + return f'Kandidat {self.cafe.event_date} für Gerät {self.device.device}' diff --git a/rc_hip/repapp/templates/repapp/base.html b/rc_hip/repapp/templates/repapp/base.html index 115c1d2..acb2fa5 100644 --- a/rc_hip/repapp/templates/repapp/base.html +++ b/rc_hip/repapp/templates/repapp/base.html @@ -2,6 +2,10 @@
+ + + {% block head %} + {% endblock head %}Fehler:
-{{ device.error }}
-- Folgetermin: - {% if device.follow_up %} - Ja - {% else %} - Nein - {% endif %} -
+| Art des Geräts | +{{ device.device }} | +
|---|---|
| Hersteller & Modell/Typ | +{{ device.manufacturer }} | +
| Fehlerbeschreibung | +{{ device.error }} | +
| Folgetermin | ++ {% if device.follow_up %} + Ja + {% else %} + Nein + {% endif %} + | +
| Foto vom Gerät | +
+ {% if device.device_picture %}
+ |
+
| Foto vom Typenschild | +
+ {% if device.device_picture %}
+ |
+
Hallo {{ guest.name }},
+Guten Tag,
- Ihre Anmeldung von {{ device.device }} für das Repair-Café am {{ cafe.event_date|date }} - ist bei uns angekommen. + dies ist eine automatische Nachricht, die du erhältst, nachdem du unser Anmeldeformular abgesendet hast und deine Angaben in unserer Datenbank gespeichert wurden.
- Bitte bestätigen sie ihre Anmeldung in dem Sie - hier - klicken. + Vielen Dank für die Anmeldung des Geräts {{ device.device }} - {{ device.manufacturer }} zur Reparatur im Repair-Café am {{ cafe.event_date|date }}.
- Viele Grüße,
-
- Ihr Repair-Café
+ Die Organisation unserer Repair-Cafés beginnt i.a. einige Tage vor dem jeweiligen Termin. Dann erstellen wir anhand der angemeldeten Geräte und der Spezialgebiete der anwesenden Reparateure einen Zeitplan.
+ Sobald dieser Zeitplan fertig gestellt ist, erhältst du von einem Mitglied unseres Organisationsteams eine Mail. Diese beinhaltet im Normalfall den Reparaturtermin inkl. der Uhrzeit, für die die Reparatur vorgesehen ist. In Ausnahmefällen (z.B. wenn kein Spezialist für die Gerätegruppe anwesend sein wird oder überbucht ist) ist es aber auch möglich, dass wir deinen gewünschten Termin absagen und dir einen Alternativtermin vorschlagen müssen. +
++ Falls du in der Zwischenzeit Rückfragen hast oder deinen Wunschtermin doch nicht wahrnehmen kannst, antworte bitte einfach auf diese Nachricht. +
+Herzliche Grüße sendet dir das Organisationsteam vom Repair-Café Hilpoltstein!
diff --git a/rc_hip/repapp/templates/repapp/mail/mail_register_device_subject.html b/rc_hip/repapp/templates/repapp/mail/mail_register_device_subject.html index 7268866..cc948cb 100644 --- a/rc_hip/repapp/templates/repapp/mail/mail_register_device_subject.html +++ b/rc_hip/repapp/templates/repapp/mail/mail_register_device_subject.html @@ -1 +1 @@ -Anmeldung von {{ device.device }} für das Repair-Café am {{ cafe.event_date|date }} +Repair-Café Hilpoltstein am {{ cafe.event_date|date }} - Geräteanmeldung diff --git a/rc_hip/repapp/templates/repapp/mail/mail_register_device_text.html b/rc_hip/repapp/templates/repapp/mail/mail_register_device_text.html index 053c2f9..30110e2 100644 --- a/rc_hip/repapp/templates/repapp/mail/mail_register_device_text.html +++ b/rc_hip/repapp/templates/repapp/mail/mail_register_device_text.html @@ -1,5 +1,7 @@ -Hallo {{ guest.name }}, -Ihre Anmeldung von {{ device.device }} für das Repair-Café am {{ cafe.event_date|date }} ist bei uns angekommen. -Bitte bestätigen sie ihre Anmeldung in dem Sie https://repapp.rc-hip.de/confirm/{{ device.identifier }}/code/{{ device.secret }} in ihrem Web-Browser aufrufen. -Viele Grüße, -Ihr Repair-Café +Guten Tag, +dies ist eine automatische Nachricht, die du erhältst, nachdem du unser Anmeldeformular abgesendet hast und deine Angaben in unserer Datenbank gespeichert wurden. +Vielen Dank für die Anmeldung des Geräts {{ device.device }} - {{ device.manufacturer }} zur Reparatur im Repair-Café am {{ cafe.event_date|date }}. +Die Organisation unserer Repair-Cafés beginnt i.a. einige Tage vor dem jeweiligen Termin. Dann erstellen wir anhand der angemeldeten Geräte und der Spezialgebiete der anwesenden Reparateure einen Zeitplan. +Sobald dieser Zeitplan fertig gestellt ist, erhältst du von einem Mitglied unseres Organisationsteams eine Mail. Diese beinhaltet im Normalfall den Reparaturtermin inkl. der Uhrzeit, für die die Reparatur vorgesehen ist. In Ausnahmefällen (z.B. wenn kein Spezialist für die Gerätegruppe anwesend sein wird oder überbucht ist) ist es aber auch möglich, dass wir deinen gewünschten Termin absagen und dir einen Alternativtermin vorschlagen müssen. +Falls du in der Zwischenzeit Rückfragen hast oder deinen Wunschtermin doch nicht wahrnehmen kannst, antworte bitte einfach auf diese Nachricht. +Herzliche Grüße sendet dir das Organisationsteam vom Repair-Café Hilpoltstein! diff --git a/rc_hip/repapp/templates/repapp/register_device.html b/rc_hip/repapp/templates/repapp/register_device.html index e52e45f..4c71c79 100644 --- a/rc_hip/repapp/templates/repapp/register_device.html +++ b/rc_hip/repapp/templates/repapp/register_device.html @@ -1,15 +1,16 @@ {% extends "repapp/base.html" %} - {% load crispy_forms_tags %} - -{% block title %}- Gerät anmelden{% endblock title %} - +{% block title %} + - Gerät anmelden +{% endblock title %} {% block content %} -Ihr Gerät ist erfolgreich angemeldet!
-- Wir versuchen für sie einen Termin bei einem geeigneten Reparateur zu finden. - Wenn wir einen Termin gefunden haben werden Sie per eMail benachrichtigt. -
-{% endblock content %} diff --git a/rc_hip/repapp/templates/repapp/register_device_final.html b/rc_hip/repapp/templates/repapp/register_device_final.html index a2a11bf..c53eaa5 100644 --- a/rc_hip/repapp/templates/repapp/register_device_final.html +++ b/rc_hip/repapp/templates/repapp/register_device_final.html @@ -1,12 +1,16 @@ {% extends "repapp/base.html" %} - -{% block title %}{% endblock title %} - +{% block title %} +{% endblock title %} {% block content %} --Wir haben ihnen eine eMail mit ihren Daten gesendet. Bitte bestätigen -Sie ihre Anmeldung durch Klick auf den Link in der eMail. -
-{% endblock content %} \ No newline at end of file ++ Vielen Dank für die Anmeldung des Geräts {{ device.device }} - {{ device.manufacturer }} zur Reparatur im Repair-Café am {{ cafe.event_date|date }}. +
++ Die Organisation unserer Repair-Cafés beginnt i.a. einige Tage vor dem jeweiligen Termin. Dann erstellen wir anhand der angemeldeten Geräte und der Spezialgebiete der anwesenden Reparateure einen Zeitplan. +
++ Sobald dieser Zeitplan fertig gestellt ist, erhältst du von einem Mitglied unseres Organisationsteams eine Mail. Diese beinhaltet im Normalfall den Reparaturtermin inkl. der Uhrzeit, für die die Reparatur vorgesehen ist. In Ausnahmefällen (z.B. wenn kein Spezialist für die Gerätegruppe anwesend sein wird oder überbucht ist) ist es aber auch möglich, dass wir deinen gewünschten Termin absagen und dir einen Alternativtermin vorschlagen müssen. +
+{% endblock content %} diff --git a/rc_hip/repapp/urls.py b/rc_hip/repapp/urls.py index 77eb6dd..f56ab76 100644 --- a/rc_hip/repapp/urls.py +++ b/rc_hip/repapp/urls.py @@ -13,14 +13,12 @@ urlpatterns = [ name="register_device" ), path( - "cafe/