Create reports
This table will store which reports (stats, results, ...) will be shown for a certain process (polls, budgets, ...). Note Rails fails to save a poll and its report when both are new records if we add a `validate :process, presence: true` rule. Since it caused a lot of trouble when creating records for tests during factories rule completely. Instead, I've created the `results_enabled=` and `stats_enabled=` methods, so tests are easier to set up, while also automatically creating a report if it doesn't already exist. This also decouples form structure and database implemenation. Originally I named this table `enabled_reports` and instead of having `stats` and `results` columns, it had an `enabled` column and a `kind` column, which would be set to "stats" or "results". However, although that table would allow us to add arbitrary reports easily, I found the way we had to handle the `has_many` relationship was a bit too complex.
This commit is contained in:
@@ -15,8 +15,7 @@ class Dashboard::PollsController < Dashboard::BaseController
|
||||
def create
|
||||
authorize! :manage_polls, proposal
|
||||
|
||||
@poll = Poll.new(poll_params.merge(author: current_user, related: proposal,
|
||||
stats_enabled: false))
|
||||
@poll = Poll.new(poll_params.merge(author: current_user, related: proposal))
|
||||
if @poll.save
|
||||
redirect_to proposal_dashboard_polls_path(proposal), notice: t("flash.actions.create.poll")
|
||||
else
|
||||
@@ -54,7 +53,7 @@ class Dashboard::PollsController < Dashboard::BaseController
|
||||
end
|
||||
|
||||
def poll_attributes
|
||||
[:name, :starts_at, :ends_at, :description, :results_enabled, :stats_enabled,
|
||||
[:name, :starts_at, :ends_at, :description, :results_enabled,
|
||||
questions_attributes: question_attributes]
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user