diff --git a/jdav_web/startpage/templates/startpage/gruppen/faq.html b/jdav_web/startpage/templates/startpage/gruppen/faq.html
index d6de1f3..6b8ae9e 100644
--- a/jdav_web/startpage/templates/startpage/gruppen/faq.html
+++ b/jdav_web/startpage/templates/startpage/gruppen/faq.html
@@ -1,44 +1,7 @@
{% extends "startpage/base_subsite.html" %}
{% block content %}
-FAQ
-Ab welchem Alter kann ich mein Kind zu den Jugendgruppen anmelden?
-
-Unsere Jugendgruppen sind ab einem Alter von 9 Jahren. Sie können ihr Kind gerne bereits früher auf die Liste setzen, um die Wartezeit zu verkürzen, sobald ihr Kind das entsprechende Alter erreicht hat.
-
-Wie lange sind die Wartezeiten?
-
-
-Leider haben wir eine sehr große Nachfrage, der wir mit unseren Jugendleiter*innen und unseren Gruppenplätzen nicht nachkommen können. Die Wartezeiten sind sehr unterscheidlich und hängen vom Alter und den verfügbaren Gruppenplätzen ab. Die Wartezeiten kann zwischen einigen Wochen und mehr als einem Jahr liegen.
-
-
-Muss mein Kind DAV Mitglied sein?
-
-
-Ja. Sobald ihr Kind regelmäßig an den Gruppenstunden teilnimmt, muss es Mitglied im DAV Heidelberg sein. Für die Aufnahme in die Warteliste ist keine Mitgliedschaft notwenig.
-
-
-Was kostet die Teilnahme an den Jugendgruppen?
-
-
-Die Jugendgruppen an sich sind kostenlos, allerdings ist eine Vereinsmitgliedschaft und der Halleneintritt nötig. Der Beitrag setzt sich aus zwei Teilen zusammen:
-
-
-
-
- - Mitgliedschaft im DAV Heidelberg
- (Zu den Preisen)
-
-
- - Halbjahreskarte für den Kletterhalleneintritt während der Gruppenstunden: 25 Euro (Bei zwei Gruppenstunden pro Woche 30 Euro)
-
-
-
-Benötigt mein Kind eine Ausrüstung?
-
-
-Während der Gruppenstunden können die Kinder das Material (Klettergurt, Schuhe, Sicherungsgerät, … ) ohne zusätzliche Kosten von der Jugend des DAV Heidelberg ausleihen.
-
+{% include "startpage/faq_content.html" %}
{% endblock %}
diff --git a/jdav_web/startpage/templates/startpage/impressum.html b/jdav_web/startpage/templates/startpage/impressum.html
index 78371b6..97e8914 100644
--- a/jdav_web/startpage/templates/startpage/impressum.html
+++ b/jdav_web/startpage/templates/startpage/impressum.html
@@ -2,373 +2,7 @@
{% load static %}
{% block content %}
-
-Impressum
-Anbieter
-
-
-Deutscher Alpenverein Sektion Heidelberg 1869 e.V.
-Jugendreferat
-Harbigweg 20
-69124 Heidelberg, Deutschland
-Tel.: +49 (62 21) 48 40 76
-Fax: +49 (62 21) 43 73 38
-E-Mail: geschaeftsstelle@alpenverein-heidelberg.de
-URL: www.alpenverein-heidelberg.de
-
-
-Vertretungsberechtigter
-
-
-Der Deutsche Alpenverein Sektion Heidelberg 1869 wird durch den ersten Vorsitzenden, den zweiten Vorsitzenden und den Schatzmeister vertreten:
-
-
-
-Dr. Ulf Gieseler (1. Vorsitzender), Paul Jonas (2. Vorsitzender), Marc von der Heydt (Schatzmeister)
-(gemäß § 14 Satz der Satzung des Deutschen Alpenvereins Sektion Heidelberg 1869)
-
-
-Vereinsregister
-
-
-Der Deutsche Alpenverein Sektion Heidelberg 1869 e.V. ist im Vereinsregister des Amtsgerichts Heidelberg unter der Registernummer VR 486 eingetragen.
-
-
-Jugendreferat
-
-
-Leitung: Eva Engelmann und Robert Scheffler
-E-Mail: jugend@alpenverein-heidelberg.de
-URL: www.jdav-hd.de ; www.jdav-heidelberg.de
-
-
-
-Haftungsausschluss; Disclaimer
-
-
-
-Datenschutzerklärung
-
-1. Wer für Ihre personenbezogenen Daten verantwortlich ist:
-
-
-Diese Datenschutz-Information gilt für die Datenverarbeitung durch:
-
-
-
-Verantwortlicher: Deutscher Alpenverein Sektion Heidelberg 1869 e.V.
-Harbigweg 20, 69124 Heidelberg
-Email: geschaeftsstelle@alpenverein-heidelberg.de
-Telefon: +49 6221 484076
-
-
-
-Zur Auftragsverarbeitung für die jdav Heidelberg ist die Firma Contabo GmbH Aschauer Str. 32a 81549 München beauftragt.
-Die Datenverarbeitung erfolgt in Rechenzentren in der Schweiz oder Staaten des Europäischen Wirtschaftsraums (EWR).
-
-
-
-2. Welche personenbezogenen Daten wir von Ihnen erheben und zu welchem Zweck das geschieht:
-
-
-
-Beim Aufrufen unserer Website jdav-hd.de werden durch den auf Ihrem Endgerät zum Einsatz kommenden Browser automatisch Informationen an den Server unserer Website gesendet. Diese Informationen werden temporär in einem sog. Logfile gespeichert. Folgende Informationen werden dabei ohne Ihr Zutun erfasst und bis zur automatischen Löschung gespeichert:
-
-
-
-
- - IP-Adresse des anfragenden Rechners,
- - Datum und Uhrzeit des Zugriffs,
- - Name und URL der abgerufenen Datei,
- - Website, von der aus der Zugriff erfolgt (Referrer-URL),
- - verwendeter Browser und ggfs. das Betriebssystem Ihres Rechners sowie der Name Ihres Access-Providers.
-
-
-
-
-Die genannten Daten werden durch uns zu folgenden Zwecken verarbeitet:
-
-
- - Gewährleistung eines reibungslosen Verbindungsaufbaus der Website,
- - Gewährleistung einer komfortablen Nutzung unserer Website,
- - Auswertung der Systemsicherheit und -stabilität sowie
- - zu weiteren administrativen Zwecken.
-
-
-
-
-Die Rechtsgrundlage für die Datenverarbeitung ist Art. 6 Abs. 1 S. 1 lit. f DSGVO. Unser berechtigtes Interesse folgt aus oben aufgelisteten Zwecken zur Datenerhebung. In keinem Fall verwenden wir die erhobenen Daten zu dem Zweck, Rückschlüsse auf Ihre Person zu ziehen.
-
-
-
-Darüber hinaus setzen wir beim Besuch unserer Website Cookies ein. Nähere Erläuterungen dazu erhalten Sie unter den Ziff. 4 dieser Datenschutzerklärung.
-
-
-3. Welche Daten wir zu welchem Zweck weitergeben:
-
-
-Eine Übermittlung Ihrer persönlichen Daten an Dritte zu anderen als den im Folgenden aufgeführten Zwecken findet nicht statt.
-
-
-a) Weitergabe von Daten, die wir im Rahmen Ihres Besuchs unserer Website erheben:
-
-
-Wir geben Ihre persönlichen Daten nur an Dritte weiter, wenn:
-
-
-
- - Sie nach Art. 6 Abs. 1 S. 1 lit. a DSGVO Ihre ausdrückliche Einwilligung dazu erteilt haben,
- - Sie externe Komponenten auf unserer Website aufrufen, nach Art. 6 Abs. 1 S. 1 lit. f zur Darstellung der externen Komponenten der Anbieter google.com (Google Inc, 1600 Amphitheatre Parkway Mountain View, CA 94043, USA), jquery.com (JSFoundation, Inc., 1 Letterman Drive San Francisco, CA 94129, USA), openlayers.org, getmdl.io (google), (Google Inc, 1600 Amphitheatre Parkway Mountain View, CA 94043, USA) cdn.polyfill.io, openstreetmap.org sowie opentopomap.org,
- - die Weiterleitung nach Art. 6 Abs. 1 S. 1 lit. f DSGVO zur Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen erforderlich ist und kein Grund zur Annahme besteht, dass Sie ein überwiegendes schutzwürdiges Interesse an der Nichtweitergabe Ihrer Daten haben,
- - für den Fall, dass für die Weitergabe nach Art. 6 Abs. 1 S. 1 lit. c DSGVO eine gesetzliche Verpflichtung besteht, sowie
- - dies gesetzlich zulässig und nach Art. 6 Abs. 1 S. 1 lit. b DSGVO für die Abwicklung von Vertragsverhältnissen mit Ihnen erforderlich ist.
-
-
-b) Weitergabe Ihrer Daten im Rahmen unserer Vereinstätigkeit
-
-
-Zur Weitergabe der Daten im Rahmen einer Mitgliedschaft im Alpenverein Heidelberg beachten Sie bitte auch die Datenschutzerklärung der Sektion unter www.alpenverein-heidelberg.de/datenschutz.
-
-
-
-Die jdav Heidelberg hat die Firma Contabo GmbH Aschauer Str. 32a 81549 München beauftragt die Daten ihrer Mitglieder zu
-verwalten. Diese Datenverarbeitung erfolgt in Rechenzentren in der Schweiz oder Staaten des Europäischen Wirtschaftsraums (EWR).
-
-
-
-Die von Ihnen in Ihrer Beitrittserklärung angegebenen Daten über Ihre persönlichen und sachlichen Verhältnisse (sogenannte personenbezogene Daten) werden gleichermaßen auf Datenverarbeitungs-Systemen der Sektion, der Sie beitreten, wie auch des Bundesverbandes des Deutschen Alpenvereins (DAV) gespeichert und für Verwaltungszwecke der Sektion, bzw. des Bundesverbandes verarbeitet und genutzt werden. Verantwortliche Stelle im Sinne des § 3 (7) BDSG bzw. Art. 4 lit 7. DSGVO ist dabei die Sektion, der Sie beitreten.
-
-
-
-Eine Übermittlung von Teilen dieser Daten an die jeweiligen Landes- und Sportfachverbände findet nur im Rahmen der in den Satzungen der Landes- und Sportfachverbände festgelegten Zwecke statt. Diese Datenübermittlungen sind notwendig zum Zwecke der Organisation eines Spiel- bzw. Wettkampfbetriebes und zum Zwecke der Einwerbung von öffentlichen Fördermitteln.
-
-
-
-Wir sichern Ihnen zu, Ihre personenbezogenen Daten vertraulich zu behandeln und nicht an Stellen außerhalb des DAV, weder außerhalb der Sektion, noch außerhalb des Bundesverbandes und der jeweiligen Landes- und Sportfachverbände weiterzugeben. Sie können jederzeit schriftlich Auskunft über die bezüglich Ihrer Person gespeicherten Daten erhalten und Korrektur verlangen, soweit die bei der Sektion und der Bundesgeschäftsstelle gespeicherten Daten unrichtig sind. Sollten die gespeicherten Daten für die Abwicklung der Geschäftsprozesse der Sektion, bzw. des Bundesverbandes nicht erforderlich sein, so können Sie auch eine Sperrung, gegebenenfalls auch eine Löschung Ihrer personenbezogenen Daten verlangen.
-
-
-
-Nach einer Beendigung der Mitgliedschaft werden Ihre personenbezogenen Daten gelöscht, soweit sie nicht, entsprechend der steuerrechtlichen Vorgaben, aufbewahrt werden müssen.
-
-
-
-Eine Nutzung Ihrer personenbezogenen Daten für Werbezwecke findet weder durch die Sektion, den Bundesverband, Kooperationspartner des Bundesverbandes des Deutschen Alpenvereins noch durch die jeweiligen Landes- und Sportfachverbände statt.
-
-
-
-Die Datenverarbeitung erfolgt auf Grundlage des Art. 6 Abs. 1 S. 1 lit. b DSGVO.
-
-
-4. Wir setzen Cookies ein:
-
-
-Wir setzen auf unserer Seite Cookies ein. Hierbei handelt es sich um kleine Dateien, die Ihr Browser automatisch erstellt und die auf Ihrem Endgerät (Laptop, Tablet, Smartphone o.ä.) gespeichert werden, wenn Sie unsere Seite besuchen. Cookies richten auf Ihrem Endgerät keinen Schaden an, enthalten keine Viren, Trojaner oder sonstige Schadsoftware.
-
-
-
-In dem Cookie werden Informationen abgelegt, die sich jeweils im Zusammenhang mit dem spezifisch eingesetzten Endgerät ergeben. Dies bedeutet jedoch nicht, dass wir dadurch unmittelbar Kenntnis von Ihrer Identität erhalten.
-
-
-
-Der Einsatz von Cookies dient einerseits dazu, die Nutzung unseres Angebots für Sie angenehmer zu gestalten. So setzen wir sogenannte Session-Cookies ein, um zu erkennen, dass Sie einzelne Seiten unserer Website bereits besucht haben. Diese werden nach Verlassen unserer Seite automatisch gelöscht.
-
-
-
-Darüber hinaus setzen wir ebenfalls zur Optimierung der Benutzerfreundlichkeit temporäre Cookies ein, die für einen bestimmten festgelegten Zeitraum auf Ihrem Endgerät gespeichert werden. Besuchen Sie unsere Seite erneut, um unsere Dienste in Anspruch zu nehmen, wird automatisch erkannt, dass Sie bereits bei uns waren und welche Eingaben und Einstellungen Sie getätigt haben, um diese nicht noch einmal eingeben zu müssen.
-
-
-
-Die durch Cookies verarbeiteten Daten sind für die genannten Zwecke zur Wahrung unserer berechtigten Interessen sowie der Dritter nach Art. 6 Abs. 1 S. 1 lit. f DSGVO erforderlich.
-
-
-
-Die meisten Browser akzeptieren Cookies automatisch. Sie können Ihren Browser jedoch so konfigurieren, dass keine Cookies auf Ihrem Computer gespeichert werden oder stets ein Hinweis erscheint, bevor ein neuer Cookie angelegt wird. Die vollständige Deaktivierung von Cookies kann jedoch dazu führen, dass Sie nicht alle Funktionen unserer Website nutzen können.
-
-
-5. Das geschieht im Falle einer elektronischen Kontaktaufnahme:
-
-
-a) Beschreibung und Umfang der Datenverarbeitung
-
-
-
-Auf unserer Internetseite sind Kontaktformulare vorhanden, welche für die elektronische Kontaktaufnahme genutzt werden können.
-Nimmt ein Nutzer diese Möglichkeit wahr, so werden die in der Eingabemaske eingegeben Daten an uns übermittelt und gespeichert.
-Für diese Datenverarbeitung ist die Firma Contabo GmbH Aschauer Str. 32a 81549 München beauftragt.
-Diese Daten sind:
-
-
-
-Name, Email-Adresse, Betreff und Inhalt Ihrer Nachricht.
-
-
-
-Im Zeitpunkt der Absendung der Nachricht werden zudem folgende Daten gespeichert
-
-
-
-
- - Ihre IP-Adresse,
- - Datum und Uhrzeit der Registrierung
-
-
-
-
-Für die Verarbeitung der Daten wird im Rahmen des Absendevorgangs Ihre Einwilligung eingeholt und auf diese Datenschutzerklärung verwiesen.
-
-
-
-Alternativ ist eine Kontaktaufnahme über die bereitgestellte Email-Adresse möglich. In diesem Fall werden Ihre mit der E-Mail übermittelten personenbezogenen Daten gespeichert.
-
-
-
-Es erfolgt in diesem Zusammenhang keine Weitergabe der Daten an Dritte. Die Daten werden ausschließlich für die Verarbeitung der Konversation verwendet.
-
-
-
-Falls im Formular angegeben erfolgt eine Weiterleitung aller eingegeben Daten an die private E-Mail-Adresse der verantwortlichen Jugendleiter. In diesem Fall kann je nach E-Mail Provider des Jugendleiters eine Weitergabe der Daten an Dritte nicht ausgeschlossen werden.
-
-
-b) Rechtsgrundlage für die Datenverarbeitung
-
-
-Rechtsgrundlage für die Verarbeitung der Daten ist bei Vorliegen Ihrer Einwilligung Art. 6 Abs. 1 lit. a DSGVO.
-
-
-
-Rechtsgrundlage für die Verarbeitung der Daten, die im Zuge einer Übersendung einer Email übermittelt werden, ist Art. 6 Abs. 1 lit. f DSGVO. Zielt der Email-Kontakt auf den Abschluss eines Vertrages, so ist zusätzliche Rechtsgrundlage für die Verarbeitung Art. 6 Abs. 1 lit. b DSGVO.
-
-
-c) Zweck der Datenverarbeitung
-
-
-Die Verarbeitung der personenbezogenen Daten aus der Eingabemaske dient uns allein zur Bearbeitung der Kontaktaufnahme. Im Falle einer Kontaktaufnahme per E-Mail liegt hierin auch das erforderliche berechtigte Interesse an der Verarbeitung der Daten.
-
-
-
-Die sonstigen während des Absendevorgangs verarbeiteten personenbezogenen Daten dienen dazu, einen Missbrauch des Kontaktformulars zu verhindern und die Sicherheit unserer informationstechnischen Systeme sicherzustellen.
-
-
-d) Dauer der Speicherung
-
-
-Die Daten werden gelöscht, sobald sie für die Erreichung des Zweckes ihrer Erhebung nicht mehr erforderlich sind. Für die personenbezogenen Daten aus der Eingabemaske des Kontaktformulars und diejenigen, die per E-Mail übersandt wurden, ist dies dann der Fall, wenn die jeweilige Konversation mit dem Nutzer beendet ist. Beendet ist die Konversation dann, wenn sich aus den Umständen entnehmen lässt, dass der betroffene Sachverhalt abschließend geklärt ist.
-
-
-
-Die während des Absendevorgangs zusätzlich erhobenen personenbezogenen Daten werden spätestens nach einer Frist von sieben Tagen gelöscht.
-
-
-6. Das geschieht, wenn Sie Online-Anmeldeformulare nutzen:
-
-
-Auf unserer Internetseite sind Anmeldeformulare vorhanden, welches für die elektronische Anmeldung zu Jugendgruppen, Kursen und Veranstaltungen unseres Vereins genutzt werden kann. Nimmt ein Nutzer diese Möglichkeit wahr, so werden die in der Eingabemaske eingegeben Daten an uns übermittelt und gespeichert.
-
-
-
-Name, Email-Adresse, Telefonnummer, gewählter Kurs, Informationen zu DAV-Mitgliedschaft, Mitgliedsnummer, Alter bzw. Geburtsdatum, Adresse, Informationen zur Verfügbarkeit für Jugendgruppen ggfs. Informationen zur Lawinenausbildung, allfällig übermittelte Bemerkungen.
-
-
-
-Im Zeitpunkt der Absendung der Nachricht werden zudem folgende Daten gespeichert:
-
-
-
-
- - Ihre IP-Adresse,
- - Datum und Uhrzeit der Registrierung
-
-
-
-
-Für die Verarbeitung der Daten wird im Rahmen des Absendevorgangs Ihre Einwilligung eingeholt und auf diese Datenschutzerklärung verwiesen.
-
-
-
-Die gespeicherten Daten werden spätestens ein Jahr nach Durchführung der Veranstaltung gelöscht, sofern nicht steuerliche Vorschriften eine längere Speicherdauer vorgeben. Daten auf der unserer Warteliste für Jugendgruppen werden ohne Frist gespeichert und auf Nachfrage bei anmeldung.jdav@alpenverein-heidelberg.de gelöscht werden.
-
-
-7. Das geschieht, wenn Sie Downloads vornehmen:
-
-
-Auf unserer Internetseite sind Download-Angebote eingestellt. Nimmt ein Nutzer einen Download vor, so werden Daten an uns übermittelt und gespeichert. Diese Daten sind:
-
-
-
-
- - Ihre IP-Adresse,
- - Datum und Uhrzeit der Registrierung
-
-
-
-
-Rechtsgrundlage für diese Speicherung ist Art. 6 Abs. 1 lit. f. DSGVO.
-
-
-
-Die gespeicherten Daten werden mit Ende des Besuchs unserer Website gelöscht.
-
-
-8. Ihre Betroffenenrechte:
-
-
-Sie haben das Recht:
-
-
-
-
- -
- gemäß Art. 15 DSGVO Auskunft über Ihre von uns verarbeiteten Daten zu erlangen. Insbesondere können Sie Auskunft über die Verarbeitungszwecke, die Kategorie der personenbezogenen Daten, die Kategorien von Empfängern, gegenüber denen Ihre Daten offengelegt wurden oder werden, die geplante Speicherdauer, das Bestehen eines Rechts auf Berichtigung, Löschung, Einschränkung der Verarbeitung oder Widerspruch, das Bestehen eines Beschwerderechts, die Herkunft ihrer Daten, sofern diese nicht bei uns erhoben wurden, sowie über das Bestehen einer automatisierten Entscheidungsfindung einschließlich Profiling und ggfs. aussagekräftigen Informationen zu deren Einzelheiten verlangen;
-
- -
- gemäß Art. 16 DSGVO unverzüglich die Berichtigung unrichtiger oder Vervollständigung Ihrer bei uns gespeicherten personenbezogenen Daten zu verlangen;
-
- -
- gemäß Art. 17 DSGVO die Löschung Ihrer bei uns gespeicherten personenbezogenen Daten zu verlangen, soweit nicht die Verarbeitung zur Ausübung des Rechts auf freie Meinungsäußerung und Information, zur Erfüllung einer rechtlichen Verpflichtung, aus Gründen des öffentlichen Interesses oder zur Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen erforderlich ist;
-
- -
- gemäß Art. 18 DSGVO die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu verlangen, soweit die Richtigkeit der Daten von Ihnen bestritten wird, die Verarbeitung unrechtmäßig ist, Sie aber deren Löschung ablehnen und wir die Daten nicht mehr benötigen, Sie jedoch diese zur Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen benötigen oder Sie gemäß Art. 21 DSGVO Widerspruch gegen die Verarbeitung eingelegt haben.
-
- -
- gemäß Art. 20 DSGVO Ihre personenbezogenen Daten, die Sie uns bereitgestellt haben, in einem strukturierten, gängigen und maschinenlesbaren Format zu erhalten oder die Übermittlung an einen anderen Verantwortlichen zu verlangen;
-
- -
- gemäß Art. 7 Abs. 3 DSGVO Ihre einmal erteilte Einwilligung jederzeit gegenüber uns zu widerrufen. Dies hat zur Folge, dass wir die Datenverarbeitung, die auf dieser Einwilligung beruhte, für die Zukunft nicht mehr fortführen dürfen und
-
- -
- gemäß Art. 77 DSGVO sich bei einer Aufsichtsbehörde zu beschweren. In der Regel können Sie sich hierfür an die Aufsichtsbehörde Ihres üblichen Aufenthaltsortes oder Arbeitsplatzes oder unseres Vereinssitzes wenden.
-
-
-
-
-9. Ihre Widerspruchsrechte:
-
-
-Sofern Ihre personenbezogenen Daten auf Grundlage von berechtigten Interessen gemäß Art. 6 Abs. 1 S. 1 lit. f DSGVO verarbeitet werden, haben Sie das Recht, gemäß Art. 21 DSGVO Widerspruch gegen die Verarbeitung Ihrer personenbezogenen Daten einzulegen, soweit dafür Gründe vorliegen, die sich aus Ihrer besonderen Situation ergeben oder sich der Widerspruch gegen Direktwerbung richtet. Im letzten Fall haben Sie ein generelles Widerspruchsrecht, das ohne Angabe einer besonderen Situation von uns umgesetzt wird.
-
-
-
-Möchten Sie von Ihrem Widerrufs- oder Widerspruchsrecht Gebrauch machen, genügt eine Email an
-jugend@alpenverein-heidelberg.de oder
-geschaeftsstelle@alpenverein-heidelberg.de.
-
-
-10. Die Sicherheit Ihrer Daten:
-
-
-Wir bedienen uns geeigneter technischer und organisatorischer Sicherheitsmaßnahmen, um Ihre Daten gegen zufällige oder vorsätzliche Manipulationen, teilweisen oder vollständigen Verlust, Zerstörung oder gegen den unbefugten Zugriff Dritter zu schützen. Unsere Sicherheitsmaßnahmen werden entsprechend der technologischen Entwicklung fortlaufend verbessert.
-
-
-11. Aktualität und Änderung dieser Datenschutzerklärung
-
-
-Diese Datenschutzerklärung ist aktuell gültig und hat den Stand November 2024.
-
-
-
-Durch die Weiterentwicklung unserer Website und Angebote darüber oder aufgrund geänderter gesetzlicher beziehungsweise behördlicher Vorgaben kann es notwendig werden, diese Datenschutzerklärung zu ändern. Die jeweils aktuelle Datenschutzerklärung kann jederzeit auf der Website unter
-www.jdav-hd.de/impressum#datenschutz von Ihnen aufgerufen und falls gewünscht ausgedruckt werden.
-
+{% include "startpage/impressum_content.html" %}
{% endblock %}
diff --git a/jdav_web/startpage/templates/startpage/impressum_content.html b/jdav_web/startpage/templates/startpage/impressum_content.html
new file mode 100644
index 0000000..0408096
--- /dev/null
+++ b/jdav_web/startpage/templates/startpage/impressum_content.html
@@ -0,0 +1,3 @@
+{% load i18n %}
+
+{% blocktrans %}This is only a placeholder. Please override this placeholder with a custom text as described in the documentation.{% endblocktrans %}
From cfcde2da3a7d0d5c6cc854c9b32f057c05188669 Mon Sep 17 00:00:00 2001
From: "marius.klein"
Date: Sat, 1 Feb 2025 17:02:05 +0100
Subject: [PATCH 6/6] finance/statement: make `subsidy_to` and `allowance_to`
optional (#112)
closes #108
- fields for receivers of allowance `a` and subsidies `s` are not compulsory anymore. If receivers are given, `a` and `s` are payed out for them. `s` can only be payed out in total, disregarding the number of receivers given for `a`.
- In the overview pages (activity and statement), we are now distinguishing between theoretical `a` + `s` and what has been payed out practically. If no receiver was given for either things, it is made clear that nothing is payed out. All combinations of `0`, ..., `n` payed allowances (`n` being number of approved participating YLs) and `0, `1` payed subsidies are possible.
- transaction generation logic adapted accordingly
Reviewed-on: https://git.jdav-hd.merten.dev/digitales/kompass/pulls/112
Reviewed-by: Christian Merten
Co-authored-by: marius.klein
Co-committed-by: marius.klein
---
.../finance/locale/de/LC_MESSAGES/django.po | 75 ++++++++----
...8_alter_statement_allowance_to_and_more.py | 25 ++++
jdav_web/finance/models.py | 35 ++++--
.../admin/overview_submitted_statement.html | 44 +++++--
jdav_web/finance/tests.py | 1 -
jdav_web/members/admin.py | 5 -
.../members/locale/de/LC_MESSAGES/django.po | 115 +++++++++++-------
.../admin/freizeit_finance_overview.html | 13 ++
8 files changed, 222 insertions(+), 91 deletions(-)
create mode 100644 jdav_web/finance/migrations/0008_alter_statement_allowance_to_and_more.py
diff --git a/jdav_web/finance/locale/de/LC_MESSAGES/django.po b/jdav_web/finance/locale/de/LC_MESSAGES/django.po
index 9f6d9e3..d1fb9d9 100644
--- a/jdav_web/finance/locale/de/LC_MESSAGES/django.po
+++ b/jdav_web/finance/locale/de/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-01-19 14:26+0100\n"
+"POT-Creation-Date: 2025-01-25 11:56+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -32,6 +32,10 @@ msgstr ""
"Rechnung %(name)s erfolgreich eingereicht. Das Finanzreferat wird auf dich "
"sobald wie möglich zukommen."
+#: finance/admin.py
+msgid "Finance overview"
+msgstr "Kostenübersicht"
+
#: finance/admin.py
msgid "Submit statement"
msgstr "Rechnung einreichen"
@@ -182,13 +186,10 @@ msgid "Pay allowance to"
msgstr "Aufwandsentschädigung auszahlen an"
#: finance/models.py
-msgid ""
-"The youth leaders to which an allowance should be paid. The count must match "
-"the number of permitted youth leaders."
+msgid "The youth leaders to which an allowance should be paid."
msgstr ""
"Die Jugendleiter*innen an die eine Aufwandsentschädigung ausgezahlt werden "
-"soll. Die Anzahl muss mit der Anzahl an zugelassenen Jugendleiter*innen "
-"übereinstimmen. "
+"soll."
#: finance/models.py
msgid "Pay subsidy to"
@@ -412,8 +413,8 @@ msgstr "Ausfahrt"
#, python-format
msgid "This excursion featured %(staff_count)s youth leader(s), each costing"
msgstr ""
-"Diese Ausfahrt hatte %(staff_count)s genehmigte Jugendleiter*innen. Auf "
-"jede*n entfallen die folgenden Kosten:"
+"Diese Ausfahrt hatte %(staff_count)s genehmigte Jugendleiter*innen. Für "
+"jede*n besteht ein Anspruch auf folgende Zuschüsse und Aufwandsentschädigungen:"
#: finance/templates/admin/overview_submitted_statement.html
#, python-format
@@ -427,29 +428,33 @@ msgstr ""
#: finance/templates/admin/overview_submitted_statement.html
#, python-format
msgid ""
-"%(duration)s days for %(allowance_per_day)s€ per day making a total of "
-"%(allowance_per_yl)s€."
+"%(kilometers_traveled)s km by %(means_of_transport)s (%(euro_per_km)s € / "
+"km) making a total of %(transportation_per_yl)s€."
msgstr ""
-"%(duration)s Tage für %(allowance_per_day)s€ pro Tag. Das ergibt eine "
-"Gesamtsumme von %(allowance_per_yl)s€."
+"%(kilometers_traveled)s km mit %(means_of_transport)s (%(euro_per_km)s€ / "
+"km). Das ergibt eine Gesamtsumme von %(transportation_per_yl)s€."
#: finance/templates/admin/overview_submitted_statement.html
#, python-format
msgid ""
-"%(kilometers_traveled)s km by %(means_of_transport)s (%(euro_per_km)s € / "
-"km) making a total of %(transportation_per_yl)s€."
+"%(duration)s days for %(allowance_per_day)s€ per day making a total of "
+"%(allowance_per_yl)s€."
msgstr ""
-"%(kilometers_traveled)s km mit %(means_of_transport)s (%(euro_per_km)s€ / "
-"km). Das ergibt eine Gesamtsumme von %(transportation_per_yl)s€."
+"%(duration)s Tage für %(allowance_per_day)s€ pro Tag. Das ergibt eine "
+"Gesamtsumme von %(allowance_per_yl)s€."
#: finance/templates/admin/overview_submitted_statement.html
#, python-format
msgid ""
"In total this is %(total_per_yl)s€ times %(staff_count)s, giving "
-"%(total_staff)s€."
+"%(theoretical_total_staff)s€."
msgstr ""
"Insgesamt sind das Kosten von %(total_per_yl)s€ mal %(staff_count)s, "
-"insgesamt also %(total_staff)s€."
+"insgesamt also maximal %(theoretical_total_staff)s€."
+
+#: finance/templates/admin/overview_submitted_statement.html
+msgid "Payment of subsidies and allowances"
+msgstr "Auszahlung von Sektionszuschüssen und Aufwandsentschädigungen"
#: finance/templates/admin/overview_submitted_statement.html
#, python-format
@@ -458,6 +463,27 @@ msgstr ""
"Die Aufwandsentschädigung von %(allowance_per_yl)s€ pro Person soll "
"ausgezahlt werden an:"
+#: finance/templates/admin/overview_submitted_statement.html
+#: finance/templates/admin/submit_statement.html
+msgid "IBAN valid"
+msgstr "IBAN gültig"
+
+#: finance/templates/admin/overview_submitted_statement.html
+#, python-format
+msgid ""
+"Only %(allowances_paid)s of the %(real_staff_count)s youth leaders have "
+"requested the outpayment of their allowance."
+msgstr ""
+"Achtung: Nur für %(allowances_paid)s der %(real_staff_count)s "
+"Jugendleiter*innen wird die Aufwandsentschädigung abgerufen."
+
+#: finance/templates/admin/overview_submitted_statement.html
+msgid ""
+"No receivers of the allowance were provided. Allowance will not be used."
+msgstr ""
+"Keine Empfänger*innen für eine Aufwandsentschädigung angegeben. Es wird "
+"daher keine Aufwandsentschädigung ausbezahlt."
+
#: finance/templates/admin/overview_submitted_statement.html
#, python-format
msgid ""
@@ -465,7 +491,14 @@ msgid ""
"should be paid to:"
msgstr ""
"Die Zuschüsse für Übernachtungs- und Fahrtkosten von %(total_subsidies)s€ "
-"sollen ausgezahlt werden an:"
+"für alle Jugendleiter*innen sollen ausgezahlt werden an:"
+
+#: finance/templates/admin/overview_submitted_statement.html
+msgid ""
+"No receivers of the subsidies were provided. Subsidies will not be used."
+msgstr ""
+"Keine Empfänger*innen für Sektionszuschüsse angegeben. Es werden daher keine "
+"Sektionszuschüsse ausbezahlt."
#: finance/templates/admin/overview_submitted_statement.html
#, python-format
@@ -542,10 +575,6 @@ msgstr ""
"Bitte überprüfe, ob alle Ausgaben korrekt erfasst sind und ob alle "
"auslegenden Personen eine gültige IBAN haben."
-#: finance/templates/admin/submit_statement.html
-msgid "IBAN valid"
-msgstr "IBAN gültig"
-
#: finance/templates/admin/submit_statement.html
msgid ""
"Do you want to submit the statement for further processing by the finance "
diff --git a/jdav_web/finance/migrations/0008_alter_statement_allowance_to_and_more.py b/jdav_web/finance/migrations/0008_alter_statement_allowance_to_and_more.py
new file mode 100644
index 0000000..faf7504
--- /dev/null
+++ b/jdav_web/finance/migrations/0008_alter_statement_allowance_to_and_more.py
@@ -0,0 +1,25 @@
+# Generated by Django 4.0.1 on 2025-01-23 22:16
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('members', '0033_freizeit_approved_extra_youth_leader_count'),
+ ('finance', '0007_alter_statement_allowance_to'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='statement',
+ name='allowance_to',
+ field=models.ManyToManyField(blank=True, help_text='The youth leaders to which an allowance should be paid.', related_name='receives_allowance_for_statements', to='members.Member', verbose_name='Pay allowance to'),
+ ),
+ migrations.AlterField(
+ model_name='statement',
+ name='subsidy_to',
+ field=models.ForeignKey(blank=True, help_text='The person that should receive the subsidy for night and travel costs. Typically the person who paid for them.', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='receives_subsidy_for_statements', to='members.member', verbose_name='Pay subsidy to'),
+ ),
+ ]
diff --git a/jdav_web/finance/models.py b/jdav_web/finance/models.py
index 8be4291..5fb1aa9 100644
--- a/jdav_web/finance/models.py
+++ b/jdav_web/finance/models.py
@@ -62,9 +62,10 @@ class Statement(CommonModel):
allowance_to = models.ManyToManyField(Member, verbose_name=_('Pay allowance to'),
related_name='receives_allowance_for_statements',
blank=True,
- help_text=_('The youth leaders to which an allowance should be paid. The count must match the number of permitted youth leaders.'))
+ help_text=_('The youth leaders to which an allowance should be paid.'))
subsidy_to = models.ForeignKey(Member, verbose_name=_('Pay subsidy to'),
null=True,
+ blank=True,
on_delete=models.SET_NULL,
related_name='receives_subsidy_for_statements',
help_text=_('The person that should receive the subsidy for night and travel costs. Typically the person who paid for them.'))
@@ -163,7 +164,8 @@ class Statement(CommonModel):
@property
def allowance_to_valid(self):
"""Checks if the configured `allowance_to` field matches the regulations."""
- if self.allowance_to.count() != self.real_staff_count:
+ if self.allowances_paid > self.real_staff_count:
+ # it is allowed that less allowances are utilized than youth leaders are enlisted
return False
if self.excursion is not None:
yls = self.excursion.jugendleiter.all()
@@ -239,8 +241,7 @@ class Statement(CommonModel):
if self.subsidy_to:
ref = _("Night and travel costs for %(excu)s") % {'excu': self.excursion.name}
Transaction(statement=self, member=self.subsidy_to, amount=self.total_subsidies, confirmed=False, reference=ref).save()
- else:
- return False
+
return True
def reduce_transactions(self):
@@ -299,9 +300,13 @@ class Statement(CommonModel):
return cvt_to_decimal(self.excursion.duration * settings.ALLOWANCE_PER_DAY)
+ @property
+ def allowances_paid(self):
+ return self.allowance_to.count()
+
@property
def total_allowance(self):
- return self.allowance_per_yl * self.real_staff_count
+ return self.allowance_per_yl * self.allowances_paid
@property
def total_transportation(self):
@@ -341,11 +346,24 @@ class Statement(CommonModel):
The total amount of subsidies excluding the allowance, i.e. the transportation
and night costs per youth leader multiplied with the real number of youth leaders.
"""
- return (self.transportation_per_yl + self.nights_per_yl) * self.real_staff_count
+ if self.subsidy_to:
+ return (self.transportation_per_yl + self.nights_per_yl) * self.real_staff_count
+ else:
+ return cvt_to_decimal(0)
+
+ @property
+ def theoretical_total_staff(self):
+ """
+ the sum of subsidies and allowances if all eligible youth leaders would collect them.
+ """
+ return self.total_per_yl * self.real_staff_count
@property
def total_staff(self):
- return self.total_per_yl * self.real_staff_count
+ """
+ the sum of subsidies and allowances that youth leaders are actually collecting
+ """
+ return self.total_allowance + self.total_subsidies
@property
def real_staff_count(self):
@@ -397,11 +415,14 @@ class Statement(CommonModel):
'means_of_transport': self.excursion.get_tour_approach(),
'euro_per_km': self.euro_per_km,
'allowance_per_day': settings.ALLOWANCE_PER_DAY,
+ 'allowances_paid': self.allowances_paid,
'nights_per_yl': self.nights_per_yl,
'allowance_per_yl': self.allowance_per_yl,
'transportation_per_yl': self.transportation_per_yl,
'total_per_yl': self.total_per_yl,
'total_staff': self.total_staff,
+ 'theoretical_total_staff': self.theoretical_total_staff,
+ 'real_staff_count': self.real_staff_count,
'total_subsidies': self.total_subsidies,
}
return dict(context, **excursion_context)
diff --git a/jdav_web/finance/templates/admin/overview_submitted_statement.html b/jdav_web/finance/templates/admin/overview_submitted_statement.html
index 0546b81..e6196de 100644
--- a/jdav_web/finance/templates/admin/overview_submitted_statement.html
+++ b/jdav_web/finance/templates/admin/overview_submitted_statement.html
@@ -71,27 +71,47 @@