No changes since last release
2026-05-28 | 45e660da37...7e3e5ef99d
This avoids aborted/retried transactions from emitting changes to the browser session, which could result in success messages being displayed after a failed transaction or similar weird edge-cases.
Bugfix | OGC-3182 | 45e660da37
Feature | PRO-1489 | 48829840f9
Feature | OGC-3191 | 4bad880286
Commit da2a45a99 accidentally removed the check that prevents adding attendances after abschluss was set for a settlement run.
Bugfix | OGC-3188 | f3859c0706
Bugfix | OGC-3186 | 5dadd6d491
Bugfix | e5295183b6
This should help with cleanups on resources with a lot of allocations on a very long time frame.
Performance | OGC-3183 | 62a08f26a5
New design for the page.
Feature | SWI-62 | f5646554d5
2026-05-26 | b2808d3bc1...899516c297
Performance | OGC-3166 | 51245bbbae
Under high load (e.g. Feriennet opening days) concurrent bookings can trigger PostgreSQL serialization failures inside the search indexer's savepoint. Previously these were silently swallowed, leaving the outer transaction dead (booking lost) while the confirmation email was still dispatched.
Bugfix | PRO-1545 | edf9a3830f
2026-05-22 | 18c0a5a741...3de3c91a7d
Fix view of tag names
Bugfix | OGC-3083 | 18c0a5a741
Use re.subn to count URL occurrences per field (not just whether a field changed), and wrap the substituted value in Markup when the original was Markup to prevent double-escaping HTML entities.
Bugfix | OGC-3003 | c9f046568a
Bulk-add and edit forms previously showed all active parliamentarians regardless of Kantonsrat membership. Now filters using org_type metadata set by the KUB importer, ensuring inactive members do not appear.
Bugfix | OGC-2949 | 38c4e9b04c
Bugfix | SWI-63 | bd370d252e
2026-05-21 | 2afeb1b9eb...2afeb1b9eb
2026-05-21 | 8473c039e7...d8fa70b4e2
Feature | OGC-3078 | 1376192f24
This way retries on retryable transaction errors properly show up as one transaction, instead of separate transactions for each try.
Bugfix | ONEGOV-CLOUD-5FN | fff59eb635
Volunteer registrations now create a ticket. The states can be changed in the ticket and mails are sent for registration and finalization.
Feature | PRO-1418 | 9bd8288850
Feature | OGC-3129 | ade1a797f8
Bugfix | OGC-3029 | b9d7678891
Feature | OGC-3127 | e10f0f83a2
2026-05-15 | 51a224b031...307026ef4b
Performance | b2163c497a
Performance | 4997ade328
Volunteer registrations now create a ticket. The states can be changed in the ticket and mails are sent for registration and finalization.
Feature | PRO-1418 | 5f247e5a49
Bugfix | OGC-3132 | 8c22b49459
Feature | OGC-3027 | 920594cc77
Co-authored-by: Christof Weickhardt christof.weickhardt@seantis.ch
Feature | OGC-2905 | f604f0c12c
Bugfix | NONE | 51a224b031
Bugfix | OGC-3061 | 818ecf1443
Feature | 3a42f23e20
Feature | 03a3b42189
Adds a "All Parliamentarians (ZIP)" link to the settlement run export page, allowing all individual parliamentarian settlement PDFs to be downloaded in a single ZIP file.
Feature | ed1682cd1c
When closing a commission, the notification email subject showed the parliamentarian's name instead of the commission name.
Bugfix | 492c4a2657
Bugfix | 67ff5b4ecc
Performance | 8080142231
This allows for a more compact view of problematic schemas/tables
Feature | b907b27dcc
2026-05-08 | 0e89ad461d...5ba6afa9a0
Upgrade hints
- New version of xsdata-ech required, run
make update
Return proper errors in JSON for 401 and 500 errors.
Feature | 0e89ad461d
Replaces existing pre release support.
Feature | fbe95b9391
Feature | a0d220d432
Deleting all elections on the same date that are not in the current eCH 0252 delivery is to aggressive. Remove only elections in the same ElectionCompound.
Feature | 5c58a21e9f
2026-05-08 | be2e918e51...df0fd2840e
Bugfix | OGC-3109 | 107321312a
In certain edge cases values can be None.
Bugfix | 1c20dcece2
Feature | OGC-3136 | 23674f9cf3
Feature | OGC-3133 | 42efb8e4e2
Bugfix | OGC-3129 | 9a6fbc3e23
The workaround was to create it on any level and move it to the root level.
Feature | OGC-3118 | 33bba4d45a
Feature | OGC-3140 | 1e92524250
Bugfix | OGC-3138 | 5086ef771a
Feature | OGC-3112 | 43c7d2eff9
Feature | d4313d1a42
No reason to allow manual editing, as it introduces unnecessary risk and potential abuse.
Feature | OGC-3149 | 4d3325255f
Bugfix | OGC-3116 | be2e918e51
Bugfix | 6321d54a86
The KUB importer knows whether a role belongs to Kantonsrat,
(via organizationTypeTitle), but this information was
discarded after import. Detecting Kantonsrat membership required a
fragile heuristic checking three columns for NULL.
Kantonsrat membership meaning being active in parliament itself, so
it's a special kind of ParliamentarianRole.
Bugfix | OGC-3143 | d34177d12c
The import key (parliamentarian_id, commission_id) allowed only one membership per person per commission. When a person transitioned roles (e.g. Mitglied → Präsident), the second entry overwrote the first.
Bugfix | OGC-3156 | c98acf65d8
Bugfix | f19ecab47b
Feature | OGC-3144 | ad7ce9f65e
Hotfix for: sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) can't adapt type 'property'
Bugfix | OGC-3119 | 8be97af686
2026-05-07 | 672d745358...c2a7ca8cb0
2026-05-06 | c822395c1c...390789af02
2026-05-04 | 0e89ad461d...17c021f8f0
Upgrade hints
- New version of xsdata-ech required, run
make update
Return proper errors in JSON for 401 and 500 errors.
Feature | 0e89ad461d
Replaces existing pre release support.
Feature | fbe95b9391
Feature | a0d220d432
Deleting all elections on the same date that are not in the current eCH 0252 delivery is to aggressive. Remove only elections in the same ElectionCompound.
Feature | 5c58a21e9f
2026-04-29 | 9e5c99c325...047fbbe0d7
Bugfix | OGC-3109 | 107321312a
In certain edge cases values can be None.
Bugfix | 1c20dcece2
JS sent to /resources/new-room/formcoder, but the view is
registered on FormCollection. The endpoint is always at
/forms/formcoder.
Bugfix | OGC-3081 | 9e5c99c325
Bugfix | OGC-3052 | f18cd03430
Feature | 2b3a6dfabc
Feature | OGC-3112 | 43c7d2eff9
Bugfix | OGC-3116 | be2e918e51
Bugfix | 6321d54a86
Hotfix for: sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) can't adapt type 'property'
Bugfix | OGC-3119 | 8be97af686
2026-04-24 | 5482237bcd...63ac7fac26
Includes also OGC-3085 which is similar.
Feature | OGC-3086 | 7be5be95d6
Fix bug where hidden needs are displayed
Bugfix | PRO-1530 | 5482237bcd
Bugfix | PRO-931 | eeee14f0ef
Bugfix | 70af86f00d
Bugfix | b32b7fd8c6
2026-04-23 | b2808d3bc1...aa61b72930
2026-04-23 | 415f877415...ef4ba26201
Feature | OGC-3088 | 89afa6e0ab
Bugfix | OGC-3110 | 5e96c08c79
This additional information is only included when the context is a single ticket, rather than a time-bounded stream of reservations.
Feature | OGC-3095 | 415f877415
Performance | OGC-1823 | 4383caffa3
Feature | OGC-2951 | cca2483842
- Admin-only attendance editing enforced, permission tests updated
- Attendance pagination, filters, edit link fixes, bulk-add UI improvements
- Settlement run filter added
- 2 allowances bugs fixed, presidential allowance form/model reworked
- Single parliamentarian export now includes allowances
- Removed "amtliche Mission" commission type
- Removed manual JSON import view
- Email: PAS-specific template (Outlook logo fix), left-aligned logo/footer, admin emails only to active admins
- DB index added for frequently used queries
- Translations updated, invalid tests removed, misc error fixes
Bugfix | OGC-2951 | 4d2299faa2
2026-04-21 | b2808d3bc1...726a35e0e4
Add content disposition attribute so json can be an attachment instead of being shown directly in the browser.
Bugfix | PRO-1525 | 383ec48e61
- Added a link for User manual
- Added a new category "modules" to the global tools
- Rearranged the global tools and settings
- Added categories to settings
Feature | a245aa0a42
Feature | OGC-3091 | 86c800c6d5
Bugfix | 254c81f313
Bugfix | OGC-3070 | 41759f21bb
Erroneous superset operator was never true for all practical purposes. The
condition self._cantons > {'TI', 'VS'} checked whether the configured cantons
formed a strict superset of the exclusion set, meaning it only evaluated to
True when both TI and VS plus at least one additional canton were present.
Since most instances are configured with a single canton, Good Friday and
Easter Monday were silently skipped for virtually all users.
Bugfix | OGC-3106 | 1bf879d3f4
Bugfix | OGC-3092 | 90c3880a09
- Enforce bulk/single edit separation
- Fix PDF spacing in address
Feature | OGC-2951 | 31f7bad4ff
This also adds filter options to the view and displays the date range of each membership in the list.
Bugfix | OGC-3108 | 1e5855c213
Feature | OGC-3100 | f81f59c607
This slightly increases the default timeout and re-runs tests that
failed due to a timeout. It also ignore all CMP related console messages
not just the ones at the WARNING level for the Feriennet test.
Bugfix | 5de85d02dd
This also fixes built-in event tags being reported in English instead of the configured language within the event API.
Feature | OGC-3087 | a9c22bc940
2026-04-10 | 44e9a3b7d0...9a453a7c5d
2026-04-10 | cc33ac41df...cc33ac41df
No changes since last release
2026-04-10 | 1a8da1014a...32712ed32a
Bugfix | ONEGOV-CLOUD-5DM | 0f65411221
Feature | 1a8da1014a
Create option to activate and deactivate group codes in the period form
Feature | PRO-931 | a24cbd1d52
Add volunteers with different states as options for message recipients
Feature | PRO-1421 | 9226adf192
This also makes the Personal access restriction on Attendee more
robust by baking it into the security rules.
Bugfix | ONEGOV-CLOUD-5DN | 0a198f0d52
Parent resources will be blocked by children and vice versa, but the children don't block each other.
Feature | OGC-2580 | ea165dbeae
Previously it was possible to accidentally reject all reservations if a link was clicked multiple times or the ticket was opened in multiple tabs.
Bugfix | OGC-3072 | d1fdb2ca8f
Bugfix | ONEGOV-CLOUD-482 | 916f5bec09
Feature | 66696474ab
Bugfix | 7650a01981
Bugfix | OGC-3074 | dee62b0f5f
Feature | OGC-3065 | 1da4c06a3c
Feature | OGC-3065 | 0dac70f4c5
2026-03-30 | b2808d3bc1...59f3a504ba
2026-03-27 | 4a8cf6ef55...72b3b75960
Feature | OGC-2988 | fb30809189
This ensures the template doesn’t output href="False"
Bugfix | NONE | 4a8cf6ef55
2026-03-26 | 0e89ad461d...423d93f6a6
Upgrade hints
- New version of xsdata-ech required, run
make update
Return proper errors in JSON for 401 and 500 errors.
Feature | 0e89ad461d
Replaces existing pre release support.
Feature | fbe95b9391
Feature | a0d220d432
Deleting all elections on the same date that are not in the current eCH 0252 delivery is to aggressive. Remove only elections in the same ElectionCompound.
Feature | 5c58a21e9f
Bugfix | OGC-3067 | 165b8b17d3
Feature | OGC-2087 | 03edb4cd38
Bugifx | fafafdfa75
2026-03-26 | 4cdba419d4...14012932b0
Feature | NONE | 7120cda5e0
This also involved updating to Lingua 4.16.2, which meant we
had to slightly change our code in some places, so pot-create
doesn't crash and correctly picks up all the translation strings.
Co-authored-by: David Salvisberg david.salvisberg@seantis.ch
Bugfix | OGC-3063 | d79d07a156
Feature | OGC-2992 | 2ecd43949a
Add two new recipient groups:
- Organisers without occasions
- Users with attendees that have no wishes or bookings
Feature | PRO-1448 | 2a84801580
Feature | OGC-3033 | defee57c92
Feature | OGC-2880 | 4cdba419d4
Bugfix | 4514a09db0
Bugfix | 892ce12d82
Bugfix | 4a3efcc072
Feature | OGC-2725 | a6288c0b68
Feature | OGC-2950 | c5e2589e74
Bugfix | OGC-2949 | de747b62ff
Bugfix | ba58bae5b7
Feature | OGC-3065 | 8bde6add9a
2026-03-20 | 0e89ad461d...5c58a21e9f
Upgrade hints
- New version of xsdata-ech required, run
make update
Feature | OGC-3038 | 585abf6c8d
Return proper errors in JSON for 401 and 500 errors.
Feature | 0e89ad461d
Replaces existing pre release support.
Feature | fbe95b9391
Feature | a0d220d432
Deleting all elections on the same date that are not in the current eCH 0252 delivery is to aggressive. Remove only elections in the same ElectionCompound.
Feature | 5c58a21e9f
When we import events we always store source as a combination of a prefix followed by the original id, so only allowing the entire source for filtering is not helpful. Instead we now filter by prefix.
Bugfix | OGC-3021 | 38f35221d7
Feature | OGC-2880 | 7cf450189b
Feature | OGC-3049 | c690d7d4c7
2026-03-18 | 2d2f7e1f80...2ed1e9db67
Bugfix | OGC-3040 | 2d2f7e1f80
2026-03-18 | 0e89ad461d...4a0a8a0904
Upgrade hints
- New version of xsdata-ech required, run
make update
Return proper errors in JSON for 401 and 500 errors.
Feature | 0e89ad461d
Replaces existing pre release support.
Feature | fbe95b9391
Feature | a0d220d432
2026-03-17 | 97194afd57...36363b5db9
Feature | OGC-3021 | 97194afd57
2026-03-17 | 6ea1066d5b...1ada718257
New UI using foundation 6.
Feature | OGC-2853 | 94219e1eb3
Feature | OGC-2989 | 312ae338e4
Feature | OGC-2974 | cf2d9f6198
2026-03-13 | 926add3838...bcc04abfb1
Feature | OGC-1604 | 1fa7d9f2a5
This text only really made sense for a small subset of numeric fields, if this pops up again as a feature request, we should extend formcode instead with an optional unit label for numeric fields.
Bugfix | OGC-3023 | 926add3838
Bugfix | OGC-3024 | 9c86521d9d
Bugfix | eb7e22c5f0
Bugfix | efb439261e
Bugfix | OGC-3002 | cb9d4cf060
Bugfix | OGC-2942 | d4837e64ac
Bugfix | OGC-2997 | 495848763e
2026-03-12 | 19e0174404...f5398c1bcd
2026-03-11 | 7bcfbc7ca6...cd0b7131c4
For complex votes the number of invalid and (completely) empty ballots may not be mapped to the individual results so that the number of received votes cannot be derived from the other numbers.
Feature | OGC-3011 | 7bcfbc7ca6
Feature | OGC-2542 | 85c3225a40
Bugfix | OGC-3008 | 69b7867648
Feature | OGC-3003 | 61936f3248
2026-03-10 | 17ecf7e9f6...40ee4fa04b
Feature | OGC-2979 | 17ecf7e9f6
Feature | OGC-2974 | 71ba68e5e0
Feature | OGC-3006 | f384b48e19
Bugfix | OGC-3015 | cb526a472a
2026-03-09 | 0b252fd439...6ed90f787e
Feature | OGC-3006 | f34cdb6767
Feature | OGC-2974 | 85f5f3af5e
Bugfix | OGC-3005 | 0b252fd439
Bugfix | OGC-2997 | 0d16f99784
2026-03-09 | f384b48e19...f384b48e19
Feature | OGC-3006 | f384b48e19
2026-03-09 | 71ba68e5e0...71ba68e5e0
Feature | OGC-2974 | 71ba68e5e0
2026-03-05 | cace0810c8...2d54353105
2026-03-04 | 17ecf7e9f6...6b6a653c12
Feature | OGC-2979 | 17ecf7e9f6
Changed "attendees" to "carpool contacts" and added an infopanel for clarification .
Feature | PRO-1494 | 3355fe7af8
Bugfix | 1cf45d9254
Feature | 2b7c50efd3
Feature | OGC-2941 | 8bd5c50179
Bugfix | b0a97bfa13
Fixes sentry: https://seantis-gmbh.sentry.io/issues/7294132496
Bugfix | NONE | 3cb3d433fa
Bugfix | OGC-2994 | dce46c6fb0
Replace freeze_time with date.today as both Python and SQL expression agree on ages
Bugfix | NONE | 5e9f8c21d2
2026-02-27 | f5feeeea66...c8c42347ea
Feature | OGC-2976 | 6730b8d860
Show wishlist info not only when wishlist phase is active
Bugfix | PRO-1487 | 33fe463c48
This is just an intermediate step. We may need to handle different file types in albums differently
Bugfix | OGC-2976 | 31a6fed7c2
Changing usernames is only allowed for users that are not sourced from an external login provider and if the current admin user has either a Yubikey or TOTP second factor configured (mTAN is not yet supported).
This also adds a CLI command to change usernames, which can be utilized in all applications, not just Org.
Feature | OGC-2532 | 4b4467c068
With SQLAlchemy 2.0 it is possible for the User object to become
detached, which can result in errors if we try to access a deferred
attribute later on.
Bugfix | 47bf5c3bd0
Bugfix | OGC-2984 | 17e9addabd
Bugfix | NONE | 64908b60ac
Bugfix | NONE | 0d478902be
Bugfix | NONE | 7fac7accd6
Bugfix | 74859ffcc8
Don't display the searchbar if there are no images in the slider
Other | f5feeeea66
Feature | OGC-2785 | 3d0b3fe3d4
As official_host is not set for development and staging, cli upload-archived-results may cause duplicates when uploading new results due to different urls.
Feature | OGC-2978 | 34820b252c
2026-02-23 | dd502dc069...997bc59a4a
2026-02-20 | 673622456d...007adfdc2d
Bugfix | OGC-2785 | 673622456d
2026-02-20 | dd502dc069...a7ce12aa8e
Add link to the first form in form colleciton, link to photoalbums and link to volunteer activity list to the navigation.
Feature | PRO-1468 | 0388161dc8
Feature | OGC-2738 | ff77bff6b9
2026-02-19 | 01dce7374a...3042c5af71
Feature | OGC-2945 | dea56b3a58
Feature | 65a5d96515
- The dropdown for the users now pre-selects the correct user again.
- The users are now displayed correctly again and can be selected
Bugfix | PRO-1481 | 574e4844b6
Newly loaded activity needs could not be added to the volunteers list
Bugfix | PRO-1480 | 8a1f72e2ac
Feature | OGC-2941 | 3b7d41a6c8
Feature | OGC-2941 | 51ed0825eb
Bugfix | OGC-2908 | 01dce7374a
2026-02-17 | 56a0169055...e39ad8b3da
2026-02-17 | f20e7fc393...2189bbd8f8
Sentry examples:
https://seantis-gmbh.sentry.io/issues/trace/0c49d7a3f0314d11acec7a2859f47232/
https://seantis-gmbh.sentry.io/issues/trace/72578e382105402aac1ef2a6c37e056b/
Performance | NONE | f20e7fc393
2026-02-16 | 8101345cbe...f7481046ca
Replaces word coordinate with map to explain what really happens.
Feature | OGC-2883 | cde5e5f3f8
Feature | OGC-2850 | 872c94297d
Bugfix | OGC-2850 | d10d4b7cd6
Bugfix | OGC-2917 | 11aaf9700b
Bugfix | NONE | d48491fc95
2026-02-11 | dd502dc069...b8306cab4c
Bugfix | PRO-1478 | 0a4012edd8
2026-02-10 | 7178b5005b...c93df57ee5
Upgrade hints
- onegov-election-day --select /onegov_election_day/gr update-archived-results
Feature | OGC-2944 | ea2ef0eb7f
Bugfix | OGC-1467 | 111eac326b
All relevant content types now use the assembly date as their reference date in the search index.
Feature | OGC-2909 | 65746148d2
Allocations that are in the past or no longer/not yet available because they're outside the registration window would previously sometimes say that they're available, or partly available, even though they can't be reserved. Since the reason for why they're currently unavailable can be a bit contrived, it's better to not display anything at all. Customers will still get a clear explanation when they try to reserve these slots.
Feature | OGC-2334 | 0e575db9cc
Bugfix | OGC-2948 | ccf901324f
Bugfix | OGC-2954 | 28fb8697dc
Bugfix | OGC-2960 | d983f55617
Feature | OGC-2790 | 5fa5d7056e
Bugfix | OGC-2901 | 93b61635fa
Feature | OGC-2850 | 435dbf9ae8
2026-01-30 | 574f21d1c1...195a697ab3
Bugfix | OGC-2353 | 6bbe21e2a0
This means we no longer have any views where we have to add a narrow
unsafe-eval exception to the CSP, in order to make things work.
Feature | OGC-2916 | 24b52c862e
Right split trailing slashes from configured domains prior comparison
Feature | OGC-2940 | 005ce6fc34
Bugfix | OGC-2848 | 9762773489
Bugfix | OGC-2845 | 58d94c5689