Skip to content

Split incident report other location, add tags filter and citizen report locations count - #1123

Merged
idormenco merged 1 commit into
mainfrom
feat/incident-location-types-and-tags-filter
Oct 18, 2026
Merged

idormenco merged 1 commit into
mainfrom
feat/incident-location-types-and-tags-filter

Conversation

@idormenco

@idormenco idormenco commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Incident report location types

  • OtherLocation is split into OtherPollingStation and NotRelatedToAPollingStation. Both require locationDescription.
  • Migration RenameIncidentReportOtherLocation moves existing OtherLocation rows to NotRelatedToAPollingStation.
  • The legacy OtherLocation value is still accepted (JSON bodies, query params and the V2 locationType filter) and maps to NotRelatedToAPollingStation, so older mobile clients keep working.

Tags filter in V2 reports

  • Submissions and incidents V2 filters support tags with in (has any of) and notIn (has none of).
  • FilterField gains IsArray; for array fields the compiler emits an array overlap (&&) check.

Citizen report locations count

  • Migration AddCitizenReportLocationsCount updates the aggregate SQL functions.
  • Citizen report V2 aggregates now include locationsCount at the root and per location, and locationsHistogram on single select, multi select and rating aggregates.

Test plan

  • Vote.Monitor.Core.UnitTests, including new array filter compiler tests
  • Vote.Monitor.Domain.UnitTests, including new location type and V2 filter field tests
  • Feature.IncidentReports.UnitTests
  • Vote.Monitor.Hangfire.UnitTests
  • Run the migrations against a DB copy and check that the incident report location types and citizen report aggregates are correct

@vercel

vercel Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
votemonitor Ready Ready Preview Oct 18, 2026 10:08am UTC

Request Review

…n report locations count

- IncidentReportLocationType.OtherLocation is split into OtherPollingStation and
  NotRelatedToAPollingStation; both require a location description. Existing
  OtherLocation rows are migrated to NotRelatedToAPollingStation, and the legacy
  value is still accepted from clients (JSON, query params and V2 filters).
- V2 report filters for submissions and incidents support "tags" (has any of /
  has none of) through a new array filter field.
- Citizen report V2 aggregates count the distinct citizen report locations at the
  root, per location and per option / rating value (LocationsHistogram).
@idormenco
idormenco force-pushed the feat/incident-location-types-and-tags-filter branch from e8d4325 to 19b35cc Compare October 18, 2026 10:08
@idormenco
idormenco merged commit 85ae7f3 into main Oct 18, 2026
3 of 4 checks passed
@idormenco
idormenco deleted the feat/incident-location-types-and-tags-filter branch October 18, 2026 10:08

This branch was successfully deployed

1 active deployment
Preview — 19b35cc4 Deployed Oct 18, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant