Commit Graph

5 Commits

Author SHA1 Message Date
taitus
a29eeaf2e2 Add option_id to partial results and unique index
Similar to what we did in PR "Avoid duplicate records in poll answers" 5539,
specifically in commit 503369166, we want to stop relying on the plain text
"answer" and start using "option_id" to avoid issues with counts across
translations and to add consistency to the poll_partial_results table.

Note that we also moved the `possible_answers` method from Poll::Question to
Poll::Question::Option, since the list of valid answers really comes from the
options of a question and not from the question itself. Tests were updated
to validate answers against the translations of the assigned option.

Additionally, we renamed lambda parameters in validations to improve clarity.
2025-09-26 15:05:34 +02:00
taitus
e3e475b4df Add votes_for(option) method and simplify results template
Move the summing logic from the template into the component. Introduce
a votes_for(option) method that looks up grouped partial results and
returns the total amount or 0.
2025-09-26 09:59:10 +02:00
taitus
7565fc5fc2 Remove redundant by_question grouping in Admin::Poll::Results::QuestionComponent
Stop grouping partial results by question_id inside the component.

Note that group_by on an empty collection already returns
an empty hash, so the previous "|| {}" is not needed.
2025-09-26 09:59:08 +02:00
taitus
7996933fc2 Extract by_answer variable to component method 2025-09-26 09:58:20 +02:00
taitus
7f376c3005 Extract admin poll results to component
Note that we have the same code in the officing section.
Then we can use the same component.

Note also that we are removing the parts of the system specs that are now
covered by the component itself, and taking the chance to unify tests.
In these removals and unifications we take into account that there are
other specs which already cover user interaction in this section.
2025-09-26 09:58:17 +02:00