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/jdav_web/settings/__init__.py b/jdav_web/jdav_web/settings/__init__.py index 85bc5a1..1fe9471 100644 --- a/jdav_web/jdav_web/settings/__init__.py +++ b/jdav_web/jdav_web/settings/__init__.py @@ -12,6 +12,42 @@ https://docs.djangoproject.com/en/1.10/ref/settings/ from split_settings.tools import optional, include import os +import tomli + +CONFIG_DIR_PATH = os.environ.get('KOMPASS_CONFIG_DIR_PATH', '') +SETTINGS_FILE = os.environ.get('KOMPASS_SETTINGS_FILE', 'settings.toml') +TEXTS_FILE = os.environ.get('KOMPASS_TEXTS_FILE', 'texts.toml') + +with open(os.path.join(CONFIG_DIR_PATH, SETTINGS_FILE), 'rb') as f: + config = tomli.load(f) + +if os.path.exists(os.path.join(CONFIG_DIR_PATH, TEXTS_FILE)): + with open(os.path.join(CONFIG_DIR_PATH, TEXTS_FILE), 'rb') as f: + texts = tomli.load(f) +else: + texts = {} + + +def get_var(*keys, default='', dictionary=config): + """ + Get a variable from given config dictionary. The passed keys are used + for nested retrieval from the dictionary. + """ + cfg = dictionary + for key in keys: + if key not in cfg: + return default + else: + cfg = cfg[key] + return cfg + + +def get_text(*keys, default=''): + """ + Get a text from the `texts.toml`. + """ + return get_var(*keys, default=default, dictionary=texts) + base_settings = [ 'local.py', diff --git a/jdav_web/jdav_web/settings/components/base.py b/jdav_web/jdav_web/settings/components/base.py index bbe5684..ca336b2 100644 --- a/jdav_web/jdav_web/settings/components/base.py +++ b/jdav_web/jdav_web/settings/components/base.py @@ -1,26 +1,25 @@ -deployed = '1' == os.environ.get('DJANGO_DEPLOY', '0') +deployed = get_var('django', 'deployed', default=False) # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) # SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY', - '6_ew6l1r9_4(8=p8quv(e8b+z+k+*wm7&zxx%mcnnec99a!lpw') +SECRET_KEY = get_var('django', 'secret_key', default='secret') # SECURITY WARNING: don't run with debug turned on in production! -DEBUG = os.environ.get('DJANGO_DEBUG', '1') == '1' +DEBUG = get_var('django', 'debug', default=True) -ALLOWED_HOSTS = os.environ.get('DJANGO_ALLOWED_HOST', '').split(",") +ALLOWED_HOSTS = get_var('django', 'allowed_hosts', default=["*"]) # hostname and base url -HOST = os.environ.get('DJANGO_ALLOWED_HOST', 'localhost:8000').split(",")[0] -PROTOCOL = os.environ.get('DJANGO_PROTOCOL', 'https') -BASE_URL = os.environ.get('DJANGO_BASE_URL', HOST) +HOST = get_var('django', 'host', default='localhost:8000') +PROTOCOL = get_var('django', 'protocol', default='https') +BASE_URL = get_var('django', 'base_url', default=HOST) # Define media paths e.g. for image storage MEDIA_URL = '/media/' -MEDIA_ROOT = os.environ.get('DJANGO_MEDIA_ROOT', - os.path.join((os.path.join(BASE_DIR, os.pardir)), "media")) +MEDIA_ROOT = get_var('django', 'media_root', + default=os.path.join((os.path.join(BASE_DIR, os.pardir)), "media")) MEDIA_MEMBERLISTS = os.path.join((os.path.join(BASE_DIR, os.pardir)), "media") # default primary key auto field type @@ -83,7 +82,8 @@ ROOT_URLCONF = 'jdav_web.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [os.path.join(BASE_DIR, 'templates')], + 'DIRS': [os.path.join(CONFIG_DIR_PATH, 'templates'), + os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ @@ -131,8 +131,7 @@ STATICFILES_DIRS = [ # static root where all the static files are collected to # use python3 manage.py collectstatic to collect static files in the STATIC_ROOT # this is needed for deployment -STATIC_ROOT = os.environ.get('DJANGO_STATIC_ROOT', - '/var/www/jdav_web/static') +STATIC_ROOT = get_var('django', 'static_root', default='/var/www/jdav_web/static') # Locale files (translations) @@ -140,7 +139,7 @@ STATIC_ROOT = os.environ.get('DJANGO_STATIC_ROOT', LOCALE_PATHS = (os.path.join(BASE_DIR, 'locale'),) # Celery and Redis setup -BROKER_URL = os.environ.get('BROKER_URL', 'redis://localhost:6379/0') +BROKER_URL = get_var('django', 'broker_url', default='redis://localhost:6379/0') # password hash algorithms used @@ -194,3 +193,6 @@ MARKDOWNIFY = { # allowed characters in names appearing in urls on the website STARTPAGE_URL_NAME_PATTERN = "[\w\-: *]" + +# admins to contact on error messages +ADMINS = get_var('section', 'admins', default=[]) diff --git a/jdav_web/jdav_web/settings/components/cache.py b/jdav_web/jdav_web/settings/components/cache.py index 8472132..512a2fc 100644 --- a/jdav_web/jdav_web/settings/components/cache.py +++ b/jdav_web/jdav_web/settings/components/cache.py @@ -1,7 +1,7 @@ CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.PyMemcacheCache', - 'LOCATION': os.environ.get('MEMCACHED_URL', '127.0.0.1:11211'), + 'LOCATION': get_var('django', 'memcached_url', default='127.0.0.1:11211'), 'OPTIONS': { 'no_delay': True, 'ignore_exc': True, diff --git a/jdav_web/jdav_web/settings/components/database.py b/jdav_web/jdav_web/settings/components/database.py index 5b34e25..6ff11b3 100644 --- a/jdav_web/jdav_web/settings/components/database.py +++ b/jdav_web/jdav_web/settings/components/database.py @@ -4,11 +4,11 @@ DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', - 'NAME': os.environ.get('DJANGO_DATABASE_NAME', 'jdav_db'), - 'USER': os.environ.get('DJANGO_DATABASE_USER', 'jdav_user'), - 'PASSWORD': os.environ.get('DJANGO_DATABASE_PASSWORD', 'jdav00jdav'), - 'HOST': os.environ.get('DJANGO_DATABASE_HOST', '127.0.0.1'), - 'PORT': os.environ.get('DJANGO_DATABASE_PORT', '5432') + 'NAME': get_var('database', 'database', default='jdav_db'), + 'USER': get_var('database', 'user', default='user'), + 'PASSWORD': get_var('database', 'password', default='secret'), + 'HOST': get_var('database', 'host', default='127.0.0.1'), + 'PORT': get_var('database', 'port', default=5432) } } diff --git a/jdav_web/jdav_web/settings/components/emails.py b/jdav_web/jdav_web/settings/components/emails.py index a93ec23..c8a1c11 100644 --- a/jdav_web/jdav_web/settings/components/emails.py +++ b/jdav_web/jdav_web/settings/components/emails.py @@ -1,10 +1,10 @@ # Email setup -EMAIL_HOST = os.environ.get('EMAIL_HOST', 'localhost') -EMAIL_PORT = 587 if deployed else 25 -EMAIL_HOST_USER = os.environ.get('EMAIL_HOST_USER', '') -EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_HOST_PASSWORD', '') -EMAIL_USE_TLS = True if deployed else False +EMAIL_HOST = get_var('mail', 'host', default='localhost') +EMAIL_PORT = get_var('mail', 'port', default=587 if deployed else 25) +EMAIL_HOST_USER = get_var('mail', 'user', default='user') +EMAIL_HOST_PASSWORD = get_var('mail', 'password', default='secret') +EMAIL_USE_TLS = get_var('mail', 'tls', default=True if deployed else False) EMAIL_BACKEND = 'djcelery_email.backends.CeleryEmailBackend' # Celery Email Setup @@ -13,5 +13,5 @@ CELERY_EMAIL_TASK_CONFIG = { 'rate_limit' : '10/m' # * CELERY_EMAIL_CHUNK_SIZE (default: 10) } -DEFAULT_SENDING_MAIL = os.environ.get('EMAIL_SENDING_ADDRESS', 'django@localhost') -DEFAULT_SENDING_NAME = os.environ.get('EMAIL_SENDING_NAME', 'Kompass') +DEFAULT_SENDING_MAIL = get_var('mail', 'default_sending_address', default='kompass@localhost') +DEFAULT_SENDING_NAME = get_var('mail', 'default_sending_name', default='Kompass') diff --git a/jdav_web/jdav_web/settings/components/texts.py b/jdav_web/jdav_web/settings/components/texts.py index 9bf4021..5659344 100644 --- a/jdav_web/jdav_web/settings/components/texts.py +++ b/jdav_web/jdav_web/settings/components/texts.py @@ -1,6 +1,6 @@ # mail texts -CONFIRM_MAIL_TEXT = """Hallo {name}, +CONFIRM_MAIL_TEXT = get_text('confirm_mail', default="""Hallo {name}, du hast bei der JDAV %(SEKTION)s eine E-Mail Adresse hinterlegt. Da bei uns alle Kommunikation per Email funktioniert, brauchen wir eine Bestätigung {whattoconfirm}. Dazu klicke bitte einfach auf @@ -9,9 +9,9 @@ folgenden Link: {link} Viele Grüße -Deine JDAV %(SEKTION)s""" % { 'SEKTION': SEKTION } +Deine JDAV %(SEKTION)s""" % { 'SEKTION': SEKTION }) -NEW_UNCONFIRMED_REGISTRATION = """Hallo {name}, +NEW_UNCONFIRMED_REGISTRATION = get_text('new_unconfirmed_registration', default="""Hallo {name}, für deine Gruppe {group} liegt eine neue unbestätigte Reservierung vor. Die Person hat bereits ihre E-Mailadressen bestätigt und ihr Anmeldeformular hochgeladen. Bitte prüfe die Registrierung eingehend und @@ -20,13 +20,15 @@ bestätige falls möglich. Zu der Registrierung kommst du hier: {link} Viele Grüße -Dein KOMPASS""" +Dein KOMPASS""") -GROUP_TIME_AVAILABLE_TEXT = """Die Gruppenstunde findet jeden {weekday} von {start_time} bis {end_time} Uhr statt.""" +GROUP_TIME_AVAILABLE_TEXT = get_text('group_time_available', + default="""Die Gruppenstunde findet jeden {weekday} von {start_time} bis {end_time} Uhr statt.""") -GROUP_TIME_UNAVAILABLE_TEXT = """Bitte erfrage die Gruppenzeiten bei der Gruppenleitung ({contact_email}).""" +GROUP_TIME_UNAVAILABLE_TEXT = get_text('group_time_unavailable', + default="""Bitte erfrage die Gruppenzeiten bei der Gruppenleitung ({contact_email}).""") -INVITE_TEXT = """Hallo {{name}}, +INVITE_TEXT = get_text('invite', default="""Hallo {{name}}, wir haben gute Neuigkeiten für dich. Es ist ein Platz in der Jugendgruppe {group_name} {group_link}freigeworden. {group_time} @@ -50,10 +52,10 @@ Bei Fragen, wende dich gerne an %(RESPONSIBLE_MAIL)s. Viele Grüße Deine JDAV %(SEKTION)s""" % { 'SEKTION': SEKTION, 'RESPONSIBLE_MAIL': RESPONSIBLE_MAIL, - 'REGISTRATION_FORM_DOWNLOAD_LINK': REGISTRATION_FORM_DOWNLOAD_LINK } + 'REGISTRATION_FORM_DOWNLOAD_LINK': REGISTRATION_FORM_DOWNLOAD_LINK }) -LEAVE_WAITINGLIST_TEXT = """Hallo {name}, +LEAVE_WAITINGLIST_TEXT = get_text('leave_waitinglist', default="""Hallo {name}, du hast dich erfolgreich von der Warteliste abgemeldet. Falls du zu einem späteren Zeitpunkt wieder der Warteliste beitreten möchtest, kannst du das über unsere Webseite machen. @@ -61,10 +63,10 @@ Zeitpunkt wieder der Warteliste beitreten möchtest, kannst du das über unsere Falls du dich nicht selbst abgemeldet hast, wende dich bitte umgehend an %(RESPONSIBLE_MAIL)s. Viele Grüße -Deine JDAV %(SEKTION)s""" % { 'SEKTION': SEKTION, 'RESPONSIBLE_MAIL': RESPONSIBLE_MAIL } +Deine JDAV %(SEKTION)s""" % { 'SEKTION': SEKTION, 'RESPONSIBLE_MAIL': RESPONSIBLE_MAIL }) -WAIT_CONFIRMATION_TEXT = """Hallo {name}, +WAIT_CONFIRMATION_TEXT = get_text('wait_confirmation', default="""Hallo {name}, leider können wir dir zur Zeit noch keinen Platz in einer Jugendgruppe anbieten. Da wir sehr viele Interessenten haben und wir möglichst vielen die Möglichkeit bieten möchten, an @@ -79,15 +81,15 @@ Das ist Erinnerung Nummer {reminder} von {max_reminder_count}. Nach Erinnerung N du automatisch entfernt. Viele Grüße -Deine JDAV %(SEKTION)s""" % { 'SEKTION': SEKTION } +Deine JDAV %(SEKTION)s""" % { 'SEKTION': SEKTION }) -UNSUBSCRIBE_CONFIRMATION_TEXT = """Klicke auf den Link, um dich vom Newsletter der JDAV %(SEKTION)s abzumelden +UNSUBSCRIBE_CONFIRMATION_TEXT = get_text('unsubscribe_confirmation', default="""Klicke auf den Link, um dich vom Newsletter der JDAV %(SEKTION)s abzumelden -{link}""" % { 'SEKTION': SEKTION } +{link}""" % { 'SEKTION': SEKTION }) -NOTIFY_MOST_ACTIVE_TEXT = """Hallo {name}! +NOTIFY_MOST_ACTIVE_TEXT = get_text('notify_most_active', default="""Hallo {name}! Herzlichen Glückwunsch, du hast im letzten Jahr zu den {congratulate_max} aktivsten Mitgliedern der JDAV %(SEKTION)s gehört! Um genau zu sein beträgt dein Aktivitäts Wert @@ -97,10 +99,10 @@ im letzten Jahr das {position}aktivste Mitglied der JDAV %(SEKTION)s. Auf ein weiteres aktives Jahr in der JDAV %(SEKTION)s. -Dein:e Jugendreferent:in""" % { 'SEKTION': SEKTION } +Dein:e Jugendreferent:in""" % { 'SEKTION': SEKTION }) -ECHO_TEXT = """Hallo {name}, +ECHO_TEXT = get_text('echo', default="""Hallo {name}, um unsere Daten auf dem aktuellen Stand zu halten und sicherzugehen, dass du weiterhin ein Teil unserer Jugendarbeit bleiben möchtest, brauchen wir eine @@ -119,10 +121,10 @@ gelöscht und du erhälst in Zukunft keine Mails mehr von uns. Bei Fragen, wende dich gerne an %(RESPONSIBLE_MAIL)s. Viele Grüße -Deine JDAV %(SEKTION)s""" % { 'SEKTION': SEKTION, 'RESPONSIBLE_MAIL': RESPONSIBLE_MAIL } +Deine JDAV %(SEKTION)s""" % { 'SEKTION': SEKTION, 'RESPONSIBLE_MAIL': RESPONSIBLE_MAIL }) -PREPEND_INCOMPLETE_REGISTRATION_TEXT = """WICHTIGE MITTEILUNG +PREPEND_INCOMPLETE_REGISTRATION_TEXT = get_text('prepend_incomplete_registration', default="""WICHTIGE MITTEILUNG Deine Anmeldung ist aktuell nicht vollständig. Bitte fülle umgehend das Anmeldeformular aus und lasse es Deine*r Jugendleiter*in zukommen! Dieses @@ -132,10 +134,10 @@ kannst Du unter folgendem Link herunterladen: **************** -""" % { 'REGISTRATION_FORM_DOWNLOAD_LINK': REGISTRATION_FORM_DOWNLOAD_LINK } +""" % { 'REGISTRATION_FORM_DOWNLOAD_LINK': REGISTRATION_FORM_DOWNLOAD_LINK }) -MAIL_FOOTER = """ +MAIL_FOOTER = get_text('mail_footer', default=""" **************** @@ -144,10 +146,10 @@ Diese Email wurde über die Webseite der JDAV %(SEKTION)s verschickt. Wenn Du in Zukunft keine Emails mehr erhalten möchtest, kannst Du hier den Newsletter deabonnieren: -{link}""" % { 'SEKTION': SEKTION } +{link}""" % { 'SEKTION': SEKTION }) -INVITE_AS_USER_TEXT = """Hallo {name}, +INVITE_AS_USER_TEXT = get_text('invite_as_user', default="""Hallo {name}, du bist Jugendleiter*in in der Sektion %(SEKTION)s. Die Verwaltung unserer Jugendgruppen, Ausfahrten und Finanzen erfolgt in unserer Online Plattform Kompass. Deine Stammdaten sind @@ -159,10 +161,10 @@ und wähle ein Passwort. Bei Fragen, wende dich gerne an %(RESPONSIBLE_MAIL)s. Viele Grüße -Deine JDAV %(SEKTION)s""" % { 'SEKTION': SEKTION, 'RESPONSIBLE_MAIL': RESPONSIBLE_MAIL } +Deine JDAV %(SEKTION)s""" % { 'SEKTION': SEKTION, 'RESPONSIBLE_MAIL': RESPONSIBLE_MAIL }) -UPLOAD_REGISTRATION_FORM_TEXT = """Hallo {name}, +UPLOAD_REGISTRATION_FORM_TEXT = get_text('upload_registration_form', default="""Hallo {name}, vielen Dank für deine Anmeldung in der JDAV %(SEKTION)s. Bevor es richtig losgehen kann, brauchen wir noch die Bestätigung deiner Daten und die Zustimmung zu unseren Teilnahmebedingungen. @@ -177,9 +179,9 @@ Bist du noch nicht volljährig? Dann muss eine erziehungsberechtigte Person das Bei Fragen, wende dich gerne an %(RESPONSIBLE_MAIL)s. Viele Grüße -Deine JDAV %(SEKTION)s""" % { 'SEKTION': SEKTION, 'RESPONSIBLE_MAIL': RESPONSIBLE_MAIL } +Deine JDAV %(SEKTION)s""" % { 'SEKTION': SEKTION, 'RESPONSIBLE_MAIL': RESPONSIBLE_MAIL }) -ADDRESS = """JDAV %(SEKTION)s +ADDRESS = get_text('address', default="""JDAV %(SEKTION)s %(STREET)s -%(PLACE)s""" % { 'SEKTION': SEKTION, 'STREET': SEKTION_STREET, 'PLACE': SEKTION_TOWN } +%(PLACE)s""" % { 'SEKTION': SEKTION, 'STREET': SEKTION_STREET, 'PLACE': SEKTION_TOWN }) diff --git a/jdav_web/jdav_web/settings/local.py b/jdav_web/jdav_web/settings/local.py index d2bd9eb..20c8c13 100644 --- a/jdav_web/jdav_web/settings/local.py +++ b/jdav_web/jdav_web/settings/local.py @@ -1,75 +1,74 @@ # contact data -SEKTION = "Heidelberg" -SEKTION_STREET = "Harbigweg 20" -SEKTION_TOWN = "69124 Heidelberg" -SEKTION_TELEPHONE = "06221 284076" -SEKTION_TELEFAX = "06221 437338" -SEKTION_CONTACT_MAIL = "geschaeftsstelle@alpenverein-heidelberg.de" -SEKTION_BOARD_MAIL = "vorstand@alpenverein-heidelberg.de" -SEKTION_CRISIS_INTERVENTION_MAIL = "krisenmanagement@alpenverein-heidelberg.de" -SEKTION_IBAN = "DE22 6729 0000 0000 1019 40" -SEKTION_ACCOUNT_HOLDER = "Deutscher Alpenverein Sektion Heidelberg 1869" - -RESPONSIBLE_MAIL = "jugendreferat@jdav-hd.de" -DIGITAL_MAIL = "digitales@jdav-hd.de" +SEKTION = get_var('section', 'name', default='Heyo') +SEKTION_STREET = get_var('section', 'street', default='Street') +SEKTION_TOWN = get_var('section', 'town', default='12345 Town') +SEKTION_TELEPHONE = get_var('section', 'telephone', default='0123456789') +SEKTION_TELEFAX = get_var('section', 'telefax', default=SEKTION_TELEPHONE) +SEKTION_CONTACT_MAIL = get_var('section', 'contact_mail', default='info@example.org') +SEKTION_BOARD_MAIL = get_var('section', 'board_mail', default=SEKTION_CONTACT_MAIL) +SEKTION_CRISIS_INTERVENTION_MAIL = get_var('section', 'crisis_intervention_mail', + default=SEKTION_BOARD_MAIL) +SEKTION_IBAN = get_var('section', 'iban', default='Foo 123') +SEKTION_ACCOUNT_HOLDER = get_var('section', 'account_holder', + default='Foo') + +RESPONSIBLE_MAIL = get_var('section', 'responsible_mail', default='foo@example.org') +DIGITAL_MAIL = get_var('section', 'digital_mail', default='bar@example.org') # LJP -V32_HEAD_ORGANISATION = """JDAV Baden-Württemberg -Rotebühlstraße 59A -70178 Stuttgart - -info@jdav-bw.de -0711 - 49 09 46 00""" - -LJP_CONTRIBUTION_PER_DAY = 25 +V32_HEAD_ORGANISATION = get_var('LJP', 'v32_head_organisation', default='not configured') +LJP_CONTRIBUTION_PER_DAY = get_var('LJP', 'contribution_per_day', default=25) # echo -ECHO_PASSWORD_BIRTHDATE_FORMAT = '%d.%m.%Y' -ECHO_GRACE_PERIOD = 30 +# used to generate the personalized echo password +ECHO_PASSWORD_BIRTHDATE_FORMAT = get_var('echo', 'password_birthdate_format', default='%d.%m.%Y') +# grace period in days after which echo keys expire +ECHO_GRACE_PERIOD = get_var('echo', 'grace_period', default=30) -# misc +# Waiting list configuration parameters, all numbers are in days -CONGRATULATE_MEMBERS_MAX = 10 -MAX_AGE_GOOD_CONDUCT_CERTIFICATE_MONTHS = 24 -ALLOWED_EMAIL_DOMAINS_FOR_INVITE_AS_USER = ('alpenverein-heidelberg.de', ) +GRACE_PERIOD_WAITING_CONFIRMATION = get_var('waitinglist', 'grace_period_confirmation', default=30) +WAITING_CONFIRMATION_FREQUENCY = get_var('waitinglist', 'confirmation_frequency', default=90) +CONFIRMATION_REMINDER_FREQUENCY = get_var('waitinglist', 'confirmation_reminder_frequency', default=30) +MAX_REMINDER_COUNT = get_var('waitinglist', 'max_reminder_count', default=3) -# mail mode +# misc -SEND_FROM_ASSOCIATION_EMAIL = os.environ.get('SEND_FROM_ASSOCIATION_EMAIL', '0') == '1' +# the maximal number of members that get sent congratulations for highest activity on aprils fools day +CONGRATULATE_MEMBERS_MAX = get_var('misc', 'congratulate_members_max', default=10) +# expiry duration of a good conduct certificate in months +MAX_AGE_GOOD_CONDUCT_CERTIFICATE_MONTHS = get_var('misc', 'max_age_good_conduct_certificate_months', default=24) +# accepted email domains for inviting users +ALLOWED_EMAIL_DOMAINS_FOR_INVITE_AS_USER = get_var('misc', 'allowed_email_domains_for_invite_as_user', + default=['example.org']) +# send all mails from the assocation's contact mail or from personal association mails +SEND_FROM_ASSOCIATION_EMAIL = get_var('misc', 'send_from_association_email', default=False) +# domain for association email and generated urls +DOMAIN = get_var('misc', 'domain', default='example.org') # finance -ALLOWANCE_PER_DAY = 22 -MAX_NIGHT_COST = 11 +ALLOWANCE_PER_DAY = get_var('finance', 'allowance_per_day', default=22) +MAX_NIGHT_COST = get_var('finance', 'max_night_cost', default=11) -CLOUD_LINK = os.environ.get('CLOUD_LINK', 'https://startpage.com') -DAV_360_LINK = os.environ.get('DAV_360_LINK', 'https://dav360.de') -WIKI_LINK = os.environ.get('WIKI_LINK', 'https://wikipedia.org') -DOCS_LINK = os.environ.get('DOCS_LINK', 'https://jdav-hd.de/static/docs/') +# links -# Admin setup +CLOUD_LINK = get_var('links', 'cloud', default='https://startpage.com') +DAV_360_LINK = get_var('links', 'dav_360', default='https://dav360.de') +WIKI_LINK = get_var('links', 'wiki', default='https://wikipedia.org') +DOCS_LINK = get_var('links', 'docs', default='https://github.com/chrisflav/kompass') +REGISTRATION_FORM_DOWNLOAD_LINK = get_var('links', 'registration_form', default='https://startpage.com') -ADMINS = (('admin', 'christian@merten-moser.de'),) +# startpage -# Waiting list configuration parameters, all numbers are in days - -GRACE_PERIOD_WAITING_CONFIRMATION = 30 -WAITING_CONFIRMATION_FREQUENCY = 90 -CONFIRMATION_REMINDER_FREQUENCY = 30 -MAX_REMINDER_COUNT = 3 +STARTPAGE_REDIRECT_URL = get_var('startpage', 'redirect_url', default='') +ROOT_SECTION = get_var('startpage', 'root_section', default='about') +RECENT_SECTION = get_var('startpage', 'recent_section', default='recent') +REPORTS_SECTION = get_var('startpage', 'reports_section', default='reports') # testing -TEST_MAIL = "post@flavigny.de" - -REGISTRATION_FORM_DOWNLOAD_LINK = os.environ.get('REGISTRATION_FORM_DOWNLOAD_LINK', 'https://startpage.com') - -DOMAIN = os.environ.get('DOMAIN', 'example.com') - -STARTPAGE_REDIRECT_URL = 'https://jdav-hd.de' -ROOT_SECTION = os.environ.get('ROOT_SECTION', 'wir') -RECENT_SECTION = 'aktuelles' -REPORTS_SECTION = 'berichte' +TEST_MAIL = get_var('testing', 'mail', default='test@localhost') diff --git a/jdav_web/members/models.py b/jdav_web/members/models.py index e049399..ff63668 100644 --- a/jdav_web/members/models.py +++ b/jdav_web/members/models.py @@ -1330,7 +1330,8 @@ class Freizeit(CommonModel): # Gesamt-Teilnahmetage 'Textfeld 56': str(round(self.duration * self.ljp_participant_count, 1)).replace('.', ','), # Ort, Datum - 'DatumOrt 2': 'Heidelberg, ' + datetime.now().strftime('%d.%m.%Y') + 'DatumOrt 2': '{place}, {date}'.format(place=settings.SEKTION, + date=datetime.now().strftime('%d.%m.%Y')) } if hasattr(self, 'statement'): possible_contributions = self.maximal_ljp_contributions 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" %}