diff --git a/.gitignore b/.gitignore index 4fdab90..2e3fb03 100644 --- a/.gitignore +++ b/.gitignore @@ -106,9 +106,6 @@ jdav_web/my.cnf # sass cache jdav_web/static/jet/css/themes/*/.sass-cache/* -# test config -config - # celerybeat schedule database jdav_web/celerybeat-schedule.db @@ -125,6 +122,11 @@ docker/development/media docker/production/media docker/test/media +# configuration folders +docker/development/config/* +!docker/development/config/settings.toml.example +docker/production/config + *.csv jdav_web/static/docs diff --git a/docker/development/config/settings.toml.example b/docker/development/config/settings.toml.example new file mode 100644 index 0000000..e89a029 --- /dev/null +++ b/docker/development/config/settings.toml.example @@ -0,0 +1,67 @@ +[section] +name = "Town" +street = "Street 12" +town = "12345 Town" +telephone = "123456789" +telefax = "987654321" +contact_mail = "contact@jdav-town.de" +board_mail = "board@jdav-town.de" +crisis_intervention_mail = "crisis@jdav-town.de" +iban = "DE42 4242 4242 4242 4242 42" +account_holder = "DAV Town" +responsible_mail = "responsible@jdav-town.de" +digital_mail = "digital@jdav-town.de" +admins = [['Admin', 'admin@jdav-town.de']] + +[LJP] +v32_head_organisation = """ +LJP application recipient header +""" + +[misc] +allowed_email_domains_for_invite_as_user = ['alpenverein-town.de'] +send_from_association_email = true +domain = 'jdav-town.de' + +[finance] +allowance_per_day = 22 +max_night_cost = 11 + +[links] +cloud = "https://nextcloud.com" +dav_360 = "https://dav360.de" +wiki = "https://wikipedia.org" +docs = "https://jdav-hd.de/static/docs" +registration_form = "download-me" + +[startpage] +redirect_url = '' +root_section = 'root section' +recent_section = 'aktuelles' +reports_section = 'berichte' + +[django] +deployed = true +debug = true +secret_key = '6_ew6l1r9_4(8=p8quv(e8b+z+k+*wm7&zxx%mcnnec99a!lpw' +allowed_hosts = ['*'] +protocol = 'http' +base_url = 'localhost:8000' +host = '' +static_root = '/var/www/jdav_web/assets' +broker_url = 'redis://redis:6379/0' +memcached_url = 'cache:11211' + +[mail] +host = 'jdav-town.de' +user = 'user@jdav-town.de' +password = 'password' +default_sending_address = 'info@jdav-town.de' +default_sending_name = 'JDAV Town' + +[database] +host = 'db' +port = 3306 +database = 'kompass' +user = 'kompass' +password = 'foobar' diff --git a/docker/development/docker-compose.yaml b/docker/development/docker-compose.yaml index 1359766..2b43b60 100644 --- a/docker/development/docker-compose.yaml +++ b/docker/development/docker-compose.yaml @@ -8,6 +8,9 @@ x-kompass: UID: ${UID} GID: ${UID} USER: ${USER} + environment: + - KOMPASS_CONFIG_DIR_PATH=/app/config/ + - DJANGO_SETTINGS_MODULE=jdav_web.settings env_file: docker.env restart: always depends_on: @@ -25,6 +28,7 @@ services: - ./../../jdav_web:/app/jdav_web - ./../../docs:/app/docs - ./media:/app/media + - ./config:/app/config:ro ports: - "8000:8000" diff --git a/docker/development/docker.env.example b/docker/development/docker.env.example index 1e1131d..af32d63 100644 --- a/docker/development/docker.env.example +++ b/docker/development/docker.env.example @@ -1,33 +1,4 @@ -DJANGO_ALLOWED_HOST='*' -DJANGO_BASE_URL='localhost:8000' -DJANGO_PROTOCOL='http' - -EMAIL_HOST='example.com' -EMAIL_HOST_USER='foo@example.com' -EMAIL_HOST_PASSWORD='password' -EMAIL_SENDING_ADDRESS='foo@example.com' -EMAIL_SENDING_NAME='My association' - -DOMAIN='example.com' - -DJANGO_DEPLOY=1 -DJANGO_DEBUG=1 - -DJANGO_DATABASE_NAME='kompass' -DJANGO_DATABASE_USER='kompass' -DJANGO_DATABASE_PASSWORD='foobar' -DJANGO_DATABASE_HOST='db' -DJANGO_DATABASE_PORT=3306 - MYSQL_ROOT_PASSWORD='secret' MYSQL_PASSWORD='foobar' MYSQL_USER='kompass' MYSQL_DATABASE='kompass' - -DJANGO_SETTINGS_MODULE='jdav_web.settings' -DJANGO_STATIC_ROOT='/var/www/jdav_web/assets' - -MEMCACHED_URL='cache:11211' -BROKER_URL='redis://redis:6379/0' - -SEND_FROM_ASSOCIATION_EMAIL=0 diff --git a/docker/production/docker-compose.yaml b/docker/production/docker-compose.yaml index 35d8daa..62a483c 100644 --- a/docker/production/docker-compose.yaml +++ b/docker/production/docker-compose.yaml @@ -2,6 +2,9 @@ x-kompass: &kompass image: kompass:production env_file: docker.env + environment: + - DJANGO_SETTINGS_MODULE=jdav_web.settings + - KOMPASS_CONFIG_DIR_PATH=/app/config/ restart: always depends_on: - redis @@ -19,6 +22,7 @@ services: - web_static:/app/static/ - web_static:/var/www/jdav_web/static/ - ./media:/var/www/jdav_web/media/ + - ./config:/app/config:ro nginx: build: ./nginx/ @@ -43,10 +47,14 @@ services: celery_worker: <<: *kompass entrypoint: /app/docker/production/entrypoint-celery-worker.sh + volumes: + - ./config:/app/config:ro celery_beat: <<: *kompass entrypoint: /app/docker/production/entrypoint-celery-beat.sh + volumes: + - ./config:/app/config:ro volumes: uwsgi_data: diff --git a/docker/test/config/settings.toml b/docker/test/config/settings.toml new file mode 100644 index 0000000..f1e5f79 --- /dev/null +++ b/docker/test/config/settings.toml @@ -0,0 +1,31 @@ +[testing] +mail = "test@localhost" + +[django] +deployed = true +debug = true +secret_key = '6_ew6l1r9_4(8=p8quv(e8b+z+k+*wm7&zxx%mcnnec99a!lpw' +allowed_hosts = ['*'] +protocol = 'http' +base_url = 'localhost:8000' +host = 'localhost' +static_root = '/var/www/jdav_web/assets' +broker_url = 'redis://redis:6379/0' +memcached_url = 'cache:11211' + +[mail] +host = 'localhost' +user = 'test' +password = 'password' +default_sending_address = 'test@localhost' + +[database] +host = 'db' +port = 3306 +database = 'kompass' +user = 'kompass' +password = 'password' + +[startpage] +recent_section = 'aktuelles' +reports_section = 'berichte' diff --git a/docker/test/docker-compose.yaml b/docker/test/docker-compose.yaml index 7bf2a02..9c3aad7 100644 --- a/docker/test/docker-compose.yaml +++ b/docker/test/docker-compose.yaml @@ -8,6 +8,8 @@ services: dockerfile: docker/test/Dockerfile env_file: docker.env environment: + - KOMPASS_CONFIG_DIR_PATH=/app/config/ + - DJANGO_SETTINGS_MODULE=jdav_web.settings - DJANGO_TEST_KEEPDB=$DJANGO_TEST_KEEPDB depends_on: - redis @@ -15,6 +17,7 @@ services: - db entrypoint: /app/docker/test/entrypoint-master.sh volumes: + - ./config:/app/config:ro - type: bind source: ./htmlcov/ target: /app/jdav_web/htmlcov/ diff --git a/docker/test/docker.env b/docker/test/docker.env index 2e20f64..de229c2 100644 --- a/docker/test/docker.env +++ b/docker/test/docker.env @@ -1,28 +1,4 @@ -DJANGO_ALLOWED_HOST='*' -DJANGO_BASE_URL='localhost:8000' -DJANGO_PROTOCOL='http' - -EMAIL_HOST='localhost' -EMAIL_HOST_USER='test' -EMAIL_HOST_PASSWORD='password' -EMAIL_SENDING_ADDRESS='test@localhost' - -DJANGO_DEPLOY=1 -DJANGO_DEBUG=1 - -DJANGO_DATABASE_NAME='kompass' -DJANGO_DATABASE_USER='kompass' -DJANGO_DATABASE_PASSWORD='password' -DJANGO_DATABASE_HOST='db' -DJANGO_DATABASE_PORT=3306 - MYSQL_ROOT_PASSWORD='secretpassword' MYSQL_PASSWORD='password' MYSQL_USER='kompass' MYSQL_DATABASE='kompass' - -DJANGO_SETTINGS_MODULE='jdav_web.settings' -DJANGO_STATIC_ROOT='/var/www/jdav_web/assets' - -MEMCACHED_URL='cache:11211' -BROKER_URL='redis://redis:6379/0' 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 @@

