Releases: e-valuation/EvaP
Releases · e-valuation/EvaP
2025.6.1
What's Changed
- fix select delegate modal text clipping by @jooooosef in #2462
- Log adding participants via User Profile edit page by @jooooosef in #2412
- Take
INSTITUTION_EMAIL_REPLACEMENTS
into account when checking email transitions by @niklasmohrin in #2460 - Remove unnecessary whitepsace from delegate preparation modal by @jooooosef in #2465
Full Changelog: 2025.6.0...2025.6.1
2025.6.0
What's Changed
- Fix delete button on staff programs page by @richardebeling in #2433
- Replace
do_not_call_in_templates
property withenum.nonmember
by @niklasmohrin in #2440 - Automatically update email address on subdomain change by @niklasmohrin in #2434
- Update bootstrap to 5.3.6 by @niklasmohrin in #2437
- Fix linear number of queries on grades semester view by @niklasmohrin in #2441
- Prevent double tab opening by @janno42 in #2442
- Ban importing
evap.settings
by @niklasmohrin in #2445 - Fix artifact glob for .mo files by @niklasmohrin in #2446
- Remove unused deconstructor by @jooooosef in #2451
- Add
tools/check_dist.py
to ensure all specified artifacts are used by @niklasmohrin in #2447 - Make legal notice text configurable in settings by @niklasmohrin in #2455
- Add animation on evaluation deletion by @styrix560 in #2458
- Add program merge view by @richardebeling in #2435
- JSON enrollment importer by @hansegucker in #2187
New Contributors
- @styrix560 made their first contribution in #2458
Full Changelog: 2025.5.0...2025.6.0
2025.5.0
What's Changed
Features/Refactoring
- Rename degree to program by @janno42 in #2282
- Grade Publishing Reminder Email in
send_reminders
by @richardebeling in #2284 - reset evaluation after it started by @fekoch in #2136
- Add result filter slider by @Kakadus in #2283
- Convert sortable-form and its usages to TypeScript by @PFischbeck in #2199
- Make natural key of userprofile unique by @Kakadus in #2249
- Reset translation in test tearDown by @richardebeling in #2309
- Replace
do_not_call_in_templates = True
class variable in enums with instance property by @niklasmohrin in #2325 - Sticky submit area in staff evaluation form by @janno42 in #2335
- Allow setting step size for reward point redemption and use formset by @hansegucker in #2264
- Fixup result filter slider by @Kakadus in #2318
- Person management button by @janno42 in #2339
- Fix create_user and create_superuser by @richardebeling in #2344
- Silence
createsuperuser
during tests by @Kakadus in #2353 - Dispatch a
click
event on an off-DOM<a>
element when clicking on.table-seamless-links
rows by @niklasmohrin in #2349 - Adds shortcut button to add exam evaluation by @FSadrieh in #2050
- Exit staff mode after permission revocation by @ybrnr in #2355
- Add step to rewards.rewardpointredemptionevent in testdata by @jooooosef in #2382
- Test mismatching testdata by @jooooosef in #2385
- Bilingual RewardPointRedemptionEvent names by @jooooosef in #2380
- Refactor Sisyphus to ts and drop unnecessary functionality by @hansegucker in #2377
- Semesters not ordered correctly in evaluation selection on person management page by @jooooosef in #2399
- remove incorrect CSS class that lead to wrong background color by @janno42 in #2403
- Correct redeeming users count in RewardPointRedemptionEvents overview by @Kakadus in #2404
- Grant reward points on evaluation deletion by @richardebeling in #2358
- Add preparation reminder text view by @Kakadus in #2408
- Delete participations of long inactive users by @Redflashx12 in #2329
- Fix TomSelect autocompleting prefixes to existing options on tag inputs by @richardebeling in #2410
- Fix various TypeScript / ESLint warnings by @niklasmohrin in #2414
- Explicitly disconnect signals when no longer needed by @richardebeling in #2413
- Improve quadratic lookup in
get_evaluations_with_course_result_attributes
by @richardebeling in #2420 - Use django 5.2 features:
reverse
with query/fragment, auto-imports onmanage.py shell
by @richardebeling in #2428 - Student vote callouts by @richardebeling in #2423
- Customizable evaluation results filters by @jooooosef in #2232
- Fix inaccurate password warnings by @niklasmohrin in #2436
- Assign contributor questionnaires per course type by @jooooosef in #2373
Dependencies/Infrastructure
- Add
typing-extensions
torequirements.txt
by @niklasmohrin in #2295 - Provide development environment via
nix
by @niklasmohrin in #2274 - Update to bootstrap 5.3.3 by @richardebeling in #2281
- Update to psycopg3 by @richardebeling in #2289
- Use
paste
from coreutils by @ybrnr in #2308 - Fix Codacy badge link by @michaelgruenewald in #2316
- Add
packages.poetry
by @niklasmohrin in #2314 - Add python wrapper for IDEs by @Kakadus in #2317
- MacOS nix fixes by @niklasmohrin in #2321
- format before linting by @Kakadus in #2338
- use log-level instead of loglevel prettier arg by @Kakadus in #2347
- Switch to
uv2nix
by @niklasmohrin in #2345 - Add eslint by @Kakadus in #2285
- Remove duplicate bootstrap import by @niklasmohrin in #2365
- Fix GitHub badge link by @Kakadus in #2376
- Split
settings.BASE_DIR
intoMODULE
andDATADIR
by @niklasmohrin in #2374 - Remove
magic-nix-cache
by @niklasmohrin in #2384 - Move
manage.py
content toevap.__main__
by @niklasmohrin in #2387 - Build wheel by @niklasmohrin in #2389
- Better instructions on how to reset persistent state in development environment by @richardebeling in #2390
- Add dunder name check to manage.py by @Kakadus in #2396
- Use Django's
LiveServerTestCase
for frontend tests by @hansegucker in #2077 - Remove compiled files in clean-setup and don't collect static files in init by @hansegucker in #2397
- Don't restrict time of day in renovate PR schedule by @Kakadus in #2401
- Move
localsettings.template.py
andmanage_autocompletion.sh
toevap/development/
by @niklasmohrin in #2402 - Add
evap-dev-with-lsp
shell by @niklasmohrin in #2407 - Recreate package-lock.json to remove outdated dependency references by @richardebeling in #2409
- Update Python to 3.12 and flake inputs by @niklasmohrin in #2406
- Small
services.nix
and CI refactors by @niklasmohrin in #2411 - Add typescript-language-server to evap-dev-with-lsp shell by @niklasmohrin in #2415
- fixup renovate configuration by @Kakadus in #2419
- Fixup fixup renovate configuration by @niklasmohrin in #2422
- Suppress python callstacks on lint/ts/scss command failure by @richardebeling in #2405
- Change backup process test to use evap-deployment repo by @niklasmohrin in #2424
rm -rf deployment/
by @niklasmohrin in #2425- Downgrade Python to 3.11 by @niklasmohrin in #2426
- Update django and django-webtest by @Kakadus in #2427
- Publish EvaP to PyPI by @niklasmohrin in #2328
- Add permission for OAuth to coverage CI steps by @niklasmohrin in #2429
New Contributors
- @Redflashx12 made their first contribution in #2329
Full Changelog: 2024-09-09...2025.5.0
2024-09-09
What's Changed
- only remount if REPO_FOLDER does not contain any items by @fekoch in #2242
- Fix has_answers returning False once any RatingResult has no answers by @janno42 in #2245
- type results exporter by @fidoriel in #2035
- remove incorrect db comment by @fidoriel in #2254
- Shush dependabot about ruff and django-stubs patch updates by @richardebeling in #2257
- Fix user delete form submit by @Kakadus in #2250
- update fontawsome to 6.6.0 by @fekoch in #2263
- Abort confirmation modal flow if attached form is invalid by @niklasmohrin in #2253
- Do calculation of redemptions by user in database by @hansegucker in #2261
- Pin django to minor version by @richardebeling in #2267
- Fix person management none error by @Kakadus in #2198
- Change icon-yellow to icon-blue by @janno42 in #2276
Full Changelog: 2024-07-07...2024-09-09
2024-07-07
What's Changed
- Add missing migration after
Evaluation.State
string update by @niklasmohrin in #2227 - Improve linter configuration by @Kakadus in #2228
- Add participant progress bar by @Kakadus in #2234
- Fix infobox collapse by @Kakadus in #2237
- always show placeholder text in fullwidth user selection fields by @janno42 in #2241
Full Changelog: 2024-06-17...2024-07-07
2024-06-17
What's Changed
- Added README section clarifying how to get in touch with the team by @mhurm in #2081
- decompose RatingResult by @Kakadus in #2091
- Merge suggestions by @olewoy in #1968
- Replace
zip_choices
with strictzip
by @Kakadus in #2064 - fix: notebook logic by @fidoriel in #2094
- Translate evaluation state names in log display by @DieKautz in #2071
- Sorting for participants in Issue #1975 by @constantin-kuehne in #2061
- Fix Borders in Outlined Button Group in textanswers view by @fekoch in #2085
- Make merge suggestion test independent of localsettings by @richardebeling in #2112
- Use click handlers instead of inserting anchor tags in
.table-seamless-links
by @niklasmohrin in #2117 - Fix django-stubs-ext missing breaking a production setup by @richardebeling in #2110
- Mobile improvements by @LinqLover in #2054
- Rewrite confirmation modals by @niklasmohrin in #1985
- Use
translate
andblocktranslate
template tags by @richardebeling in #2114 - Suppress stdout output in test_dumpdata_called by @richardebeling in #2125
- Fix underline text-decorations on results pages by @richardebeling in #2130
- Evaluation person management: Prevent form submission when pressing enter by @richardebeling in #2133
- Fix broken javascript id selector on evaluation operation page by @richardebeling in #2132
- Hide notebook button in print view by @janno42 in #2142
- Fix misplaced order icons: Make css selector for order icon padding more selective by @richardebeling in #2134
- Replace order icons by @janno42 in #2143
- Fix confirmation modal show button flicker by @niklasmohrin in #2153
- revert overflow-x-scroll on footer from #2054 by @janno42 in #2151
- Update log messages by @janno42 in #2148
- Don't sort course_evaluations in results_evaluation_detail.html again by @richardebeling in #2154
- Add enrollment preprocessing CLI tool by @Kakadus in #2011
- Introduce ruff to ci by @Kakadus in #2051
- CSP preparations: Use less inline scripts and styles by @richardebeling in #2149
- ci: run backup process without dev dependencies by @Kakadus in #2128
- Password login improvements by @richardebeling in #2155
- Disable DATA_UPLOAD_MAX_NUMBER_FIELDS by @janno42 in #2163
- ci: track github actions with dependabot by @Kakadus in #2168
- fix review_decisions in minimal_test_data_results by @janno42 in #2173
- track all composite actions with dependabot by @Kakadus in #2182
- Reraise exceptions when debugging by @Kakadus in #2167
- Fix django stubs 5.0.0 by @Kakadus in #2186
- Downgrade django-fsm to 2.8.2 to fix deprecation warning by @richardebeling in #2188
- Assert that users have no passwords in anonymize command by @richardebeling in #2179
- Update a single comment :^) by @niklasmohrin in #2190
- fix dependabot composite action update by @Kakadus in #2194
- fix: codecov v4 action by @Kakadus in #2197
- docker mount ownership fixes by @Kakadus in #2162
- fix: person management submit buttons by @Kakadus in #2200
- Fix incorrect evaluation operation error message by @janno42 in #2206
- Make test_data feel a bit fresher by @janno42 in #2209
- Allow list of values for graded column in importer by @janno42 in #2208
- Remove reverted scale warning icon by @janno42 in #2178
- Replace print statements in enrollment preprocessor by @fekoch in #2210
- Make Evaluation.State an IntEnum by @fekoch in #2174
- Improve navigation to textanswer review page by @janno42 in #2211
- replace font in xlsx workbook by @Kakadus in #2218
- Fix black formatting in tools folder by @Kakadus in #2221
- Add export of all available reward points by @PFischbeck in #2216
- replace last jquery with plain browser api by @Kakadus in #2222
New Contributors
- @mhurm made their first contribution in #2081
- @DieKautz made their first contribution in #2071
- @constantin-kuehne made their first contribution in #2061
Full Changelog: 2024-01-02...2024-06-17
2024-01-02
What's Changed
- Replace (some) jQuery code with native javascript by @richardebeling in #2013
- Fixed accidentally removed whitespaces in clickable data rows by @richardebeling in #2021
- Test context manager/decorator:
assert_no_database_modifications
by @richardebeling in #2018 - Refactor to builtin generic views where appropriate by @niklasmohrin in #1964
- A notebook for EvaP by @fidoriel in #1771
- Change color of submit error message by @joendter in #2034
- Fix typecheck failure introduced with
django-stubs==4.2.5
by @richardebeling in #2042 - Replace toggle_no_grades with an idempotent alternative by @till2 in #2040
- Add testdata for user contributor by @janno42 in #2043
- css: display menus in front of notebook by @LinqLover in #2044
- Remove accidentally merged TODO comments by @richardebeling in #2056
- Reposition View Selection Buttons by @fkoch-tgm in #2047
- Fix user selection form for user merge view by @hansegucker in #2049
- add error suffix to exceptions by @Kakadus in #2063
- Improve translation handling in JavaScript and TypeScript by @hansegucker in #2036
- Suggest user merge if user with same email address exists by @hansegucker in #2065
- Use bootstrap grid for staff evaluation by @FranzSw in #1889
- Type hints for class based views (and other tools) by @richardebeling in #2060
- fixed notebook overflow by @JosefValentin2004 in #2062
- Removed degree and course types from contributor export header and added test by @ybrnr in #2057
- Better voting error messages by @FSadrieh in #2076
- Fix generation of JS translations by dropping old locale folder by @hansegucker in #2078
- Fix Borders in Navbar-Button-Switches by @fkoch-tgm in #2070
- Improve windows setup process by @richardebeling in #2079
- ResultGrid: Don't hard-fail if some cell value is missing in filter checkboxes by @richardebeling in #2083
- Introduce typeguard in tests by @Kakadus in #2073
- Change login button text (and translation) by @janno42 in #2092
New Contributors
- @joendter made their first contribution in #2034
- @till2 made their first contribution in #2040
- @LinqLover made their first contribution in #2044
- @fkoch-tgm made their first contribution in #2047
- @hansegucker made their first contribution in #2049
- @JosefValentin2004 made their first contribution in #2062
- @ybrnr made their first contribution in #2057
Full Changelog: 2023-09-24...2024-01-02
2023-09-24
What's Changed
- Add button to resend "Evaluation started" email to single user by @Jonas0000 in #1937
- Add keyboard shortcut for toggling flag state of textanswer by @niklasmohrin in #1973
- Use builtin types instead of
typing
module for type hints by @niklasmohrin in #1983 - Fixed duplicate through email cleaning #1956 by @florian-str in #1979
- Add voting timestamp log by @FSadrieh in #1900
- UI fixes by @janno42 in #1987
- fix ordering icon in mobile view by @janno42 in #1999
- show full email in userprofile selection fields by @janno42 in #2000
- fix tooltips by @janno42 in #2007
- don't remove selected values from multiselect lists by @janno42 in #2012
- Importers: Disallow course merging for published evaluations and single results by @richardebeling in #1978
- Add configurable startpage by @janno42 in #1990
- Positive and negative agreement (likert) questions by @FSadrieh in #1969
New Contributors
- @Jonas0000 made their first contribution in #1937
Full Changelog: 2023-07-04...2023-09-24
2023-07-04
What's Changed
- Importers: Use .save() instead of
bulk_
operations to fix #1839 by @he3lixxx in #1843 - Readme: Fix reference to outdated 'master' branch by @he3lixxx in #1850
- Http verbs by @florian-str in #1837
- Remove navbar cache by @he3lixxx in #1849
- Importer performance by @he3lixxx in #1841
- Update dependencies by @he3lixxx in #1852
- Migrate from requires.io to dependabot by @niklasmohrin in #1838
- Work around CI failure due to git repo ownership by @he3lixxx in #1870
- Prefetching by @he3lixxx in #1842
- Bootstrap 5.3.0 by @janno42 in #1858
- Fixed badges not showing in grades_semester_view (#1845) by @florian-str in #1869
- Fix navbar semester ordering by @he3lixxx in #1872
- Fix .btn-link by @janno42 in #1873
- Remove @types/puppeteer dev dependency by @he3lixxx in #1882
- Remove functionally dependent ids from urls by @niklasmohrin in #1836
- Remove flaky contact modal tests by @he3lixxx in #1881
- Importer improvements by @he3lixxx in #1855
- Importer messages: More intuitive counts / numbers 2 by @FSadrieh in #1821
- Dependabot: No automatic rebases, no JS-patch-versions by @he3lixxx in #1888
- Cache setup steps in Github actions by @Kakadus in #1853
- macOS setup in readme by @fidoriel in #1902
- Pip dependency versioning: Use "compatible-version" specification by @he3lixxx in #1917
- Update JS dependencies by @he3lixxx in #1922
- Readme fixes by @niklasmohrin in #1925
- Remove debug-mode tests from CI by @niklasmohrin in #1929
TextAnswer
flagging by @niklasmohrin in #1815- Dependabot: Don't create PRs that just narrow supported python versions by @he3lixxx in #1934
- Isolate node_modules inside development container/VM by @he3lixxx in #1899
- Right align 'Actions' colums on various pages by @olewoy in #1930
- Dump testdata after adding
TextAnswer.is_flagged
by @niklasmohrin in #1938 - Update to django 4.2 by @he3lixxx in #1918
- Run
apt update
beforeapt install
in CI by @niklasmohrin in #1942 - Customizable infotexts by @Kakadus in #1833
- Tooltips on disabled buttons in navbar switch by @tanja04 in #1931
- Display number of available reward points on staff page by @olewoy in #1941
- Dependabot: Only update major versions for anything puppeteer-related by @he3lixxx in #1951
- Ubuntu 22.04 and Python 3.10 by @janno42 in #1948
- Hovertext for positive and negative yes-no questions on distribution bars by @tanja04 in #1946
- Distinguish between given and display name for users by @emdiso in #1903
- Enable javascript import replacements for ManifestStaticFilesStorage by @he3lixxx in #1954
- Restrict allowed chosen first names by @he3lixxx in #1959
- Stricter password handling in UserProfileManager by @he3lixxx in #1961
- Text fields: Avoid
blank=True, null=True
by @he3lixxx in #1962 - Test that the enrollment importer creates general contributions by @he3lixxx in #1966
- Redesign profile page by @janno42 in #1967
- Use database constraints instead of python asserts by @florian-str in #1957
New Contributors
- @olewoy made their first contribution in #1930
- @tanja04 made their first contribution in #1931
- @emdiso made their first contribution in #1903
Full Changelog: 2022-12-15_1...2023-07-04
2022-12-15_1
Bugfix release
Full Changelog: 2022-12-15...2022-12-15_1