Commit Graph

627 Commits (main)

Author SHA1 Message Date
marius.klein 2a0905469d feat(members/trainings): add attendance certificate field (#137)
closes #132

Reviewed-on: #137
Reviewed-by: Christian Merten <christian@merten.dev>
Co-authored-by: marius.klein <marius.klein@alpenverein-heidelberg.de>
Co-committed-by: marius.klein <marius.klein@alpenverein-heidelberg.de>
10 months ago
Christian Merten 84f28b0786
fix(members/seminar_report): escape ljpproposal title 10 months ago
Christian Merten 54ed4c85e4
fix(members/excel): normalize filename of generated vbk form 10 months ago
Christian Merten 7b64f48ad7
fix: convert to str before normalizing name in esc_all 10 months ago
marius.klein 308d9f3114 feat(members/pdf): improve handling of long tables (#135)
closes #128

Reviewed-on: #135
Reviewed-by: Christian Merten <christian@merten.dev>
Co-authored-by: marius.klein <marius.klein@alpenverein-heidelberg.de>
Co-committed-by: marius.klein <marius.klein@alpenverein-heidelberg.de>
10 months ago
marius.klein 7a9c6f9d85 feat: open pdfs in new tab in browser instead of download (#136)
closes #127

Reviewed-on: #136
Reviewed-by: Christian Merten <christian@merten.dev>
Co-authored-by: marius.klein <marius.klein@alpenverein-heidelberg.de>
Co-committed-by: marius.klein <marius.klein@alpenverein-heidelberg.de>
10 months ago
Christian Merten bffacf7808
fix(members/models): replace `auto_now=True` by `default=timezone.now` 10 months ago
Christian Merten 2761efecaa
fix(members/templatetags): escape all non-ascii characters in esc_all 10 months ago
Christian Merten 4bd8f15e97
fix(members/crisis_intervention_list): escape emergency contact information 10 months ago
Christian Merten 4c4b450245
feat(members/waitinglist): add leave waitinglist link to reminders 10 months ago
Christian Merten 1d2f0c152f
feat(members/admin): add excursion code to filenames and generated documents 10 months ago
Christian Merten 24810a4f2b
fix(members/models): align SJR subsidizable participants with regulations 10 months ago
Christian Merten 40edd650dc
chore(static): remove unused images and normalize naming 10 months ago
Christian Merten c95b839191
fix(members/models): list more than 11 participants 10 months ago
Christian Merten 7cae13fc1d
feat(members/excursion): add basic approval status 10 months ago
Christian Merten 9d1351197a
fix(css/people_grid): set max-width of boxes 10 months ago
Christian Merten 362a29dca8
fix(media_access): unprotect members and website images
Since access to all media content required staff login, images intended for display on the website
were no longer accessible without login. This commit removes the protection for image files of members
and startpage posts.

We also add tests to prevent this regression from happening again.
10 months ago
Christian Merten 8b03deda5b members/admin: adapt LJP application to new format (#121)
Implements the new LJP application format as outlined in #116. In particular:

- The V-32 PDF is replaced by an `.xlsx` sheet.
- The LaTeX generated PDF for the seminar report is replaced by a `.docx` file, generated by `pandoc` from a modified `.tex` file.
- The cost and participants overview from the old PDF can still be generated separately, but is no longer required.

Also adds many fields to `LJPProposal` that are required to generate the full application.
10 months ago
Christian Merten e8f4448d62
members/admin: remove trailing whitespace 10 months ago
Christian Merten 5227efe17b
members/excursion: add LJP category field to activity category 11 months ago
Christian Merten 79c20087e3
mailer: use internal mail domains variable in error messages 11 months ago
Christian Merten 06db761021
locale: fix translations 11 months ago
Christian Merten 79b48c9079
members/admin: add action to only request mail confirmation of not yet confirmed email addresses 11 months ago
marius.klein 678559fb4d members/pdf: add numbering to participant listings (#119)
Also add a total participants and youth leaders count on the members on list inline tab.

Reviewed-on: #119
Reviewed-by: Christian Merten <christian@merten.dev>
Co-authored-by: marius.klein <marius.klein@alpenverein-heidelberg.de>
Co-committed-by: marius.klein <marius.klein@alpenverein-heidelberg.de>
11 months ago
marius.klein d1a8e7f159 members/admin: group overview excel (#118)
closes #110

Reviewed-on: #118
Reviewed-by: Christian Merten <christian@merten.dev>
Co-authored-by: marius.klein <marius.klein@alpenverein-heidelberg.de>
Co-committed-by: marius.klein <marius.klein@alpenverein-heidelberg.de>
11 months ago
Christian Merten 530aea3244
contrib: factor common media path manipulations out 11 months ago
Christian Merten 49c4e4c548
settings: remove MEDIA_MEMBERLISTS and use MEDIA_ROOT everywhere 11 months ago
marius.klein cfcde2da3a finance/statement: make `subsidy_to` and `allowance_to` optional (#112)
closes #108

- fields for receivers of allowance `a` and subsidies `s` are not compulsory anymore. If receivers are given, `a` and `s` are payed out for them. `s` can only be payed out in total, disregarding the number of receivers given for `a`.
- In the overview pages (activity and statement), we are now distinguishing between theoretical `a` + `s` and what has been payed out practically. If no receiver was given for either things, it is made clear that nothing is payed out. All combinations of `0`, ..., `n` payed allowances (`n` being number of approved participating YLs) and `0, `1` payed subsidies are possible.
- transaction generation logic adapted accordingly

Reviewed-on: #112
Reviewed-by: Christian Merten <christian@merten.dev>
Co-authored-by: marius.klein <marius.klein@alpenverein-heidelberg.de>
Co-committed-by: marius.klein <marius.klein@alpenverein-heidelberg.de>
11 months ago
Christian Merten 7b2a47536e
templates: replace local specific templates by placeholders 11 months ago
Christian Merten 6ffa2376b8
settings: use toml configuration files
We replace the current environment variable based configuration approach by
reading all local configuration from a `settings.toml` configuration file.
The docker test, development and production setups have been updated to use
the new setup.

The configuration folder also allows overriding every template in a
`config/templates` directory. We use this in a follow-up to move
all local specific templates, e.g. the registration form, into this
config directory.
11 months ago
Christian Merten 8a9cdc22d1
startpage/templates: use section variable 11 months ago
Christian Merten 9a07ef74a6
templates/admin: use section variable 11 months ago
Christian Merten aefef315bc
members/models: use section name in signature on SJR application 11 months ago
Christian Merten aaa43b9ae1
locale: fix various grammar mistakes 11 months ago
Christian Merten 56d8adb510
members/admin: add place column and group filter to excursion list display 11 months ago
Christian Merten 3e1a5c3fbb
tests: add coveragerc to exclude jet files from coverage report 11 months ago
Christian Merten d1075f43e7
members/tests: add more admin tests 11 months ago
Christian Merten 9610503caa
finance/tests: add tests for models 11 months ago
Christian Merten 034478ba44
members/admin: show and filter by echo status 11 months ago
Christian Merten a0da26476c
members/tests: add tests for admin pages 11 months ago
Christian Merten 3622743d2c
members/pdf: normalize filenames in merge_pdf 11 months ago
Christian Merten 3e0d55c0ed
members/registration: escape special characters in user input 11 months ago
marius.klein e7dcbb47ab finance/statement: show IBAN validity in submit views (#104)
* Add new attribute `iban_valid` to `Member`.
* Submit pages of regular expenses and activity expenses now include an overview which people with expenses have a valid IBAN.
* Add a note that IBAN validity should be checked manually before submitting.

Right now, no technical barriers are in place that prevent missing/wrong IBANs when a statement is submitted. This is intentional to preserve maximal flexibility.

In a follow-up PR, one could add custom warning messages on top of page when some IBANs are invalid.

Reviewed-on: #104
Reviewed-by: Christian Merten <christian@merten.dev>
Co-authored-by: marius.klein <marius.klein@alpenverein-heidelberg.de>
Co-committed-by: marius.klein <marius.klein@alpenverein-heidelberg.de>
11 months ago
Christian Merten a2cbae2c8e
media: require staff login for media access 11 months ago
Christian Merten 7d74e5d908
members/tests: add tests for views 11 months ago
Christian Merten d4a8c4a515
members/models: factor out upload_registration_form_link 11 months ago
Christian Merten 05cb501942
ludwigsburgalpin/tests: add tests for views and admin 11 months ago
Christian Merten 593cef520d
members/tests: only test age for passed dates 11 months ago
Christian Merten 39f1700131
members/tests: skip sjr application generation 11 months ago
Christian Merten 0960646d1f
finance/tests: adapt to new logic with allowance_to and subsidy_to 11 months ago
marius.klein 91ceaaf9f9 members/excursion: select invoice for sjr application form (#103)
Closes #61

Adds to the generate sjr application process a form in order to select one invoice.

Reviewed-on: #103
Co-authored-by: marius.klein <marius.klein@alpenverein-heidelberg.de>
Co-committed-by: marius.klein <marius.klein@alpenverein-heidelberg.de>
11 months ago
Christian Merten 98a03e4abd
members/ljp: fix calculation of participants
Implements the correct formula for computing the participant count according to the LJP
regulations. Also adds extensive unit tests for the formula.
11 months ago
Christian Merten afdbb56d81
finance: don't include subsidies in theoretic total
Subsidies paid for night and travel costs are expected to be listed
in the bills of the associated statement. Hence, they should not be
counted a second time in the theoretic total. This affects LJP
and SJR applications.
11 months ago
Christian Merten e2bff68471
members/admin: add check for valid allowance_to in finance overview 11 months ago
Christian Merten 2e6bfc9b75
finance/statement: make allowance_to optional
If an excursion has zero admissable youth leaders, the statement and hence the excursion
currently can't be saved, because the `allowance_to` field has to be non-empty, but
the number of entries has to be zero. This commit hence makes the field optional.
11 months ago
Christian Merten 5d0aa18dde
finance: adapt to allowance_to and subsidy_to
Use the new `allowance_to` and `subsidy_to` fields in statement validation. The
night and travel costs have to be transferred to the person listed as `subsidy_to`,
the allowance has to be paid to the persons listed in `allowance_to`.
11 months ago
Christian Merten 17bf6e8186
members/admin: fix incorrect syntax in translation string 11 months ago
Christian Merten 8b932461b7
finance/statement: add selection fields for allowance and subsidies
In the statement tab on excursions, add two new fields to select to which
youth leaders the allowance and subsidies should be paid. The fields
are checked for validity based on the number of approved youth leaders.

Also add a new field on excursions to allow for additional approved youth
leaders.

The new fields are not yet used in the statement confirmation process.
11 months ago
Christian Merten ce466671f2
members/waitinglist: fix queryset based age calculation 11 months ago
Christian Merten afb38c118a
members/admin: add age list filter for waitinglist 11 months ago
Christian Merten b0311dce80
members/admin: sort age in waiting list only by year
Previously, the age column was sorted according to the birth date. This typically
causes singleton grouping upon multi sort with age as the primary sorting key. A
typical use case is sorting by age and application date.

Now the age column is sorted only by the numerical year value, which causes
the groups to be bigger.
12 months ago
Christian Merten 1bd2895415
translations: remove line counts 12 months ago
Christian Merten f05c8b2fb6
members/admin: translate age label and add ordering field 12 months ago
marius.klein 3b46695b49 finance/admin: validate IBAN and show EPC-QR code for transactions (#94)
1. IBAN validation in member admin.
2. In the transaction overview, for every transaction an EPC-QR code for banking apps is generated and displayed. The (necessary) BIC field is automatically derived from the IBAN. This closes #63.

Both steps use the python library schwifty.

Reviewed-on: #94
Reviewed-by: Christian Merten <christian@merten.dev>
Co-authored-by: marius.klein <marius.klein@alpenverein-heidelberg.de>
Co-committed-by: marius.klein <marius.klein@alpenverein-heidelberg.de>
12 months ago
Christian Merten 19eb0953d5
tests: fix, generate html coverage report 12 months ago
Christian Merten 7af3ec488e
members/waitinglist: remove registration form link from invite text
The link is no longer needed, since a prefilled registration form can
now be downloaded after filling out the online form.
12 months ago
Christian Merten 31b31a3eb3
members/waitinglist: allow editing of invite text 12 months ago
Christian Merten c2bfd85eb4
admin/sidebar: open external links in new tab 12 months ago
Christian Merten a749aca7a4
finance: allow pdfs in proof field 12 months ago
Christian Merten 4c7ff39432
members/registration: pre-fill registration form
Instead of directly uploading the filled-in registration form, a pre-filled
registration form is provided and the signed agreement can be uploaded
in a separate step.

Co-authored by: Marius Klein <marius.klein@alpenverein-heidelberg.de>
1 year ago
Christian Merten 58da7fae23
settings/texts: add space to prevent outlook glitch 1 year ago
Christian Merten f87837218e
members/waitinglist: preserve waitinglist application date 1 year ago
Christian Merten e055554125
members/admin: remove redundant sentence 1 year ago
Christian Merten 436334f23d
members/admin: show new members section also to non-waitinglist managers 1 year ago
Christian Merten c76aebdc18
members/admin: prefetch invitations to group in admin 1 year ago
Christian Merten 55c9605428
members/admin: show last group invitation and gender in list 1 year ago
Christian Merten f61941c3d0
settings: populate links from environment variables 1 year ago
Christian Merten d4d9d97a94
mailer: force email address names to be unique 1 year ago
Christian Merten fa6f31e560
admin: allow * in group names, verify that only valid group names, section urls and post urls are saved 1 year ago
Christian Merten 948850151a
members/admin: make email and phone number links 1 year ago
Christian Merten 9a221a5c9f
members/admin: reduce filters and list fields 1 year ago
Christian Merten bf09be5d19
settings: reorder sidebar 1 year ago
Christian Merten 45a3ea40ff
jet: update version 1 year ago
Christian Merten d10a475aad
sidebar: fix permissions 1 year ago
Christian Merten adea9e0c8f
jet: update version 1 year ago
Christian Merten a27af02a27
members: personalize members landing page with list of led groups 1 year ago
Christian Merten 308e4e31f5
docs: add link to sidebar 1 year ago
Christian Merten 519c3b811e
docs: add link to index page 1 year ago
Christian Merten 67aeb0c03a
members/echo: make gender editable, change wording 1 year ago
Christian Merten 0845c04001
members/echo: don't invalidate echo key after echoing, only expiry invalidates now 1 year ago
Christian Merten d3ceb81cc3
members/echo: check key validity before password requesting password 1 year ago
Christian Merten a24c23b13e
startpage: improve mobile adaption 1 year ago
Christian Merten 420f074620
members/echo: fix typo 1 year ago
Christian Merten b3da0b1083
mailer: fix translation 1 year ago
Christian Merten 32e361151f
mailer: set name in sender and reply to 1 year ago
Christian Merten 5cee496662
mailer: add translations 1 year ago
Christian Merten b7804884c0
Revert "mailer: remove manual message ids"
This reverts commit 8633c41b8a.
1 year ago
Christian Merten e2f9eb7db0
mailer: add option to switch between sending from one email address vs from personalized email addresses 1 year ago
Christian Merten 3d60f7e9bf
members/models: normalize usernames, use username as association name if available 1 year ago
Christian Merten 8633c41b8a
mailer: remove manual message ids 1 year ago
Christian Merten 8327b0a3b9
mailer: remove footer 1 year ago
Christian Merten ec404c7435
finance: alter field 1 year ago
Christian Merten edb113562d
members: fix field permissions 1 year ago
Christian Merten 31a7f977dd
finance/models: fix overview for independent statements 1 year ago
Christian Merten 92e77e8b3c
finance: fix permissions 1 year ago
Christian Merten 97e446f54a
members/waitinglist: fix permissions 1 year ago
Christian Merten 0a1d85e924
finance: fix permissions on submitted statement 1 year ago
Christian Merten 8c71eb744f
finance/translation: fix 1 year ago
Christian Merten 28c9da8168
members: fix has statement check 1 year ago
Christian Merten dd7af67b34
translations: replace more : with * 1 year ago
Christian Merten 5a5ffea89c
members/inviteasuser: reject if mail domain not internal 1 year ago
Christian Merten df16729bd6
mailer: add internal_only flag 1 year ago
Christian Merten 459d4b0e72
mailer: add sender whitelist field 1 year ago
Christian Merten 17cae5c009
translations: use gender star 1 year ago
Christian Merten 60c25cf845
startpage: allow markdown in group description 1 year ago
Christian Merten 3453359e1e
startpage: sort groups by name 1 year ago
Christian Merten 7bb89dd2d9
docker/production: serve maintenance page on 502 1 year ago
Christian Merten c49be3f594
startpage: fix typo 1 year ago
Christian Merten c5316fa0dc
startpage: add favicon, rename root section 1 year ago
Christian Merten 368017a20a
settings: read domain from env variable 1 year ago
Christian Merten 81eced382e
import: waitinglist default fields 1 year ago
Christian Merten 7d93a4be0a
members/excursion: add V32 and improve texts 1 year ago
Christian Merten eaccc5a5ef
members/excursion: group bills in seminar report 1 year ago
Christian Merten 302565d5f5
finance/bill: rename 1 year ago
Christian Merten 79b5389107
members/excursion: add finance overview 1 year ago
Christian Merten 5734d41a23
startpage: update impressum 1 year ago
Christian Merten d19da71fef
members: add demote to waiter button and confirmation 1 year ago
Christian Merten d1db0b833f
startpage: sort recent posts and reports 1 year ago
Christian Merten 7b5c16f6b7
mailer: remove send to note list field 1 year ago
Christian Merten fcfd1b0a9d
members: remove default from gender field 1 year ago
Christian Merten 18d5f5e989
dashboard: add mailer section 1 year ago
Christian Merten bb91d77cfc
members/views: fix prefilling of date inputs 1 year ago
Christian Merten 02db0669cd
members: don't request mail confirmation of emergency contacts 1 year ago
Christian Merten ed445a9bc6
members: update translations 1 year ago
Christian Merten b22a891157
chore: update translations 1 year ago
Christian Merten 7ef55738a5
members: provide contact info in waitinglist invitation 1 year ago
Christian Merten 5205caa6a6
chore: add read_settings templatetag 1 year ago
Christian Merten 8dafe01de0
templates: purge more ludwigsburg email addresses 1 year ago
Christian Merten 520dc1d3d2
members/admin: fix inlines 1 year ago
Christian Merten 67e019073a
finance: fix allowance per day and rounding 1 year ago
Christian Merten 3087b8f8ee
members/admin: add help texts to excursion 1 year ago
Christian Merten 90f4ac88fc
members: make email field not required for emergency contacts in forms 1 year ago
Christian Merten 1f75d627e0
members: skip empty email addresses when requesting confirmation 1 year ago
Christian Merten 284f0b2420
members: make email field in emergency contact optional 1 year ago
Christian Merten 6eaa8e0414
admin: hide related objects in delete summary 1 year ago
Christian Merten 656438da90
startpage: fix portrait sizing issues 1 year ago
Christian Merten 0f69b8810c
members/admin: don't filter member selection fields 1 year ago
Christian Merten 3fc1b65d67
clubdesk import: assign youth leaders and omit groupless entries 1 year ago
Christian Merten 379c4547a6
jet: update 1 year ago
Christian Merten 8ef0bc848b
admin: add dashboard and explanations 1 year ago