-{% blocktrans %}In total this is {{ total_per_yl }}€ times {{ staff_count }}, giving {{ total_staff }}€.{% endblocktrans %} +{% blocktrans %}In total this is {{ total_per_yl }}€ times {{ staff_count }}, giving {{ theoretical_total_staff }}€.{% endblocktrans %}

- +

{% trans "Payment of subsidies and allowances" %}

+{% if allowances_paid > 0 %}

{% blocktrans %}The allowance of {{ allowance_per_yl }}€ per person should be paid to:{% endblocktrans %} -

+{% if allowances_paid > 0 %} {% blocktrans %}The allowance of {{ allowance_per_yl }}€ per person is configured to be paid to:{% endblocktrans %}
@@ -99,6 +100,14 @@ cost plan! {% endfor %}

+{% if memberlist.statement.allowances_paid < memberlist.statement.real_staff_count %} +

{% blocktrans %}Only {{ allowances_paid }} of the {{ real_staff_count }} youth leaders have requested the outpayment of their allowance.{% endblocktrans %}

+{% endif %} + +{% else %} +

{% blocktrans %}No receivers of the allowance were provided. Allowance will not be used.{% endblocktrans %}

+{% endif %} +{% if memberlist.statement.subsidy_to %}

{% blocktrans %}The subsidies for night and transportation costs of {{ total_subsidies }}€ is configured to be paid to:{% endblocktrans %} @@ -111,6 +120,10 @@ cost plan!

+{% else %} +

{% blocktrans %}No receivers of the subsidies were provided. Subsidies will not be used.{% endblocktrans %}

+ +{% endif %} {% if not memberlist.statement.allowance_to_valid %}

