This rule was added in rubocop-rails 2.33. At first, I wasn't very fond of this rule. It made the code less readable even if it improved performace in some cases. Then I realized that in the `Admin::MachineLearning::SettingComponent` we were using `find_by` when we should be using `find_by!` instead, and we detected that thanks to this rule. So, only for that reason, I'm adding this rule, but I'm fine if we remove it.
42 lines
1.2 KiB
Ruby
42 lines
1.2 KiB
Ruby
class Dashboard::SuccessfulSupportsController < Dashboard::BaseController
|
|
include Dashboard::ExpectsDateRange
|
|
include Dashboard::GroupSupports
|
|
|
|
def index
|
|
authorize! :dashboard, proposal
|
|
render json: accumulated_grouped_supports
|
|
end
|
|
|
|
private
|
|
|
|
def accumulated_grouped_supports
|
|
grouped_votes = grouped_supports(:voted_at)
|
|
grouped_votes = fill_holes(grouped_votes)
|
|
accumulate_supports(grouped_votes)
|
|
end
|
|
|
|
def supports
|
|
return [] if successful_proposal.nil?
|
|
|
|
Vote
|
|
.select("created_at + interval '#{days_diff} day' voted_at, *")
|
|
.where(votable: successful_proposal)
|
|
.where("created_at + interval '#{days_diff} day' between ? and ?",
|
|
start_date.beginning_of_day, end_date.end_of_day)
|
|
.order(created_at: :asc)
|
|
end
|
|
|
|
def successful_proposal
|
|
return @successful_proposal if defined?(@successful_proposal)
|
|
|
|
@successful_proposal = Proposal.find_by(id: Setting["proposals.successful_proposal_id"])
|
|
end
|
|
|
|
def days_diff
|
|
return 0 if successful_proposal.nil?
|
|
return 0 if proposal.published_at.nil?
|
|
|
|
(proposal.published_at.to_date - successful_proposal.published_at.to_date).to_i
|
|
end
|
|
end
|