Commit Graph

619 Commits (5d3670b819cddbf17b1f28759f02784694aaed47)

Author SHA1 Message Date
Christian Merten 7647f93c83
chore(members): move csv import to separate file 8 months ago
Christian Merten 0eedc3ecf9
feat(finance): send statement summary to finance office 8 months ago
Christian Merten 1ada10fda4
feat(members/excursion): automatically send crisis intervention list 8 months ago
Christian Merten d4137effa4
fix(members/seminar_report_docx): make timestamps timezone aware 8 months ago
marius.klein 3250dc7089 feat(finance): org fee for old participants (#149)
Allow deducting a configurable organisational fee for participants older than 27 from subsidies. This is calculated per day and old participant.

Reviewed-on: #149
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>
8 months ago
marius.klein 05f924cdef fix(members/excursion): fix seminar day calculation and add verbosity in finance overview (#153)
Reviewed-on: #153
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>
8 months ago
Christian Merten fd4770d295
fix(members/tests): adapt to new texts 8 months ago
Christian Merten 6b32595a5f
chore(members/views): modify texts and button size 8 months ago
Christian Merten fb14c2f060
feat(members/views): show upload registration form after echo if missing 8 months ago
Christian Merten 2fcdf1ee25
feat(members/admin): add unconfirm member action 8 months ago
Christian Merten 62a4e37a15
feat(members/admin): re-request mail confirmation for waiters 8 months ago
Christian Merten 60942115ca
fix(members/rules): check for groups of excursion instead of groups of member 8 months ago
marius.klein f213e11772 feat(finance): creation of receipts for confirmed statements and payment of LJP contributions (#150)
Confirmed statements now come with automatically generated PDF receipts used for documenting all issued payments.

This PR also adds generation of transactions for LJP contributions and their validation.

closes #92

Co-authored-by: mariusrklein <47218379+mariusrklein@users.noreply.github.com>
Reviewed-on: #150
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>
8 months ago
Christian Merten 33ab4e481d
fix(finance/admin): check existence and permission in finance admin views 8 months ago
Christian Merten d913c8049d
feat(members/waitinglist): add confirm link in invitation mail and more notifications 8 months ago
Christian Merten 0535cce70f
feat(members/waitinglist): notify responsibles in case of rejections 8 months ago
Christian Merten 5d728f1eee
fix(settings/jet): correct sidebar permissions 8 months ago
Christian Merten 865df92222
feat(mailer/models): check global permissions for messages 8 months ago
Christian Merten ffef3c93c3
fix(members/pdf): use excursion date instead of creation date 8 months ago
Christian Merten 2d69483276
chore(style): remove trailing whitespace 8 months ago
Christian Merten c8df5630b8
refactor(latex): add base template and unify designs
We add a base template for all latex documents to unify the desings and improve maintainability. Also
the table definitions are simplified fixing the various width issues.
8 months ago
Christian Merten 11b92f72b1
fix(members/tests): set date correctly 9 months ago
marius.klein 4a003ed15e fix(members/freizeit): change age calculation to first day of excursion (#148)
Reviewed-on: #148
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>
9 months ago
Christian Merten 3de28c3729
feat(logindata/oauth): add email field 9 months ago
Christian Merten 7c5152c5b0
feat: oauth provider 9 months ago
Christian Merten de95c76ac7
chore: update Django to 4.2.20 9 months ago
Christian Merten 769b63d457
chore: replace jet fork by django-jet-reboot 9 months ago
marius.klein 2650eb2cb1 feat(members/pdf): added scaling for attachment images and pdf pages (#142)
PDF and image attachments are scaled to A4.

follow up for #61

Reviewed-on: #142
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>
9 months ago
Christian Merten 65c58b3d44
chore: update jet 9 months ago
Christian Merten b5b62ceb92
fix(settings): permission for material section 9 months ago
Christian Merten 1fe37023de
feat(settings): allow overriding static files 9 months ago
Christian Merten fb3d37ff4f
chore(members/locale): add translation 9 months ago
Christian Merten 9694570bf0
fix(startpage/models): show deactivated url if startpage is deactivated 9 months ago
Christian Merten 443ef326cf
feat(startpage): allow disabling startpage
We add back the functionality to disable the startpage. If a non-empty redirect url is configured,
all startpage urls are disabled except for the index page which redirects to the given url.
9 months ago
Christian Merten bdbbaa41a2
chore(members/templates): replace town specific waiting list introduction by placeholder 9 months ago
Christian Merten 46e41e4cd9
feat(members/models): allow wildcard in internal domain setting 9 months ago
Christian Merten 80cf9250bb
chore(members): more tests 10 months ago
Christian Merten ae27340dcc
feat(members/waitinglist): send registration confirmation 10 months ago
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 c4d6581e6f feat(startpage): add link model for external links on admin startpage (#138)
Add `Link` model to customize the admin startpage from the admin interface. Also add block rendering of links.

Reviewed-on: #138
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 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 11 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