diff --git a/app/assets/stylesheets/proposal.scss b/app/assets/stylesheets/proposal.scss index 632cc906c..cbab50295 100644 --- a/app/assets/stylesheets/proposal.scss +++ b/app/assets/stylesheets/proposal.scss @@ -126,14 +126,10 @@ padding-right: 10pt; .counter-value { - font-size: 1.2rem; - font-weight: bold; text-align: center; } .counter-label { - color: #c5c5c5; - font-weight: bold; text-align: center; } } @@ -154,6 +150,16 @@ border-right: 1px solid lightgray; } + .counter-value { + font-size: 1.2rem; + font-weight: bold; + } + + .counter-label { + color: #c5c5c5; + font-weight: bold; + } + .proposal-link { flex-grow: 1; .button { diff --git a/app/controllers/proposals_dashboard_controller.rb b/app/controllers/proposals_dashboard_controller.rb index c597637af..861a457bf 100644 --- a/app/controllers/proposals_dashboard_controller.rb +++ b/app/controllers/proposals_dashboard_controller.rb @@ -1,5 +1,5 @@ class ProposalsDashboardController < Dashboard::BaseController - helper_method :proposal_dashboard_action + helper_method :proposal_dashboard_action, :next_goal_supports def index authorize! :dashboard, proposal @@ -61,4 +61,8 @@ class ProposalsDashboardController < Dashboard::BaseController def proposal_dashboard_action @proposal_dashboard_action ||= ProposalDashboardAction.find(params[:id]) end + + def next_goal_supports + ProposalDashboardAction.next_goal_for(proposal)&.required_supports || Setting["votes_for_proposal_success"] + end end diff --git a/app/models/proposal_dashboard_action.rb b/app/models/proposal_dashboard_action.rb index 8de7eb4a5..dcf08331c 100644 --- a/app/models/proposal_dashboard_action.rb +++ b/app/models/proposal_dashboard_action.rb @@ -52,6 +52,18 @@ class ProposalDashboardAction < ActiveRecord::Base .where('day_offset <= ?', (Date.today - published_at).to_i) end + def self.next_goal_for(proposal) + published_at = proposal.published_at&.to_date || Date.today + + active + .where( + '(required_supports > ? or day_offset > ?)', + proposal.votes_for.size, + (Date.today - published_at).to_i) + .order(required_supports: :asc) + &.first + end + default_scope { order(order: :asc, title: :asc) } def request_to_administrators? diff --git a/app/views/layouts/dashboard/_proposal_totals.html.erb b/app/views/layouts/dashboard/_proposal_totals.html.erb index 43af6c724..d2b76a4a3 100644 --- a/app/views/layouts/dashboard/_proposal_totals.html.erb +++ b/app/views/layouts/dashboard/_proposal_totals.html.erb @@ -22,6 +22,11 @@