Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add recounted, voters_recounts and differences fields to api including validation and voters_recounts to frontend #166

Merged
Show file tree
Hide file tree
Changes from 18 commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
1d30a92
WIP
Lionqueen94 Jul 18, 2024
a460dcf
Merge branch 'main' into 110-backend-add-recounted-differences-fields…
Lionqueen94 Jul 18, 2024
221709a
WIP2
Lionqueen94 Jul 19, 2024
c883713
Added openapi updates
Lionqueen94 Jul 19, 2024
b025eb2
Merge branch 'main' into 110-backend-add-recounted-differences-fields…
Lionqueen94 Jul 19, 2024
749b82c
Please review my TODO in PollingStationFormController
Lionqueen94 Jul 19, 2024
2da2da6
Removed console.log statements and added recounted backend validation…
Lionqueen94 Jul 19, 2024
93ab121
Fixed test and added IncorrectTotal check for voters_recounts to mock…
Lionqueen94 Jul 19, 2024
7ff58b8
Added IncorrectTotal error for voters_recounts to mock api
Lionqueen94 Jul 19, 2024
91d0b0f
Merge branch 'main' into 110-backend-add-recounted-differences-fields…
Lionqueen94 Jul 22, 2024
fa9e46c
Added validation check identifiers to backend and removed message and…
Lionqueen94 Jul 22, 2024
439b47f
Backend validation is added, need to add a few more tests
Lionqueen94 Jul 22, 2024
52e9cbe
Finished adding backend validation tests
Lionqueen94 Jul 23, 2024
2121b4b
Merge branch 'main' into 110-backend-add-recounted-differences-fields…
Lionqueen94 Jul 23, 2024
5c9dfca
Merge branch 'main' into 110-backend-add-recounted-differences-fields…
Lionqueen94 Jul 23, 2024
7cfd32c
Added testing for fields to all tests and made sure voters_counts are…
Lionqueen94 Jul 23, 2024
a8a1e3d
Merge branch 'main' into 110-backend-add-recounted-differences-fields…
Lionqueen94 Jul 23, 2024
b5d31a8
Fixes after merge main
Lionqueen94 Jul 23, 2024
cf4c75c
Added more distinction between validation rules for recounted true or…
Lionqueen94 Jul 23, 2024
ed1c100
Renamed differences errorcodes to more understandable codes
Lionqueen94 Jul 23, 2024
c969060
Merge branch 'main' into 110-backend-add-recounted-differences-fields…
Lionqueen94 Jul 25, 2024
2bf7123
Fixed success variable in code and made sure recounted doesn't submit…
Lionqueen94 Jul 25, 2024
8510f9c
Merge branch 'main' into 110-backend-add-recounted-differences-fields…
Lionqueen94 Jul 26, 2024
06b235d
Added all possible validation errors to frontend api mock and added t…
Lionqueen94 Jul 26, 2024
391b71d
Merge branch 'main' into 110-backend-add-recounted-differences-fields…
Lionqueen94 Jul 29, 2024
990e274
Updated page based on Joris' design changes
Lionqueen94 Jul 29, 2024
648bbbf
Fixed wrong error and warning field paths
Lionqueen94 Jul 29, 2024
c3cab01
Fixed recounted title text
Lionqueen94 Jul 29, 2024
e6bda22
Changed incorrect 'votes_recounts' to 'voters_recounts'
Lionqueen94 Jul 30, 2024
55494c4
updates error code mentioned in test name to match use cases doc again
jschuurk-kr Jul 30, 2024
b90d2a8
Processed review comments of Joep
Lionqueen94 Jul 30, 2024
0856417
Merge remote-tracking branch 'origin/110-backend-add-recounted-differ…
Lionqueen94 Jul 30, 2024
f9e20ba
Fix tests for F.13 and W.30
praseodym Jul 30, 2024
2d1d272
Merge remote-tracking branch 'origin/main' into 110-backend-add-recou…
praseodym Jul 31, 2024
e025c3f
Only process warnings when there are no errors
praseodym Jul 31, 2024
aa75f95
Remove repeated suffix
praseodym Jul 31, 2024
d33f6eb
Do not submit `voters_recounts` unless `recounted`
praseodym Jul 31, 2024
c9b3800
Merge branch 'main' into 110-backend-add-recounted-differences-fields…
Lionqueen94 Aug 1, 2024
057ea3a
Merge branch 'main' into 110-backend-add-recounted-differences-fields…
Lionqueen94 Aug 1, 2024
93015c1
Merge branch 'main' into 110-backend-add-recounted-differences-fields…
Lionqueen94 Aug 1, 2024
ca8bea7
Renamed all errors and warnings and adjusted where the check/rule was…
Lionqueen94 Aug 1, 2024
045de9c
Corrected last comments and added check for W.306 in backend
Lionqueen94 Aug 1, 2024
2305533
Added tests for W.304 and W.306 in the backend
Lionqueen94 Aug 2, 2024
0febb3d
Added W.304, W.305 and W.306 to mock api and frontend tests
Lionqueen94 Aug 2, 2024
5101f92
Fixed styling of Feedback element based on Joris notes
Lionqueen94 Aug 2, 2024
042afb8
Merge branch 'main' into 110-backend-add-recounted-differences-fields…
Lionqueen94 Aug 5, 2024
6769ed1
Clear voters_recounts when recounted is set to no
Lionqueen94 Aug 5, 2024
551a017
Merge branch 'main' into 110-backend-add-recounted-differences-fields…
Lionqueen94 Aug 6, 2024
648e7f5
Merge branch 'main' into 110-backend-add-recounted-differences-fields…
Lionqueen94 Aug 6, 2024
03a246e
Merge branch 'main' into 110-backend-add-recounted-differences-fields…
Lionqueen94 Aug 7, 2024
219f7e9
Merge branch 'main' into 110-backend-add-recounted-differences-fields…
Lionqueen94 Aug 8, 2024
6bc986d
Cast u32's to i64's to prevent overflow errors
Lionqueen94 Aug 8, 2024
c60af5f
Merge branch 'main' into 110-backend-add-recounted-differences-fields…
Lionqueen94 Aug 9, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 63 additions & 10 deletions backend/openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -444,43 +444,43 @@
"fewer_ballots_count": {
"type": "integer",
"format": "int32",
"description": "Number of fewer counted ballots (\"Er zijn minder stembiljetten geteld. Noteer hoeveel stembiljetten er minder zijn geteld\")",
"description": "Number of fewer counted ballots (\"Er zijn minder stembiljetten geteld. Hoeveel stembiljetten zijn er minder geteld\")",
"minimum": 0
},
"more_ballots_count": {
"type": "integer",
"format": "int32",
"description": "Number of more counted ballots (\"Er zijn méér stembiljetten geteld. Noteer hoeveel stembiljetten er meer zijn geteld\")",
"description": "Number of more counted ballots (\"Er zijn méér stembiljetten geteld. Hoeveel stembiljetten zijn er meer geteld?\")",
"minimum": 0
},
"no_explanation_count": {
"type": "integer",
"format": "int32",
"description": "Number of no explanations (\"Aantal keren dat er geen verklaring is voor het verschil\")",
"description": "Number of no explanations (\"Hoe vaak is er geen verklaring voor het verschil?\")",
"minimum": 0
},
"other_explanation_count": {
"type": "integer",
"format": "int32",
"description": "Number of other explanations (\"Aantal keren dat er een andere verklaring is voor het verschil\")",
"description": "Number of other explanations (\"Hoe vaak is er een andere verklaring voor het verschil?\")",
"minimum": 0
},
"too_few_ballots_handed_out_count": {
"type": "integer",
"format": "int32",
"description": "Number of fewer ballots handed out (\"Aantal keren dat er een stembiljet te weinig is uitgereikt\")",
"description": "Number of fewer ballots handed out (\"Hoe vaak is er een stembiljet te weinig uitgereikt?\")",
"minimum": 0
},
"too_many_ballots_handed_out_count": {
"type": "integer",
"format": "int32",
"description": "Number of more ballots handed out (\"Aantal keren dat er een stembiljet teveel is uitgereikt\")",
"description": "Number of more ballots handed out (\"Hoe vaak is er een stembiljet te veel uitgereikt?\")",
"minimum": 0
},
"unreturned_ballots_count": {
"type": "integer",
"format": "int32",
"description": "Number of unreturned ballots (\"Aantal keren dat een kiezer het stembiljet niet heeft ingeleverd\")",
"description": "Number of unreturned ballots (\"Hoe vaak heeft een kiezer het stembiljet niet ingeleverd?\")",
"minimum": 0
}
}
Expand Down Expand Up @@ -696,8 +696,9 @@
},
"PollingStationResults": {
"type": "object",
"description": "PollingStationResults, following the fields in\n\"Model N 10-1. Proces-verbaal van een stembureau\"\n<https://wetten.overheid.nl/BWBR0034180/2023-11-01#Bijlage1_DivisieN10.1>",
"description": "PollingStationResults, following the fields in\n\"Model Na 31-2. Proces-verbaal van een gemeentelijk stembureau/stembureau voor het openbaar lichaam\nin een gemeente/openbaar lichaam waar een centrale stemopneming wordt verricht\"\n\"Bijlage 2: uitkomsten per stembureau\"\n<https://wetten.overheid.nl/BWBR0034180/2023-11-01#Bijlage1_DivisieNa31.2",
"required": [
"recounted",
"voters_counts",
"votes_counts",
"differences_counts",
Expand All @@ -712,11 +713,23 @@
"items": {
"$ref": "#/components/schemas/PoliticalGroupVotes"
},
"description": "Vote counts for each candidate in each political group (\"Aantal stemmen per lijst en kandidaat\")"
"description": "Vote counts per list and candidate (5. \"Aantal stemmen per lijst en kandidaat\")"
},
"recounted": {
"type": "boolean",
"description": "Recounted (\"Is er herteld? - See form for official long description of the checkbox\")"
},
"voters_counts": {
"$ref": "#/components/schemas/VotersCounts"
},
"voters_recounts": {
"allOf": [
{
"$ref": "#/components/schemas/VotersRecounts"
}
],
"nullable": true
},
"votes_counts": {
"$ref": "#/components/schemas/VotesCounts"
}
Expand Down Expand Up @@ -756,7 +769,11 @@
"IncorrectTotal",
"AboveThreshold",
"EqualInput",
"IncorrectCandidatesList"
"IncorrectCandidatesList",
"MissingRecounts",
"IncorrectDifference",
"WrongDifferences",
"NoDifference"
]
},
"ValidationResults": {
Expand Down Expand Up @@ -816,6 +833,42 @@
}
}
},
"VotersRecounts": {
"type": "object",
"description": "Voters recounts, part of the polling station results.",
"required": [
"poll_card_recount",
"proxy_certificate_recount",
"voter_card_recount",
"total_admitted_voters_recount"
],
"properties": {
"poll_card_recount": {
"type": "integer",
"format": "int32",
"description": "Number of valid poll cards (\"Aantal geldige stempassen\")",
"minimum": 0
},
"proxy_certificate_recount": {
"type": "integer",
"format": "int32",
"description": "Number of valid proxy certificates (\"Aantal geldige volmachtbewijzen\")",
"minimum": 0
},
"total_admitted_voters_recount": {
"type": "integer",
"format": "int32",
"description": "Total number of admitted voters (\"Totaal aantal toegelaten kiezers\")",
"minimum": 0
},
"voter_card_recount": {
"type": "integer",
"format": "int32",
"description": "Number of valid voter cards (\"Aantal geldige kiezerspassen\")",
"minimum": 0
}
}
},
"VotesCounts": {
"type": "object",
"description": "Votes counts, part of the polling station results.",
Expand Down
1 change: 1 addition & 0 deletions backend/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ pub fn create_openapi() -> utoipa::openapi::OpenApi {
polling_station::PollingStationType,
polling_station::PollingStation,
polling_station::VotersCounts,
polling_station::VotersRecounts,
polling_station::VotesCounts,
),
),
Expand Down
2 changes: 2 additions & 0 deletions backend/src/polling_station/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,7 @@ mod tests {
async fn test_polling_station_data_entry_valid(pool: SqlitePool) {
let mut request_body = DataEntryRequest {
data: PollingStationResults {
recounted: false,
voters_counts: VotersCounts {
poll_card_count: 100, // incorrect
proxy_certificate_count: 1,
Expand All @@ -186,6 +187,7 @@ mod tests {
invalid_votes_count: 2,
total_votes_cast_count: 100,
},
voters_recounts: None,
differences_counts: DifferencesCounts {
more_ballots_count: 0,
fewer_ballots_count: 0,
Expand Down
Loading