{% blocktrans %}Warning: The configured recipients of the allowance don't match the regulations. This might be because the number of recipients is bigger then the number of admissable youth leaders for this excursion.{% endblocktrans %} diff --git a/jdav_web/members/templates/members/registration_form.tex b/jdav_web/members/templates/members/registration_form.tex index 9244434..ece5d14 100644 --- a/jdav_web/members/templates/members/registration_form.tex +++ b/jdav_web/members/templates/members/registration_form.tex @@ -1,406 +1,8 @@ -{% load tex_extras %} - \documentclass{article} -\usepackage[utf8]{inputenc} -\usepackage{booktabs} -\usepackage{amssymb} -\usepackage{cmbright} -\usepackage{graphicx} -\usepackage{textpos} -\usepackage[colorlinks, breaklinks]{hyperref} -\usepackage{float} -\usepackage[margin=1in]{geometry} -\usepackage{array} -\usepackage{tabularx} -\usepackage{ltablex} - -\usepackage{tikz} -\usepackage{setspace} -\usepackage{pbox} - -\newcommand{\picpos}[4]{ - \begin{textblock*}{#1}(#2, #3) - \includegraphics[width=\textwidth]{#4} - \end{textblock*} -} - -% set formatting -\setlength\parindent{0pt} -\setlength\parskip{0.6em plus 0.1em minus 0.1em} - -% custom url command for properly formatting emails -\DeclareUrlCommand\Email{\urlstyle{same}} -% allow linebreak after every character -\expandafter\def\expandafter\UrlBreaks\expandafter{\UrlBreaks -\do\/\do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j\do\k -\do\l\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t\do\u\do\v -\do\w\do\x\do\y\do\z -\do\A\do\B\do\C\do\D\do\E\do\F\do\G\do\H\do\I\do\J\do\K -\do\L\do\M\do\N\do\O\do\P\do\Q\do\R\do\S\do\T\do\U\do\V -\do\W\do\X\do\Y\do\Z} - -\renewcommand{\arraystretch}{1} - -\newcolumntype{L}{>{\hspace{0pt}}X} -\newcommand{\tickedbox}{ - \makebox[0pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$\checkmark$} -} -\newcommand{\checkbox}{ - \makebox[0pt][l]{$\square$} -} - -% algemeines Layout Formular-Elemente -\renewcommand*{\DefaultOptionsofRadio}{print,radio, radiosymbol=6, width=\baselineskip, bordercolor={black}, borderwidth=0pt} -\renewcommand*{\DefaultOptionsofText}{print,bordercolor={black}, backgroundcolor=white, borderwidth=0pt} - -\renewcommand{\LayoutTextField}[2]{% label, field -\setbox0=\hbox{#1\unskip}\ifdim\wd0=0pt -\setbox1=\hbox{#2\unskip}\ifdim\ht1>3ex -% Multiline -\begin{tikzpicture}[every node/.style={inner sep=0,outer sep=0}] - \node[anchor=west] (TextFieldNode) at (0cm,0cm) {#2}; - \draw [thick] (current bounding box.south west) rectangle (current bounding box.north east); -\end{tikzpicture}% -\else -% Inline field, lowered a little bit to be better integrated into the text -\raisebox{-3.2pt}{\begin{tikzpicture}[every node/.style={inner sep=0,outer sep=0}] - \node[anchor=west] (TextFieldNode) at (0cm,0cm) {#2}; - \draw[thick] ([yshift=-0.3ex]TextFieldNode.south west) -- ([yshift=-0.3ex]TextFieldNode.south east); -\end{tikzpicture}}% -\fi -\else -% Field with label below it -\begin{tikzpicture}[every node/.style={inner sep=0,outer sep=0}] - \node[anchor=west] (TextFieldNode) at (0cm,2ex) {#2}; - \draw[thick] ([yshift=-0.3ex]TextFieldNode.south west) -- ([yshift=-0.3ex]TextFieldNode.south east); - \node[anchor=west,font=\small] at (0cm,-0.9ex) {#1}; -\end{tikzpicture}% -\fi -} - -\newcommand{\radiosize}{0.33cm} -\newcommand{\yesnoticks}[1]{% -\raisebox{-3.2pt}{\begin{tikzpicture}[every node/.style={inner sep=0,outer sep=0}] - \node[anchor=west,style={inner sep=2px}] (FieldYes) at (0cm,0cm) {\ChoiceMenu[radio=true,name=#1,width=\radiosize,height=\radiosize]{}{=Yes}}; - \node[anchor=west] (LabelYes) at ([xshift=0.7ex]FieldYes.east) {Ja}; - \node[anchor=west,style={inner sep=2px}] (FieldNo) at ([xshift=1ex]LabelYes.east) {\ChoiceMenu[radio=true,name=#1,width=\radiosize,height=\radiosize]{}{=No}}; - \node[anchor=west] (LabelNo) at ([xshift=0.7ex]FieldNo.east) {Nein}; - \draw [thick] ([xshift=-(\radiosize+0.15cm),yshift=-(\radiosize+0.15cm)]FieldYes.north east) rectangle (FieldYes.north east); - \draw [thick] ([xshift=-(\radiosize+0.15cm),yshift=-(\radiosize+0.15cm)]FieldNo.north east) rectangle (FieldNo.north east); -\end{tikzpicture}}% -} - -% Formularfeld, leer, editierbar -\newcommand{\field}[2]{\TextField[width=#2]{#1}} - -% Formularfeld, vorbefüllt, editierbar -\newcommand{\fieldpf}[3]{\TextField[width=#2,value=#3]{#1}} - -% Formularfeld, vorbefüllt, nicht editierbar -\newcommand{\fieldpfro}[3]{\TextField[width=#2,value=#3,readonly]{#1}} - -% Formularfeld, in den Fließtext integriert -\newcommand{\fieldinline}[2]{\TextField[width=#2,name=#1]{}} - -% Ja-Nein Antwort -\newcommand{\yesno}[2]{\pbox{0.8\textwidth}{\setstretch{1}#1}\hfill\yesnoticks{#2}} - -% Dummy-Formularfeld: Sieht genauso aus, ist aber statisch, vorbefüllt, nicht editierbar. -\newcommand{\fieldd}[3]{% Label, width, prefilled text -\begin{tikzpicture}[every node/.style={inner sep=0,outer sep=0}] - % Draw the static field rectangle - \node[anchor=west] (DummyFieldNode) at (0cm,2ex) {\strut #3}; % Prefilled text - \draw[thick] ([xshift=0cm,yshift=-0.3ex]DummyFieldNode.south west) -- ([xshift=#2,yshift=-0.3ex]DummyFieldNode.south west); - - % Label underneath - \node[anchor=west,font=\small] at (0cm,-1.2ex) {#1}; -\end{tikzpicture}% -} - - \begin{document} -% HEADER RIGHT -\picpos{4.5cm}{11.5cm}{0cm}{/app/jdav_web/static/general/img/dav_logo_hd.png} -\begin{textblock*}{5cm}(11.5cm, 2.3cm) - \begin{flushright} - \small - \noindent Deutscher Alpenverein e. V. \\ - Sektion {{ settings.SEKTION }} \\ - {{ settings.SEKTION_STREET }} \\ - {{ settings.SEKTION_TOWN }} \\ - Tel.: {{ settings.SEKTION_TELEPHONE }} \\ - Fax: {{ settings.SEKTION_TELEFAX }} \\ - {{ settings.SEKTION_CONTACT_MAIL }} \\ - \end{flushright} -\end{textblock*} - -% HEADLINE - - -\textbf{\LARGE Anmeldung und Einverständniserklärung} - -\textbf{Wir melden unser Kind verbindlich zur Jugendgruppe an:} - -\begin{Form} - \fieldd{Vor- und Nachname des Kindes}{0.65\linewidth}{ {{ member.name|esc_all }} } - - \fieldd{Geburtsdatum}{0.3\linewidth}{ {{ member.birth_date_str|esc_all }} } \hfill - \fieldd{Gender}{0.3\linewidth}{ {{ member.gender_str|esc_all }} } \hspace{0.35\linewidth} - - \fieldpf{DAV-Mitglieds-Nr.}{0.3\linewidth}{ {{ member.dav_badge_no|esc_all }} } \hfill - \fieldd{Telefon (mobil)*}{0.3\linewidth}{ {{ member.phone_number|esc_all }} } \hspace{0.35\linewidth} - - \fieldd{Adresse}{0.65\linewidth}{ {{ member.street|esc_all }}, {{ member.plz|esc_all }} {{ member.town|esc_all }} } - - \fieldd{E-Mail}{0.65\linewidth}{ {{ member.email|esc_all }} } - -{\small *wenn vorhanden, Kontaktdaten des Kindes, ansonsten einer Kontaktperson} - -\textbf{Notfallkontakte:} - -\begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}lll} - Vollständiger Name & E-Mail & Telefon (mobil) \\ - \midrule -{% for c in member.emergencycontact_set.all %} -{{ c.name|esc_all }} & {{ c.email|esc_all }} & {{ c.phone_number|esc_all }} \\ -{% endfor %} -\bottomrule -\end{tabular*} - -\textbf{Medizinische Informationen:} - -Gemäß den Teilnahmebedingungen verpflichten wir uns, vollständige -Angaben zu etwaigen gesundheitlichen Einschränkungen oder Erkrankungen unseres -Kindes zu machen: - -\field{Allergien}{\linewidth} - -\field{Medikamenten-Einnahmen}{\linewidth} - -\field{Weitere Informationen zu Einschränkungen}{\linewidth} - -\yesno{Unser Kind hat eine aktuelle Tetanus-Schutzimpfung}{tetanus} - -\yesno{Unser Kind hat sichere Schwimmkenntnisse}{schwimmen} - -\textbf{Einwilligung zu den Teilnahmebedingungen} - -Mit unserer Unterschrift bestätigen wird, dass wir die beigelegten -Teilnahmebedingungen (Stand 06.12.2024) gelesen und verstanden haben. Diesen Bedingungen -stimmen wir zu. Wir versichern, jegliche Änderungen an oben angegebenen -Daten umgehend den Jugendleiter*innen mitzuteilen. - - -\yesno{Wir stimmen der Bildnutzung in den Sektionsmedien gemäß -Teilnahmebedingungen zu}{bildnutzung} -\yesno{Unser Kind darf sich selbstständig von der Gruppenstunde abmelden.}{abmelden} - -\vspace{10pt} -\vfill - -\field{Ort, Datum}{0.28\linewidth}{}\hfill -\fieldd{Unterschrift Kind}{0.28\linewidth}{}\hfill -\fieldd{Unterschrift des/der Erziehungsberechtigten}{0.4\linewidth}{} - -Bitte diese Seite ausgefüllt und unterschrieben im Registrierungsformular hochladen. -\end{Form} - -\newpage - -\textbf{\large Informationen und Bedingungen zur Teilnahme an den -JDAV-Jugendgruppen der DAV-Sektion Heidelberg} - -{\small Stand: 06.12.2024} - - -Liebes neues Jugendgruppenmitglied, - -herzlich willkommen als neues aktives Mitglied unserer Sektionsjugend! -Das Zentrum unserer Jugendarbeit sind die wöchentlichen Gruppenstunden, -in denen wir in einer festen Gruppe gemeinsam Klettern oder Fahrrad fahren, Spiele spielen -und Spaß haben. Uns ist wichtig, dass du regelmäßig dabei bist und -deinen Jugendleiter*innen immer bescheid gibst, wenn du mal nicht kommen -kannst. - -Zu unserer Jugendarbeit gehören aber auch regelmäßig Ausfahrten und -Veranstaltungen rund um die Kletterhalle. Ausfahrten können ein- oder -mehrtägige Ausflüge zum Klettern in der Region, aber auch in die -Mittelgebirge oder Alpen sein, wo wir gemeinsam Wandern, Bergsteigen, -Klettern... Veranstaltungen in der Kletterhalle können zum Beispiel -gemeinsame Übernachtungen in der Gruppe oder größere Aktivitäten mit der -ganzen Sektionsjugend sein, z.B. unsere jährliche Jugendvollversammlung. -Hier treffen wir basisdemokratisch Entscheidungen über die Zukunft der -Jugendarbeit und wählen Stellvertreter*innen, die die Jugendarbeit -organisieren. Auch du hast hier eine Stimme! Wir freuen uns, wenn du bei -möglichst vielen Aktivitäten dabei sein kannst. - -Deine Jugendleiter*innen -\\[3mm] -\_\_ -\\[3mm] -Liebe Eltern, - -Bitte lesen Sie diese Teilnahmebedingungen für unsere Jugendarbeit genau -und bestätigen Ihr Einverständnis mit Ihrer Unterschrift auf unserer -Einverständniserklärung. - -\textbf{Durchgeführte Aktivitäten} - -In unserer Jugendgruppe bieten wir im weitesten Sinne verschiedene -Aktivitäten und Aktionen an, zu denen wir die Jugendlichen vorher -entsprechend einweisen, dazu gehören u.a.: - -\begin{itemize} - \setlength\itemsep{1pt} -\item - Jugendgruppenstunden mit Spielen, Übungen usw. -\item - Outdoorspiele in verschiedenen Formen -\item - Klettern an künstlichen Anlagen und natürlichen Felsen -\item - Wanderungen, Bachwanderungen oder Klettersteigbegehungen -\item Fahrradtouren z.B. mit dem Mountainbike -\item - natursportliche Aktivität mit den dort typischen Bedingungen und - Risiken -\item - Gruppenübergreifende Ausfahrten und Veranstaltungen der JDAV - Heidelberg. -\end{itemize} - -Während aller Aktivitäten werden die Jugendlichen von unseren -Jugendleiter*innen, die eine entsprechende Qualifizierung (DAV -Jugendleiterausbildung / DAV Fachübungsleiter usw.) vorweisen können, -betreut und beaufsichtigt. - -Um teilnehmen zu können, müssen die Jugendlichen Mitglied in der Sektion -Heidelberg des DAV sein und eine von den Erziehungsberechtigten -unterschriebene Einverständniserklärung abgeben. Wir erwarten eine -möglichst regelmäßige Teilnahme an den Gruppenstunden. Bei wiederholt -unentschuldigtem Fehlen (ab 3 mal) kann es zum Ausschluss aus der Gruppe -kommen. - -Mit Ihrer Unterschrift wird außerdem die aktuelle Fassung der -\textbf{Benutzer- und Hallenordnung der Kletterhalle} der Sektion -Heidelberg (Harbigweg 20, 69124 Heidelberg), anerkannt. Die Benutzer- -und Hallenordnung hängt ständig in der Kletterhalle aus. Den Anweisungen -des Personals ist Folge zu leisten. Die Gruppenstunden finden -gelegentlich auch \textbf{außerhalb des Vereinszentrums} im Harbigweg -20, 69124 Heidelberg, statt. Mit Ihrer Unterschrift wird auch -zugestimmt, dass diese Gruppenstunden zu anderen Zeiten und an anderen -Orten durchgeführt werden können. - -\textbf{Haftung} - -Mit Ihrer Unterschrift erklären Sie sich damit einverstanden, dass Ihr -Kind an den oben genannten -Aktivitäten im weitesten Sinne teilnehmen darf. Sie sind sich bewusst, -dass natursportliche und vor allem klettersportliche Aktivitäten mit -Risiken verbunden sind, die sich nicht vollständig ausschließen lassen. -Sie erkennen damit an, dass die Sektion Heidelberg und ihre -verantwortlichen ehrenamtlichen -Jugendleiter*innen - soweit gesetzlich zulässig - von jeglicher Haftung -sowohl im Grunde als auch -der Höhe nach freigestellt werden, die über den im Rahmen der -Mitgliedschaft im DAV, -sowie für die ehrenamtliche Tätigkeit bestehenden Versicherungsschutz -hinausgehen. Dies -gilt nicht für die Verursachung von Unfällen durch Vorsatz oder grobe -Fahrlässigkeit. - -Weitere Informationen zum DAV und dessen Jugendarbeit aber auch z.B. zu -den -Versicherungsbedingungen oder aktuellen Informationen finden Sie unter -\href{http://www.alpenverein.de}{www.alpenverein.de} - -\textbf{Weitere Informationen zu Ihrem Kind} - -Sie verpflichten sich, die Jugendleiter*innen insbesondere über folgende -persönliche Einschränkungen und zu informieren (über die angehängte -Einverständniserklärung): - -\begin{itemize} - \setlength\itemsep{1pt} -\item - relevante allergische Reaktionen -\item - relevante asthmatische Erkrankungen oder Beschwerden -\item - relevante Herzkreislauferkrankungen oder Beschwerden -\item - Diabetes -\item - Epilepsie oder relevante Nervenerkrankungen -\item - relevante orthopädische Probleme (Bandscheibenvorfall, Verrenkungen, - Knochenbrüche\ldots) -\item - relevante Infektionskrankheiten -\item - ADHS oder sonstige Aufmerksamkeitsstörungen -\item - Einnahme von dringend notwendigen Medikamenten -\item - relevante Suchterkrankungen, psychische Erkrankungen oder - Einschränkungen -\item - sonstige relevante Beeinträchtigungen oder Erkrankungen (Bspw. - Inkontinenz) -\end{itemize} - -Die JDAV weist darauf hin, dass durchgeführte Aktivitäten auch im Freien -in Risikogebieten für -von Zecken übertragene FSME oder Borreliose stattfinden können -(Rhein-Neckar Kreis gehört zu den Risikogebieten). Eine Impfung wird -empfohlen. - -Ergeben sich Veränderungen bei den angegebenen Informationen, dann -müssen die Jugendleiter*innen umgehend darüber informiert werden. - -\textbf{Datenschutz} - -Sie sind damit einverstanden, dass die JDAV Heidelberg die von Ihnen -angegebenen Daten elektronisch erfasst, verarbeitet und speichert. Diese -Datenverarbeitung erfolgt in Rechenzentren in der Schweiz oder Staaten -des Europäischen Wirtschaftsraums (EWR). Nach einer Beendigung der -Mitgliedschaft werden Ihre personenbezogenen Daten gelöscht, soweit sie -nicht, entsprechend den steuerrechtlichen Vorgaben, aufbewahrt werden -müssen. Die Datenverarbeitung erfolgt auf Grundlage des Art. 6 Abs. 1 S. -1 lit. b DSGVO. Die jeweils aktuelle Datenschutzerklärung kann jederzeit -auf der Website unter \href{https://www.jdav-hd.de/datenschutz}{www.jdav-hd.de/datenschutz} abgerufen -werden. - -Die Jugendleiter*innen sind im Rahmen ihrer Tätigkeiten über -Sektions-E-Mailadressen nach dem Schema -vorname.nachname@alpenverein-heidelberg.de erreichbar, die Jugendleiter*innen einer Gruppe über -Adressen nach dem Schema leitung.gruppenname@jdav-hd.de. Bitte nutzen Sie -für die Kontaktaufnahme vorrangig diese E-Mailadressen. - -Zur Weitergabe der Daten im Rahmen einer Mitgliedschaft im Alpenverein -Heidelberg beachten Sie bitte auch die Datenschutzerklärung der Sektion -unter \href{https://www.alpenverein-heidelberg.de/datenschutz}{www.alpenverein-heidelberg.de/datenschutz}. - -\textbf{Abbildungen in Sektionsmedien:} - -Selbstverständlich gehören auf eine lebendig gestaltete Homepage sowie -andere Medien der Sektion (Aushänge im Vereinsheim, Sektionsnachrichten, -etc.) auch Berichte und Fotos von Veranstaltungen der Jugend, bei denen -vielleicht auch Ihr Kind dabei ist. Da gemäß § 22 KunstUrhG, Bilder -jedoch nur mit Einwilligung des Abgebildeten bzw. seiner gesetzlichen -Vertreter verbreitet oder öffentlich zur Schau gestellt werden dürfen, -bitten wir Sie um Erlaubnis. Mit Ihrer Einverständniserklärung -erleichtern Sie uns wesentlich die Arbeit und wir können so unseren -lebendigen Verein gut nach außen darstellen. - -Wenn sie in der Einverständniserklärung ihre Einwilligung geben, -erklären Sie sich damit einverstanden, dass von den Jugendleiter*innen -ausgewählte Fotos und Aufnahmen, auf denen Ihr Kind zu sehen ist, mit -den anderen Kindern geteilt werden, auf der Homepage, sowie im -Sektionsheft der DAV-Sektion Heidelberg und allen anderen Vereinsmedien -erscheinen und veröffentlicht werden dürfen. Diese Einwilligung kann -jederzeit widerrufen werden. +Please provide a customized registration form as a LaTeX template in the config directory as +described in the documentation. \end{document} diff --git a/jdav_web/members/templates/members/registration_form_empty.tex b/jdav_web/members/templates/members/registration_form_empty.tex index e79025a..ece5d14 100644 --- a/jdav_web/members/templates/members/registration_form_empty.tex +++ b/jdav_web/members/templates/members/registration_form_empty.tex @@ -1,405 +1,8 @@ -{% load tex_extras %} - \documentclass{article} -\usepackage[utf8]{inputenc} -\usepackage{booktabs} -\usepackage{amssymb} -\usepackage{cmbright} -\usepackage{graphicx} -\usepackage{textpos} -\usepackage[colorlinks, breaklinks]{hyperref} -\usepackage{float} -\usepackage[margin=1in]{geometry} -\usepackage{array} -\usepackage{tabularx} -\usepackage{ltablex} - -\usepackage{tikz} -\usepackage{setspace} -\usepackage{pbox} - -\newcommand{\picpos}[4]{ - \begin{textblock*}{#1}(#2, #3) - \includegraphics[width=\textwidth]{#4} - \end{textblock*} -} - -% set formatting -\setlength\parindent{0pt} -\setlength\parskip{0.6em plus 0.1em minus 0.1em} - -% custom url command for properly formatting emails -\DeclareUrlCommand\Email{\urlstyle{same}} -% allow linebreak after every character -\expandafter\def\expandafter\UrlBreaks\expandafter{\UrlBreaks -\do\/\do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j\do\k -\do\l\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t\do\u\do\v -\do\w\do\x\do\y\do\z -\do\A\do\B\do\C\do\D\do\E\do\F\do\G\do\H\do\I\do\J\do\K -\do\L\do\M\do\N\do\O\do\P\do\Q\do\R\do\S\do\T\do\U\do\V -\do\W\do\X\do\Y\do\Z} - -\renewcommand{\arraystretch}{1} - -\newcolumntype{L}{>{\hspace{0pt}}X} -\newcommand{\tickedbox}{ - \makebox[0pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$\checkmark$} -} -\newcommand{\checkbox}{ - \makebox[0pt][l]{$\square$} -} - -% algemeines Layout Formular-Elemente -\renewcommand*{\DefaultOptionsofRadio}{print,radio, radiosymbol=6, width=\baselineskip, bordercolor={black}, borderwidth=0pt} -\renewcommand*{\DefaultOptionsofText}{print,bordercolor={black}, backgroundcolor=white, borderwidth=0pt} - -\renewcommand{\LayoutTextField}[2]{% label, field -\setbox0=\hbox{#1\unskip}\ifdim\wd0=0pt -\setbox1=\hbox{#2\unskip}\ifdim\ht1>3ex -% Multiline -\begin{tikzpicture}[every node/.style={inner sep=0,outer sep=0}] - \node[anchor=west] (TextFieldNode) at (0cm,0cm) {#2}; - \draw [thick] (current bounding box.south west) rectangle (current bounding box.north east); -\end{tikzpicture}% -\else -% Inline field, lowered a little bit to be better integrated into the text -\raisebox{-3.2pt}{\begin{tikzpicture}[every node/.style={inner sep=0,outer sep=0}] - \node[anchor=west] (TextFieldNode) at (0cm,0cm) {#2}; - \draw[thick] ([yshift=-0.3ex]TextFieldNode.south west) -- ([yshift=-0.3ex]TextFieldNode.south east); -\end{tikzpicture}}% -\fi -\else -% Field with label below it -\begin{tikzpicture}[every node/.style={inner sep=0,outer sep=0}] - \node[anchor=west] (TextFieldNode) at (0cm,2ex) {#2}; - \draw[thick] ([yshift=-0.3ex]TextFieldNode.south west) -- ([yshift=-0.3ex]TextFieldNode.south east); - \node[anchor=west,font=\small] at (0cm,-0.9ex) {#1}; -\end{tikzpicture}% -\fi -} - -\newcommand{\radiosize}{0.33cm} -\newcommand{\yesnoticks}[1]{% -\raisebox{-3.2pt}{\begin{tikzpicture}[every node/.style={inner sep=0,outer sep=0}] - \node[anchor=west,style={inner sep=2px}] (FieldYes) at (0cm,0cm) {\ChoiceMenu[radio=true,name=#1,width=\radiosize,height=\radiosize]{}{=Yes}}; - \node[anchor=west] (LabelYes) at ([xshift=0.7ex]FieldYes.east) {Ja}; - \node[anchor=west,style={inner sep=2px}] (FieldNo) at ([xshift=1ex]LabelYes.east) {\ChoiceMenu[radio=true,name=#1,width=\radiosize,height=\radiosize]{}{=No}}; - \node[anchor=west] (LabelNo) at ([xshift=0.7ex]FieldNo.east) {Nein}; - \draw [thick] ([xshift=-(\radiosize+0.15cm),yshift=-(\radiosize+0.15cm)]FieldYes.north east) rectangle (FieldYes.north east); - \draw [thick] ([xshift=-(\radiosize+0.15cm),yshift=-(\radiosize+0.15cm)]FieldNo.north east) rectangle (FieldNo.north east); -\end{tikzpicture}}% -} - -% Formularfeld, leer, editierbar -\newcommand{\field}[2]{\TextField[width=#2]{#1}} - -% Formularfeld, vorbefüllt, editierbar -\newcommand{\fieldpf}[3]{\TextField[width=#2,value=#3]{#1}} - -% Formularfeld, vorbefüllt, nicht editierbar -\newcommand{\fieldpfro}[3]{\TextField[width=#2,value=#3,readonly]{#1}} - -% Formularfeld, in den Fließtext integriert -\newcommand{\fieldinline}[2]{\TextField[width=#2,name=#1]{}} - -% Ja-Nein Antwort -\newcommand{\yesno}[2]{\pbox{0.8\textwidth}{\setstretch{1}#1}\hfill\yesnoticks{#2}} - -% Dummy-Formularfeld: Sieht genauso aus, ist aber statisch, vorbefüllt, nicht editierbar. -\newcommand{\fieldd}[3]{% Label, width, prefilled text -\begin{tikzpicture}[every node/.style={inner sep=0,outer sep=0}] - % Draw the static field rectangle - \node[anchor=west] (DummyFieldNode) at (0cm,2ex) {\strut #3}; % Prefilled text - \draw[thick] ([xshift=0cm,yshift=-0.3ex]DummyFieldNode.south west) -- ([xshift=#2,yshift=-0.3ex]DummyFieldNode.south west); - - % Label underneath - \node[anchor=west,font=\small] at (0cm,-1.2ex) {#1}; -\end{tikzpicture}% -} - - \begin{document} -% HEADER RIGHT -\picpos{4.5cm}{11.5cm}{0cm}{/app/jdav_web/static/general/img/dav_logo_hd.png} -\begin{textblock*}{5cm}(11.5cm, 2.3cm) - \begin{flushright} - \small - \noindent Deutscher Alpenverein e. V. \\ - Sektion Heidelberg \\ - Harbigweg 20 \\ - 69124 Heidelberg \\ - Tel.: 06221 284076 \\ - Fax: 06221 437338 \\ - geschaeftsstelle@alpenverein-heidelberg.de \\ - \end{flushright} -\end{textblock*} - -% HEADLINE - - -\textbf{\LARGE Anmeldung und Einverständniserklärung} - -\textbf{Wir melden unser Kind verbindlich zur Jugendgruppe an:} - -\begin{Form} - \fieldpf{Vor- und Nachname des Kindes}{0.65\linewidth}{} - - \fieldpf{Geburtsdatum}{0.3\linewidth}{} \hfill - \fieldpf{Gender}{0.3\linewidth}{} \hspace{0.35\linewidth} - - \fieldpf{DAV-Mitglieds-Nr.}{0.3\linewidth}{114/00/} \hfill - \fieldpf{Telefon (mobil)*}{0.3\linewidth}{} \hspace{0.35\linewidth} - - \fieldpf{Adresse}{0.65\linewidth}{} - - \fieldpf{E-Mail}{0.65\linewidth}{} - -{\small *wenn vorhanden, Kontaktdaten des Kindes, ansonsten einer Kontaktperson} - -\textbf{Notfallkontakte:} - -\begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}lll} - Vollständiger Name & E-Mail & Telefon (mobil) \\ - \midrule - \field{Name 1}{0.3\linewidth} & \field{E-Mail 1}{0.3\linewidth} & \field{Telefon 1}{0.3\linewidth} \\ - \field{Name 2}{0.3\linewidth} & \field{E-Mail 2}{0.3\linewidth} & \field{Telefon 2}{0.3\linewidth} \\ -\bottomrule -\end{tabular*} - -\textbf{Medizinische Informationen:} - -Gemäß den Teilnahmebedingungen verpflichten wir uns, vollständige -Angaben zu etwaigen gesundheitlichen Einschränkungen oder Erkrankungen unseres -Kindes zu machen: - -\field{Allergien}{\linewidth} - -\field{Medikamenten-Einnahmen}{\linewidth} - -\field{Weitere Informationen zu Einschränkungen}{\linewidth} - -\yesno{Unser Kind hat eine aktuelle Tetanus-Schutzimpfung}{tetanus} - -\yesno{Unser Kind hat sichere Schwimmkenntnisse}{schwimmen} - -\textbf{Einwilligung zu den Teilnahmebedingungen} - -Mit unserer Unterschrift bestätigen wird, dass wir die beigelegten -Teilnahmebedingungen (Stand 06.12.2024) gelesen und verstanden haben. Diesen Bedingungen -stimmen wir zu. Wir versichern, jegliche Änderungen an oben angegebenen -Daten umgehend den Jugendleiter*innen mitzuteilen. - - -\yesno{Wir stimmen der Bildnutzung in den Sektionsmedien gemäß -Teilnahmebedingungen zu}{bildnutzung} -\yesno{Unser Kind darf sich selbstständig von der Gruppenstunde abmelden.}{abmelden} - -\vspace{10pt} -\vfill - -\field{Ort, Datum}{0.28\linewidth}{}\hfill -\fieldd{Unterschrift Kind}{0.28\linewidth}{}\hfill -\fieldd{Unterschrift des/der Erziehungsberechtigten}{0.4\linewidth}{} - -Bitte diese Seite ausgefüllt und unterschrieben im Registrierungsformular hochladen. -\end{Form} - -\newpage - -\textbf{\large Informationen und Bedingungen zur Teilnahme an den -JDAV-Jugendgruppen der DAV-Sektion Heidelberg} - -{\small Stand: 06.12.2024} - - -Liebes neues Jugendgruppenmitglied, - -herzlich willkommen als neues aktives Mitglied unserer Sektionsjugend! -Das Zentrum unserer Jugendarbeit sind die wöchentlichen Gruppenstunden, -in denen wir in einer festen Gruppe gemeinsam Klettern oder Fahrrad fahren, Spiele spielen -und Spaß haben. Uns ist wichtig, dass du regelmäßig dabei bist und -deinen Jugendleiter*innen immer bescheid gibst, wenn du mal nicht kommen -kannst. - -Zu unserer Jugendarbeit gehören aber auch regelmäßig Ausfahrten und -Veranstaltungen rund um die Kletterhalle. Ausfahrten können ein- oder -mehrtägige Ausflüge zum Klettern in der Region, aber auch in die -Mittelgebirge oder Alpen sein, wo wir gemeinsam Wandern, Bergsteigen, -Klettern... Veranstaltungen in der Kletterhalle können zum Beispiel -gemeinsame Übernachtungen in der Gruppe oder größere Aktivitäten mit der -ganzen Sektionsjugend sein, z.B. unsere jährliche Jugendvollversammlung. -Hier treffen wir basisdemokratisch Entscheidungen über die Zukunft der -Jugendarbeit und wählen Stellvertreter*innen, die die Jugendarbeit -organisieren. Auch du hast hier eine Stimme! Wir freuen uns, wenn du bei -möglichst vielen Aktivitäten dabei sein kannst. - -Deine Jugendleiter*innen -\\[3mm] -\_\_ -\\[3mm] -Liebe Eltern, - -Bitte lesen Sie diese Teilnahmebedingungen für unsere Jugendarbeit genau -und bestätigen Ihr Einverständnis mit Ihrer Unterschrift auf unserer -Einverständniserklärung. - -\textbf{Durchgeführte Aktivitäten} - -In unserer Jugendgruppe bieten wir im weitesten Sinne verschiedene -Aktivitäten und Aktionen an, zu denen wir die Jugendlichen vorher -entsprechend einweisen, dazu gehören u.a.: - -\begin{itemize} - \setlength\itemsep{1pt} -\item - Jugendgruppenstunden mit Spielen, Übungen usw. -\item - Outdoorspiele in verschiedenen Formen -\item - Klettern an künstlichen Anlagen und natürlichen Felsen -\item - Wanderungen, Bachwanderungen oder Klettersteigbegehungen -\item Fahrradtouren z.B. mit dem Mountainbike -\item - natursportliche Aktivität mit den dort typischen Bedingungen und - Risiken -\item - Gruppenübergreifende Ausfahrten und Veranstaltungen der JDAV - Heidelberg. -\end{itemize} - -Während aller Aktivitäten werden die Jugendlichen von unseren -Jugendleiter*innen, die eine entsprechende Qualifizierung (DAV -Jugendleiterausbildung / DAV Fachübungsleiter usw.) vorweisen können, -betreut und beaufsichtigt. - -Um teilnehmen zu können, müssen die Jugendlichen Mitglied in der Sektion -Heidelberg des DAV sein und eine von den Erziehungsberechtigten -unterschriebene Einverständniserklärung abgeben. Wir erwarten eine -möglichst regelmäßige Teilnahme an den Gruppenstunden. Bei wiederholt -unentschuldigtem Fehlen (ab 3 mal) kann es zum Ausschluss aus der Gruppe -kommen. - -Mit Ihrer Unterschrift wird außerdem die aktuelle Fassung der -\textbf{Benutzer- und Hallenordnung der Kletterhalle} der Sektion -Heidelberg (Harbigweg 20, 69124 Heidelberg), anerkannt. Die Benutzer- -und Hallenordnung hängt ständig in der Kletterhalle aus. Den Anweisungen -des Personals ist Folge zu leisten. Die Gruppenstunden finden -gelegentlich auch \textbf{außerhalb des Vereinszentrums} im Harbigweg -20, 69124 Heidelberg, statt. Mit Ihrer Unterschrift wird auch -zugestimmt, dass diese Gruppenstunden zu anderen Zeiten und an anderen -Orten durchgeführt werden können. - -\textbf{Haftung} - -Mit Ihrer Unterschrift erklären Sie sich damit einverstanden, dass Ihr -Kind an den oben genannten -Aktivitäten im weitesten Sinne teilnehmen darf. Sie sind sich bewusst, -dass natursportliche und vor allem klettersportliche Aktivitäten mit -Risiken verbunden sind, die sich nicht vollständig ausschließen lassen. -Sie erkennen damit an, dass die Sektion Heidelberg und ihre -verantwortlichen ehrenamtlichen -Jugendleiter*innen - soweit gesetzlich zulässig - von jeglicher Haftung -sowohl im Grunde als auch -der Höhe nach freigestellt werden, die über den im Rahmen der -Mitgliedschaft im DAV, -sowie für die ehrenamtliche Tätigkeit bestehenden Versicherungsschutz -hinausgehen. Dies -gilt nicht für die Verursachung von Unfällen durch Vorsatz oder grobe -Fahrlässigkeit. - -Weitere Informationen zum DAV und dessen Jugendarbeit aber auch z.B. zu -den -Versicherungsbedingungen oder aktuellen Informationen finden Sie unter -\href{http://www.alpenverein.de}{www.alpenverein.de} - -\textbf{Weitere Informationen zu Ihrem Kind} - -Sie verpflichten sich, die Jugendleiter*innen insbesondere über folgende -persönliche Einschränkungen und zu informieren (über die angehängte -Einverständniserklärung): - -\begin{itemize} - \setlength\itemsep{1pt} -\item - relevante allergische Reaktionen -\item - relevante asthmatische Erkrankungen oder Beschwerden -\item - relevante Herzkreislauferkrankungen oder Beschwerden -\item - Diabetes -\item - Epilepsie oder relevante Nervenerkrankungen -\item - relevante orthopädische Probleme (Bandscheibenvorfall, Verrenkungen, - Knochenbrüche\ldots) -\item - relevante Infektionskrankheiten -\item - ADHS oder sonstige Aufmerksamkeitsstörungen -\item - Einnahme von dringend notwendigen Medikamenten -\item - relevante Suchterkrankungen, psychische Erkrankungen oder - Einschränkungen -\item - sonstige relevante Beeinträchtigungen oder Erkrankungen (Bspw. - Inkontinenz) -\end{itemize} - -Die JDAV weist darauf hin, dass durchgeführte Aktivitäten auch im Freien -in Risikogebieten für -von Zecken übertragene FSME oder Borreliose stattfinden können -(Rhein-Neckar Kreis gehört zu den Risikogebieten). Eine Impfung wird -empfohlen. - -Ergeben sich Veränderungen bei den angegebenen Informationen, dann -müssen die Jugendleiter*innen umgehend darüber informiert werden. - -\textbf{Datenschutz} - -Sie sind damit einverstanden, dass die JDAV Heidelberg die von Ihnen -angegebenen Daten elektronisch erfasst, verarbeitet und speichert. Diese -Datenverarbeitung erfolgt in Rechenzentren in der Schweiz oder Staaten -des Europäischen Wirtschaftsraums (EWR). Nach einer Beendigung der -Mitgliedschaft werden Ihre personenbezogenen Daten gelöscht, soweit sie -nicht, entsprechend den steuerrechtlichen Vorgaben, aufbewahrt werden -müssen. Die Datenverarbeitung erfolgt auf Grundlage des Art. 6 Abs. 1 S. -1 lit. b DSGVO. Die jeweils aktuelle Datenschutzerklärung kann jederzeit -auf der Website unter \href{https://www.jdav-hd.de/datenschutz}{www.jdav-hd.de/datenschutz} abgerufen -werden. - -Die Jugendleiter*innen sind im Rahmen ihrer Tätigkeiten über -Sektions-E-Mailadressen nach dem Schema -vorname.nachname@alpenverein-heidelberg.de erreichbar, die Jugendleiter*innen einer Gruppe über -Adressen nach dem Schema leitung.gruppenname@jdav-hd.de. Bitte nutzen Sie -für die Kontaktaufnahme vorrangig diese E-Mailadressen. - -Zur Weitergabe der Daten im Rahmen einer Mitgliedschaft im Alpenverein -Heidelberg beachten Sie bitte auch die Datenschutzerklärung der Sektion -unter \href{https://www.alpenverein-heidelberg.de/datenschutz}{www.alpenverein-heidelberg.de/datenschutz}. - -\textbf{Abbildungen in Sektionsmedien:} - -Selbstverständlich gehören auf eine lebendig gestaltete Homepage sowie -andere Medien der Sektion (Aushänge im Vereinsheim, Sektionsnachrichten, -etc.) auch Berichte und Fotos von Veranstaltungen der Jugend, bei denen -vielleicht auch Ihr Kind dabei ist. Da gemäß § 22 KunstUrhG, Bilder -jedoch nur mit Einwilligung des Abgebildeten bzw. seiner gesetzlichen -Vertreter verbreitet oder öffentlich zur Schau gestellt werden dürfen, -bitten wir Sie um Erlaubnis. Mit Ihrer Einverständniserklärung -erleichtern Sie uns wesentlich die Arbeit und wir können so unseren -lebendigen Verein gut nach außen darstellen. - -Wenn sie in der Einverständniserklärung ihre Einwilligung geben, -erklären Sie sich damit einverstanden, dass von den Jugendleiter*innen -ausgewählte Fotos und Aufnahmen, auf denen Ihr Kind zu sehen ist, mit -den anderen Kindern geteilt werden, auf der Homepage, sowie im -Sektionsheft der DAV-Sektion Heidelberg und allen anderen Vereinsmedien -erscheinen und veröffentlicht werden dürfen. Diese Einwilligung kann -jederzeit widerrufen werden. +Please provide a customized registration form as a LaTeX template in the config directory as +described in the documentation. \end{document} diff --git a/jdav_web/members/templates/members/sjr_template.pdf b/jdav_web/members/templates/members/sjr_template.pdf index 5bb7239..25529e3 100644 Binary files a/jdav_web/members/templates/members/sjr_template.pdf and b/jdav_web/members/templates/members/sjr_template.pdf differ diff --git a/jdav_web/startpage/templates/startpage/faq_content.html b/jdav_web/startpage/templates/startpage/faq_content.html new file mode 100644 index 0000000..0408096 --- /dev/null +++ b/jdav_web/startpage/templates/startpage/faq_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 %} diff --git a/jdav_web/startpage/templates/startpage/group_introduction.html b/jdav_web/startpage/templates/startpage/group_introduction.html new file mode 100644 index 0000000..0408096 --- /dev/null +++ b/jdav_web/startpage/templates/startpage/group_introduction.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 %} diff --git a/jdav_web/startpage/templates/startpage/gruppen.html b/jdav_web/startpage/templates/startpage/gruppen.html index ae94fc5..5592bb2 100644 --- a/jdav_web/startpage/templates/startpage/gruppen.html +++ b/jdav_web/startpage/templates/startpage/gruppen.html @@ -1,13 +1,7 @@ {% extends "startpage/base_subsite.html" %} {% block content %} -

Gruppen

- -

-Die JDAV Heidelberg bietet verschiedene Gruppen für die Jugend bis 27 Jahre an. Die meisten Gruppen klettern regelmäßig in der Halle und Draußen, aber auch allgemeine Ausfahrten, Wintersport, Hochtouren und Mountenbiken gehöhren zu den Aktivitäten. Nachfolgend findest du eine Übersicht aller Gruppen. Die Teilnahme an den Gruppen erfordert generell eine vorherigen Anmledung, auch wenn Zeit und Ort bekannt sein sollte bitten wir dich nicht einfach dort zu erscheinen. -

- -

Zur Zeit bieten wir die Folgenden Gruppen an:

+{% include "startpage/group_introduction.html" %}