Commit Graph

336 Commits (9f012eed7a65d6191df9f2a23f3b01f7ba57228b)

Author SHA1 Message Date
Christian Merten 3591ebd08e
feat(members/waitinglist): refine wait confirmation status
Rework the wait cofirmation status shown in the admin: If there is a pending wait confirmation
request (i.e. the number of sent reminders is positive), the status is either `None` (i.e. undecided)
or `False`. Otherwise the status is `True`.
10 months ago
Christian Merten 0f19ce01e4
fix(members/pdf): escape % 10 months ago
Christian Merten edd47ac8bd
fix(members/pdf): don't escape umlaut
Partially reverts 2761efecaa. To handle invalid unicode characters, we now override
the LaTeX error message to remove invalid characters instead of crashing. We also
add various umlaut and invisible unicode characters to the test data.
10 months ago
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 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 11 months ago
Christian Merten 5227efe17b
members/excursion: add LJP category field to activity category 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 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 d1075f43e7
members/tests: add more admin tests 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 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 593cef520d
members/tests: only test age for passed dates 11 months ago
Christian Merten 39f1700131
members/tests: skip sjr application generation 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 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 31b31a3eb3
members/waitinglist: allow editing of invite text 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 f87837218e
members/waitinglist: preserve waitinglist application date 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 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 a27af02a27
members: personalize members landing page with list of led groups 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 420f074620
members/echo: fix typo 1 year ago
Christian Merten 3d60f7e9bf
members/models: normalize usernames, use username as association name if available 1 year ago
Christian Merten edb113562d
members: fix field permissions 1 year ago
Christian Merten 97e446f54a
members/waitinglist: fix permissions 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 17cae5c009
translations: use gender star 1 year ago
Christian Merten c49be3f594
startpage: fix typo 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 79b5389107
members/excursion: add finance overview 1 year ago
Christian Merten d19da71fef
members: add demote to waiter button and confirmation 1 year ago
Christian Merten fcfd1b0a9d
members: remove default from gender field 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 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 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 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 8ef0bc848b
admin: add dashboard and explanations 1 year ago
Christian Merten 8c4d97b5d1
members: seminar report mode selection 1 year ago