Skip to content

Commit 6ee25ed

Browse files
Merge branch 'master' into pro-1562-recipients-order
2 parents 4424600 + 75a7995 commit 6ee25ed

4 files changed

Lines changed: 11 additions & 11 deletions

File tree

src/onegov/core/orm/mixins/content.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from markupsafe import escape, Markup
44
from onegov.core.orm.types import MarkupText
5-
from sqlalchemy import func, type_coerce
5+
from sqlalchemy import func, literal, type_coerce
66
from sqlalchemy.ext.hybrid import hybrid_property
77
from sqlalchemy.orm import mapped_column, Mapped
88
from onegov.core.orm.types import JSON
@@ -323,7 +323,7 @@ def _default_deleter(self, instance: object) -> None:
323323

324324
def _default_expr(self, owner: type[Any]) -> ColumnElement[T]:
325325
column: ColumnElement[dict[str, Any]] = getattr(owner, self.attribute)
326-
expr = column[self.key]
326+
expr = column[literal(self.key, literal_execute=True)]
327327
coerced = False
328328
if self.value_type is None:
329329
pass

src/onegov/election_day/collections/archived_results.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -580,11 +580,11 @@ def get_latest_year_by_municipality(self) -> dict[str, int]:
580580
year_col = cast(extract('year', ArchivedResult.date), Integer)
581581
rows = (
582582
self.session.query(
583-
ArchivedResult.meta['domain_segment'].astext,
583+
ArchivedResult.domain_segment,
584584
func.max(year_col),
585585
)
586586
.filter(ArchivedResult.domain == 'municipality')
587-
.group_by(ArchivedResult.meta['domain_segment'].astext)
587+
.group_by(ArchivedResult.domain_segment)
588588
.all()
589589
)
590590
return {name: year for name, year in rows if name}
@@ -595,8 +595,7 @@ def get_years(self) -> list[int]:
595595
query = query.filter(ArchivedResult.domain == 'municipality')
596596
if self.municipality:
597597
query = query.filter(
598-
ArchivedResult.meta['domain_segment'].astext
599-
== self.municipality
598+
ArchivedResult.domain_segment == self.municipality
600599
)
601600
query = query.order_by(desc(year_col))
602601
return [y for y, in query]
@@ -612,7 +611,7 @@ def _municipality_query(
612611
ArchivedResult.type.in_(['election', 'vote', 'complex_vote'])
613612
)
614613
query = query.filter(
615-
ArchivedResult.meta['domain_segment'].astext == municipality
614+
ArchivedResult.domain_segment == municipality
616615
)
617616
return query.order_by(
618617
ArchivedResult.date,
@@ -796,7 +795,7 @@ def term_filter(self) -> tuple[
796795
ArchivedResult.title, term, self.locale
797796
),
798797
SearchableArchivedResultCollection.filter_text_by_locale(
799-
ArchivedResult.meta['domain_segment'].astext, term, self.locale
798+
ArchivedResult.domain_segment, term, self.locale
800799
)
801800
)
802801

src/onegov/election_day/models/archived_result.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,9 +134,10 @@ def title_prefix(self, request: ElectionDayRequest) -> str:
134134

135135
return ''
136136

137-
@property
138-
def domain_segment(self) -> str | None:
139-
return (self.meta or {}).get('domain_segment') or None
137+
#: The municipality name for results with a `municipality` domain.
138+
domain_segment: dict_property[str | None] = meta_property(
139+
'domain_segment', value_type=str
140+
)
140141

141142
#: Shortcode for cantons that use it
142143
shortcode: Mapped[str | None]
-10.1 KB
Binary file not shown.

0 commit comments

Comments
 (0)