Skip to content

Commit 6b55599

Browse files
committed
Resolve merge conflicts
2 parents ab1048d + 8f95a83 commit 6b55599

39 files changed

Lines changed: 587 additions & 328 deletions

File tree

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ repos:
1717
exclude: .pre-commit-config.yaml
1818
- id: pt_structure
1919
- repo: https://github.com/astral-sh/ruff-pre-commit
20-
rev: v0.15.15
20+
rev: v0.15.16
2121
hooks:
2222
- id: ruff-check
2323
args: [ "--fix" ]

CHANGES.md

Lines changed: 150 additions & 128 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,148 @@
11
# Changes
22

3+
## 2026.31
4+
5+
`2026-06-05` | [8b4fe610f6...f3b4d68845](https://github.com/OneGov/onegov-cloud/compare/8b4fe610f6^...f3b4d68845)
6+
7+
### Core
8+
9+
##### Avoids `BrowserSession.pop` causing changes for non-existent keys
10+
11+
This also cleans up some old sharp corners in the API
12+
13+
`Bugfix` | [5d1ad99e55](https://github.com/onegov/onegov-cloud/commit/5d1ad99e5583327b556f595e426a59800e9c98a4)
14+
15+
##### Replace N+1 has_table queries with single get_table_names on schema init
16+
17+
The fix fetches all existing table names in the schema with a single Inspector.get_table_names() call, then passes only the missing tables to create_all(..., checkfirst=False), reducing from O(n) to O(1)
18+
19+
`Performance` | [HTTPS://SEANTIS-GMBH.SENTRY.IO/ISSUES/7357002739/](#HTTPS://SEANTIS-GMBH.SENTRY.IO/ISSUES/7357002739/) | [8b4fe610f6](https://github.com/onegov/onegov-cloud/commit/8b4fe610f6721407587f9b0c50fb71977071152e)
20+
21+
### Directory
22+
23+
##### Exclude all property names from the wtforms setattr loop
24+
25+
`Bugfix` | [OGC-3195](https://linear.app/onegovcloud/issue/OGC-3195) | [f23b9262a2](https://github.com/onegov/onegov-cloud/commit/f23b9262a2b1aee24d6685a72d268a3ce848759b)
26+
27+
##### Explicitly include coordinates property in wtforms setattr loop
28+
29+
`Bugfix` | [OGC-3195](https://linear.app/onegovcloud/issue/OGC-3195) | [a99ca6283e](https://github.com/onegov/onegov-cloud/commit/a99ca6283e74801b8196b258d709ede17df19d11)
30+
31+
### Onboarding
32+
33+
##### Fixes town assistant.
34+
35+
`Bugfix` | [OGC-2727](https://linear.app/onegovcloud/issue/OGC-2727) | [ec6fb0591b](https://github.com/onegov/onegov-cloud/commit/ec6fb0591bac676680a2c186076ee3aa565c22da)
36+
37+
### Org
38+
39+
##### Remove obsolete description from page form
40+
41+
`Feature` | [NONE](#NONE) | [a7186f9813](https://github.com/onegov/onegov-cloud/commit/a7186f981363c8fad3e25c9d7c47c460f7f52f3a)
42+
43+
##### Adds keywords (e.g. synonyms) to topics/pages. Keywords are also in the search index.
44+
45+
`Feature` | [OGC-3155](https://linear.app/onegovcloud/issue/OGC-3155) | [b718f04d1d](https://github.com/onegov/onegov-cloud/commit/b718f04d1d6239ae287030f68c3948190602335a)
46+
47+
##### Fixes event search index corrupted after fetch.
48+
49+
The fetch CLI switches schemas multiple times in a loop (remote → local
50+
per source key), violating the session_manager's own design contract:
51+
"we only set the schema once per request". Any ORM flush during the
52+
schema-switch window would send indexing signals tagged with the wrong
53+
schema.
54+
55+
Wrap `from_import()` and the submit/publish/ticket block in
56+
`disable_change_signals()`, then explicitly index each added/updated
57+
published event after signals are restored.
58+
59+
`Bugfix` | [OGC-3101](https://linear.app/onegovcloud/issue/OGC-3101) | [7c3b4503f1](https://github.com/onegov/onegov-cloud/commit/7c3b4503f12a51255088e6728fb547a03f71d647)
60+
61+
### Pas
62+
63+
##### Don't show parliamentarian name in email.
64+
65+
`Bugfix` | [OGC-3202](https://linear.app/onegovcloud/issue/OGC-3202) | [eb9d4c8af7](https://github.com/onegov/onegov-cloud/commit/eb9d4c8af7b9211abf4f082dc10a60235e67b43f)
66+
67+
### Town6
68+
69+
##### Change label for all posts on homepage
70+
71+
This changes All articles to All posts
72+
73+
`Feature` | [OGC-3181](https://linear.app/onegovcloud/issue/OGC-3181) | [51023e9c40](https://github.com/onegov/onegov-cloud/commit/51023e9c40fec0ca65534a0052f414aea97a7060)
74+
75+
### Winterthur
76+
77+
##### Add iframe back button to directory entries and update it for events
78+
79+
`Feature` | [OGC-3176](https://linear.app/onegovcloud/issue/OGC-3176) | [23ce66cdfd](https://github.com/onegov/onegov-cloud/commit/23ce66cdfdd83533da9c893527abb0f5f8b4a151)
80+
81+
## results
82+
83+
`2026-06-01` | [0e89ad461d...2a3b57e288](https://github.com/OneGov/onegov-cloud/compare/0e89ad461d^...2a3b57e288)
84+
85+
**Upgrade hints**
86+
- New version of xsdata-ech required, run `make update`
87+
### Core
88+
89+
##### Fix ruff F811 errors [skip-ci]
90+
91+
`Bugfix` | [NONE](#NONE) | [3225e9fca1](https://github.com/onegov/onegov-cloud/commit/3225e9fca18ff43858a886e20e1b5a5cc7accdcf)
92+
93+
### Election-Day
94+
95+
##### Improves error messages in API
96+
97+
Return proper errors in JSON for 401 and 500 errors.
98+
99+
`Feature` | [0e89ad461d](https://github.com/onegov/onegov-cloud/commit/0e89ad461dc51dabebaa97b3e0c9bf9d7bb94c3b)
100+
101+
##### Adds support for eCH-0252 V2.0.0
102+
103+
Replaces existing pre release support.
104+
105+
`Feature` | [fbe95b9391](https://github.com/onegov/onegov-cloud/commit/fbe95b9391d20a027acc296d089f00e17aebdde5)
106+
107+
##### Improves error message for unsupported DOI
108+
109+
`Feature` | [a0d220d432](https://github.com/onegov/onegov-cloud/commit/a0d220d4329c5d53f2b302283fe6d6f4b207ac1e)
110+
111+
##### No longer delete elections on the same date.
112+
113+
Deleting all elections on the same date that are not in the current
114+
eCH 0252 delivery is to aggressive. Remove only elections in the
115+
same ElectionCompound.
116+
117+
`Feature` | [5c58a21e9f](https://github.com/onegov/onegov-cloud/commit/5c58a21e9f60f1a3e5d129e7529397125a751922)
118+
119+
### Town
120+
121+
##### Sortable fix
122+
123+
The view now scrolls when dragging an item to the list edge.
124+
125+
`Feature` | [OGC-3111](https://linear.app/onegovcloud/issue/OGC-3111) | [cdf0b667e6](https://github.com/onegov/onegov-cloud/commit/cdf0b667e63a2288077901fe8ec818b56b569e08)
126+
127+
## pro
128+
129+
`2026-05-28` | [8473c039e7...939f12381f](https://github.com/OneGov/onegov-cloud/compare/8473c039e7^...939f12381f)
130+
131+
### Feriennet
132+
133+
##### Volunteer Ticket
134+
135+
Volunteer registrations now create a ticket. The states can be changed in the ticket and mails are sent for registration and finalization.
136+
137+
`Feature` | [PRO-1418](https://linear.app/projuventute/issue/PRO-1418) | [9bd8288850](https://github.com/onegov/onegov-cloud/commit/9bd8288850b9f4273dc47385412647f4f795302b)
138+
3139
## 2026.30
4140

5-
No changes since last release
141+
`2026-05-28` | [11fc058f63...11fc058f63](https://github.com/OneGov/onegov-cloud/compare/11fc058f63^...11fc058f63)
6142

7143
## 2026.29
8144

9-
`2026-05-28` | [45e660da37...7e3e5ef99d](https://github.com/OneGov/onegov-cloud/compare/45e660da37^...7e3e5ef99d)
145+
`2026-05-28` | [d73849d377...7e3e5ef99d](https://github.com/OneGov/onegov-cloud/compare/d73849d377^...7e3e5ef99d)
10146

11147
### Core
12148

@@ -18,6 +154,10 @@ after a failed transaction or similar weird edge-cases.
18154

19155
`Bugfix` | [OGC-3182](https://linear.app/onegovcloud/issue/OGC-3182) | [45e660da37](https://github.com/onegov/onegov-cloud/commit/45e660da3796474ae990d672b0404b006c9e3377)
20156

157+
##### Switch from requests to niquests
158+
159+
`Performance` | [OGC-3166](https://linear.app/onegovcloud/issue/OGC-3166) | [51245bbbae](https://github.com/onegov/onegov-cloud/commit/51245bbbaec2637d3adc647bfc5e645b122bb570)
160+
21161
### Feriennet
22162

23163
##### Add CLI to delete activities
@@ -54,24 +194,6 @@ on a very long time frame.
54194

55195
`Performance` | [OGC-3183](https://linear.app/onegovcloud/issue/OGC-3183) | [62a08f26a5](https://github.com/onegov/onegov-cloud/commit/62a08f26a5a2553da7bdefd9718629bce98c2d07)
56196

57-
### Swissvotes
58-
59-
##### New Design
60-
61-
New design for the page.
62-
63-
`Feature` | [SWI-62](https://linear.app/swissvotes/issue/SWI-62) | [f5646554d5](https://github.com/onegov/onegov-cloud/commit/f5646554d57f14cd02a760504c0b7a7195c508a3)
64-
65-
## swi
66-
67-
`2026-05-26` | [b2808d3bc1...899516c297](https://github.com/OneGov/onegov-cloud/compare/b2808d3bc1^...899516c297)
68-
69-
### Core
70-
71-
##### Switch from requests to niquests
72-
73-
`Performance` | [OGC-3166](https://linear.app/onegovcloud/issue/OGC-3166) | [51245bbbae](https://github.com/onegov/onegov-cloud/commit/51245bbbaec2637d3adc647bfc5e645b122bb570)
74-
75197
### Search
76198

77199
##### Propagate errors while updating or deleting search index
@@ -80,6 +202,14 @@ Under high load (e.g. Feriennet opening days) concurrent bookings can trigger Po
80202

81203
`Bugfix` | [PRO-1545](https://linear.app/projuventute/issue/PRO-1545) | [edf9a3830f](https://github.com/onegov/onegov-cloud/commit/edf9a3830f31b46e2b1ab4370622458ad4d717d7)
82204

205+
### Swissvotes
206+
207+
##### New Design
208+
209+
New design for the page.
210+
211+
`Feature` | [SWI-62](https://linear.app/swissvotes/issue/SWI-62) | [f5646554d5](https://github.com/onegov/onegov-cloud/commit/f5646554d57f14cd02a760504c0b7a7195c508a3)
212+
83213
## 2026.28
84214

85215
`2026-05-22` | [18c0a5a741...3de3c91a7d](https://github.com/OneGov/onegov-cloud/compare/18c0a5a741^...3de3c91a7d)
@@ -1504,111 +1634,3 @@ Replaces word `coordinate` with `map` to explain what really happens.
15041634

15051635
`Bugfix` | [PRO-1478](https://linear.app/projuventute/issue/PRO-1478) | [0a4012edd8](https://github.com/onegov/onegov-cloud/commit/0a4012edd806ba1f1cb46d471f460484984e8368)
15061636

1507-
## 2026.5
1508-
1509-
`2026-02-10` | [7178b5005b...c93df57ee5](https://github.com/OneGov/onegov-cloud/compare/7178b5005b^...c93df57ee5)
1510-
1511-
**Upgrade hints**
1512-
- onegov-election-day --select /onegov_election_day/gr update-archived-results
1513-
### Core
1514-
1515-
##### Prepares for SQLAlchemy 2.0 upgrade
1516-
1517-
`Feature` | [OGC-2944](https://linear.app/onegovcloud/issue/OGC-2944) | [ea2ef0eb7f](https://github.com/onegov/onegov-cloud/commit/ea2ef0eb7ff6e9162e3b935ae7fcaf98c736e2eb)
1518-
1519-
### Feriennet
1520-
1521-
##### Period display bugfix
1522-
1523-
`Bugfix` | [OGC-1467](https://linear.app/onegovcloud/issue/OGC-1467) | [111eac326b](https://github.com/onegov/onegov-cloud/commit/111eac326b77d44da6c0d757c66c78fab9c0e3b0)
1524-
1525-
### Landsgemeinde
1526-
1527-
##### Allows refining search results with a date range
1528-
1529-
All relevant content types now use the assembly date as their reference
1530-
date in the search index.
1531-
1532-
`Feature` | [OGC-2909](https://linear.app/onegovcloud/issue/OGC-2909) | [65746148d2](https://github.com/onegov/onegov-cloud/commit/65746148d202c25738e79cc3c53d3b5505fad893)
1533-
1534-
### Org
1535-
1536-
##### Avoids confusion by sometimes hiding the availability text
1537-
1538-
Allocations that are in the past or no longer/not yet available
1539-
because they're outside the registration window would previously
1540-
sometimes say that they're available, or partly available, even
1541-
though they can't be reserved. Since the reason for why they're
1542-
currently unavailable can be a bit contrived, it's better to not
1543-
display anything at all. Customers will still get a clear explanation
1544-
when they try to reserve these slots.
1545-
1546-
`Feature` | [OGC-2334](https://linear.app/onegovcloud/issue/OGC-2334) | [0e575db9cc](https://github.com/onegov/onegov-cloud/commit/0e575db9cc7662715f58093221e2e277638d1119)
1547-
1548-
##### Fixes CSP for Stripe/Datatrans payments
1549-
1550-
`Bugfix` | [OGC-2948](https://linear.app/onegovcloud/issue/OGC-2948) | [ccf901324f](https://github.com/onegov/onegov-cloud/commit/ccf901324faef9bf73bb66b4fc3021108fa34513)
1551-
1552-
##### Fixes blocker created with no reason being set to `null`
1553-
1554-
`Bugfix` | [OGC-2954](https://linear.app/onegovcloud/issue/OGC-2954) | [28fb8697dc](https://github.com/onegov/onegov-cloud/commit/28fb8697dccb64c642a3529803f04c2578d90f6e)
1555-
1556-
##### Fixes regression in `send_ticket_mail`
1557-
1558-
`Bugfix` | [OGC-2960](https://linear.app/onegovcloud/issue/OGC-2960) | [d983f55617](https://github.com/onegov/onegov-cloud/commit/d983f556171c49d87100825928628af424d2cd8a)
1559-
1560-
### Town 6
1561-
1562-
##### Searchbar on homepage slider and video
1563-
1564-
`Feature` | [OGC-2790](https://linear.app/onegovcloud/issue/OGC-2790) | [5fa5d7056e](https://github.com/onegov/onegov-cloud/commit/5fa5d7056e2a0d9c74cf9dfd57e3f274f3494dc8)
1565-
1566-
### Town6
1567-
1568-
##### Fix display bug of images
1569-
1570-
`Bugfix` | [OGC-2901](https://linear.app/onegovcloud/issue/OGC-2901) | [93b61635fa](https://github.com/onegov/onegov-cloud/commit/93b61635fad07090fb0195ff74312b0c52be0c2d)
1571-
1572-
### Wab
1573-
1574-
##### Show proposal, counterproposal and tie-breaker results separately for complex votes
1575-
1576-
`Feature` | [OGC-2850](https://linear.app/onegovcloud/issue/OGC-2850) | [435dbf9ae8](https://github.com/onegov/onegov-cloud/commit/435dbf9ae8c85197e60d213591ce0a11b90fa5d4)
1577-
1578-
## 2026.4
1579-
1580-
`2026-01-30` | [574f21d1c1...195a697ab3](https://github.com/OneGov/onegov-cloud/compare/574f21d1c1^...195a697ab3)
1581-
1582-
### Directory
1583-
1584-
##### Fix directory migration crash when renaming option labels
1585-
1586-
`Bugfix` | [OGC-2353](https://linear.app/onegovcloud/issue/OGC-2353) | [6bbe21e2a0](https://github.com/onegov/onegov-cloud/commit/6bbe21e2a0647bcbb428908d5aee663a9dc8a7b2)
1587-
1588-
### Org
1589-
1590-
##### Replaces data-attributes that triggered a call of `eval`
1591-
1592-
This means we no longer have any views where we have to add a narrow
1593-
`unsafe-eval` exception to the CSP, in order to make things work.
1594-
1595-
`Feature` | [OGC-2916](https://linear.app/onegovcloud/issue/OGC-2916) | [24b52c862e](https://github.com/onegov/onegov-cloud/commit/24b52c862e06d2097c85848194445f5ec8304ad2)
1596-
1597-
### Page
1598-
1599-
##### Improve iframe domain validation to for configured domains.
1600-
1601-
Right split trailing slashes from configured domains prior comparison
1602-
1603-
`Feature` | [OGC-2940](https://linear.app/onegovcloud/issue/OGC-2940) | [005ce6fc34](https://github.com/onegov/onegov-cloud/commit/005ce6fc34f25b27cfaaa05d14cc8e4c736dc48a)
1604-
1605-
### Pas
1606-
1607-
##### Validate attendance to be within a settlement run.
1608-
1609-
`Bugfix` | [OGC-2848](https://linear.app/onegovcloud/issue/OGC-2848) | [9762773489](https://github.com/onegov/onegov-cloud/commit/97627734897050e2435e9a2d0622a3e66af017d0)
1610-
1611-
##### Ensure finalized attendance for commission.
1612-
1613-
`Bugfix` | [OGC-2845](https://linear.app/onegovcloud/issue/OGC-2845) | [58d94c5689](https://github.com/onegov/onegov-cloud/commit/58d94c568988d3748aa184372b1ee755ac0c858a)
1614-

makefile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,8 @@ install: ensure_uv
1414
# ensure required folder structure
1515
mkdir -p ./profiles
1616

17-
# gather eggs
17+
# clean up old eggs folder if it still exists
1818
rm -rf ./eggs
19-
scrambler --target eggs
2019

2120
update: ensure_uv
2221
# update all dependencies

pyproject.toml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,20 @@ timeout = 300
1212
asyncio_default_fixture_loop_scope = "function"
1313
filterwarnings = [
1414
'''ignore:pkg_resources is deprecated as an API''',
15-
'''ignore:Deprecated call to `pkg_resources\.declare_namespace\('.*'\):DeprecationWarning''',
15+
'''ignore:Deprecated call to `pkg_resources\.declare_namespace\('.*'\):DeprecationWarning:(fs|pkg_resources).*''',
16+
'''ignore:Call to deprecated setex:DeprecationWarning:dogpile.*''',
1617
# potential issue for future upgrades
1718
# unfortunately it's not possible to filter escape sequence warnings in
1819
# specific modules, but we should be covered by Ruff for our own code
1920
'''ignore:"[^"]+" is an invalid escape sequence:::''',
21+
# FIXME: OGC-2659
2022
'''ignore:'crypt':DeprecationWarning:passlib.*:''',
2123
# Until pysaml2 is compatible with newer versions of xmlschema
2224
# we are stuck with this DeprecationWarning
2325
# See: https://github.com/IdentityPython/pysaml2/issues/947
2426
'''ignore:pathlib\.PurePath\.as_uri\(\) is deprecated:DeprecationWarning:xmlschema.*:''',
25-
# See: https://github.com/amol-/depot/issues/90
26-
'''ignore:datetime\.datetime\.utcnow\(\) is deprecated:DeprecationWarning:depot.*:''',
2727
# fixed upstream
28+
'''ignore:datetime\.datetime\.utcnow\(\) is deprecated:DeprecationWarning:depot.*:''',
2829
'''ignore:(tagMap|typeMap) is deprecated:DeprecationWarning:ldap3.*:''',
2930
]
3031

@@ -58,15 +59,13 @@ strict = true
5859
implicit_reexport = true
5960
warn_unreachable = true
6061
warn_return_any = false
61-
untyped_calls_exclude = "icalendar,pycurl,selenium.webdriver.chrome.webdriver"
62+
untyped_calls_exclude = "icalendar"
6263
mypy_path = "$MYPY_CONFIG_FILE_DIR/src:$MYPY_CONFIG_FILE_DIR/stubs"
6364

6465
[[tool.mypy.overrides]]
6566
# ignore missing imports for packages that have no stubs available
6667
module = [
67-
# FIXME: Do we really need this? We have this implemented ourselves
68-
# in OCQMS, so we could just copy that code over... plus the
69-
# standard lib technically supports some ISO-8601 formats as well
68+
# FIXME: Remove after https://github.com/gweis/isodate/issues/100
7069
"isodate.*",
7170
# FIXME: Remove after https://github.com/lipoja/URLExtract/issues/164
7271
"urlextract.*",

0 commit comments

Comments
 (0)