Bugfixing and enhancements
* Fixed common ability: Retired draft proposal can't be published. * Fixed proposal dashboard view: progress graph is not available for draft proposals.
This commit is contained in:
@@ -17,7 +17,7 @@ module Abilities
|
||||
proposal.editable_by?(user)
|
||||
end
|
||||
can :publish, Proposal do |proposal|
|
||||
proposal.draft? && proposal.author.id == user.id
|
||||
proposal.draft? && proposal.author.id == user.id && !proposal.retired?
|
||||
end
|
||||
can :dashboard, Proposal do |proposal|
|
||||
proposal.author.id == user.id
|
||||
|
||||
@@ -1,37 +1,39 @@
|
||||
<% content_for :action_title, t("dashboard.progress.title") %>
|
||||
<% if proposal.published? %>
|
||||
<% content_for :action_title, t("dashboard.progress.title") %>
|
||||
|
||||
<div class="row">
|
||||
<div class="small-12 column">
|
||||
<div class="button-group">
|
||||
<%= link_to t("dashboard.progress.group_by_date"),
|
||||
progress_proposal_dashboard_index_path(proposal),
|
||||
class: "button #{daily_selected_class}" %>
|
||||
<%= link_to t("dashboard.progress.group_by_week"),
|
||||
progress_proposal_dashboard_index_path(proposal, group_by: 'week'),
|
||||
class: "button #{weekly_selected_class}" %>
|
||||
<%= link_to t("dashboard.progress.group_by_month"),
|
||||
progress_proposal_dashboard_index_path(proposal, group_by: 'month'),
|
||||
class: "button #{monthly_selected_class}" %>
|
||||
<div class="row">
|
||||
<div class="small-12 column">
|
||||
<div class="button-group">
|
||||
<%= link_to t("dashboard.progress.group_by_date"),
|
||||
progress_proposal_dashboard_index_path(proposal),
|
||||
class: "button #{daily_selected_class}" %>
|
||||
<%= link_to t("dashboard.progress.group_by_week"),
|
||||
progress_proposal_dashboard_index_path(proposal, group_by: 'week'),
|
||||
class: "button #{weekly_selected_class}" %>
|
||||
<%= link_to t("dashboard.progress.group_by_month"),
|
||||
progress_proposal_dashboard_index_path(proposal, group_by: 'month'),
|
||||
class: "button #{monthly_selected_class}" %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="small-12 column">
|
||||
<div id="proposal-graph"
|
||||
data-proposal-graph-url="<%= proposal_dashboard_supports_path(proposal, format: :json) %>"
|
||||
data-successful-proposal-graph-url="<%= proposal_dashboard_successful_supports_path(proposal, format: :json) %>"
|
||||
data-proposal-achievements-url="<%= proposal_dashboard_achievements_path(proposal, format: :json) %>"
|
||||
data-proposal-graph-group-by="<%= params[:group_by] %>"
|
||||
data-proposal-graph-progress-label="<%= t("dashboard.progress.progress") %>"
|
||||
data-proposal-graph-supports-label="<%= t("dashboard.progress.supports") %>"
|
||||
data-proposal-graph-success-label="<%= t("dashboard.progress.success") %>"
|
||||
data-proposal-success="<%= Setting["votes_for_proposal_success"] %>"
|
||||
data-proposal-resources-url="<%= proposal_dashboard_resources_path(proposal, format: :json) %>"
|
||||
class="c3 proposal-graph"
|
||||
style="max-height: 320px; position: relative;"></div>
|
||||
</div>
|
||||
<div class="small-12 column">
|
||||
<div id="proposal-graph"
|
||||
data-proposal-graph-url="<%= proposal_dashboard_supports_path(proposal, format: :json) %>"
|
||||
data-successful-proposal-graph-url="<%= proposal_dashboard_successful_supports_path(proposal, format: :json) %>"
|
||||
data-proposal-achievements-url="<%= proposal_dashboard_achievements_path(proposal, format: :json) %>"
|
||||
data-proposal-graph-group-by="<%= params[:group_by] %>"
|
||||
data-proposal-graph-progress-label="<%= t("dashboard.progress.progress") %>"
|
||||
data-proposal-graph-supports-label="<%= t("dashboard.progress.supports") %>"
|
||||
data-proposal-graph-success-label="<%= t("dashboard.progress.success") %>"
|
||||
data-proposal-success="<%= Setting["votes_for_proposal_success"] %>"
|
||||
data-proposal-resources-url="<%= proposal_dashboard_resources_path(proposal, format: :json) %>"
|
||||
class="c3 proposal-graph"
|
||||
style="max-height: 320px; position: relative;"></div>
|
||||
</div>
|
||||
|
||||
<%= javascript_include_tag 'dashboard_graphs', 'data-turbolinks-track' => true %>
|
||||
<%= javascript_include_tag 'dashboard_graphs', 'data-turbolinks-track' => true %>
|
||||
<% end %>
|
||||
|
||||
<%= render 'next_goal' %>
|
||||
<%= render 'recommended_actions' %>
|
||||
|
||||
@@ -187,10 +187,12 @@ describe Abilities::Common do
|
||||
|
||||
describe 'publishing proposals' do
|
||||
let(:draft_own_proposal) { create(:proposal, :draft, author: user) }
|
||||
let(:retired_proposal) { create(:proposal, :draft, :retired, author: user) }
|
||||
|
||||
it { should be_able_to(:publish, draft_own_proposal) }
|
||||
it { should_not be_able_to(:publish, own_proposal) }
|
||||
it { should_not be_able_to(:publish, proposal) }
|
||||
it { should_not be_able_to(:publish, retired_proposal) }
|
||||
end
|
||||
|
||||
describe "when level 2 verified" do
|
||||
|
||||
Reference in New Issue
Block a user