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.
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>
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>
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.
* 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>
`make test` now automatically forces a rebuild. Also passing `keepdb=true` runs
the test suite with `--keepdb` which is useful when repeatedly running tests.
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>
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.
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.
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`.
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.
- Move documentation from README into sphinx docs
- change theme from alabaster to sphinxawsome-theme
- split into technical and user documentation
- restructure docs/ directories
- update sphinx refs in user documentation
- extend technical documentation with contributing page
- create seed for more technical documentation (architecture, deployment, testing)
Reviewed-on: #100
Reviewed-by: Christian Merten <christian@merten.dev>
Co-authored-by: Kasimir Uihlein <kuihlein@mailbox.org>
Co-committed-by: Kasimir Uihlein <kuihlein@mailbox.org>
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.
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>