From 57f5296e49df6b63c2a8decd12931c3731475c5d Mon Sep 17 00:00:00 2001 From: Josep Jaume Rey Peroy Date: Mon, 18 Jan 2016 12:04:24 +0100 Subject: [PATCH] Feature flag spending proposals --- app/controllers/admin/spending_proposals_controller.rb | 4 ++++ app/controllers/spending_proposals_controller.rb | 6 +++++- app/views/layouts/_header.html.erb | 4 +++- db/seeds.rb | 1 + spec/features/admin/spending_proposals_spec.rb | 5 +++++ 5 files changed, 18 insertions(+), 2 deletions(-) diff --git a/app/controllers/admin/spending_proposals_controller.rb b/app/controllers/admin/spending_proposals_controller.rb index 817de285d..559a7afda 100644 --- a/app/controllers/admin/spending_proposals_controller.rb +++ b/app/controllers/admin/spending_proposals_controller.rb @@ -1,8 +1,12 @@ class Admin::SpendingProposalsController < Admin::BaseController + include FeatureFlags + has_filters %w{unresolved accepted rejected}, only: :index load_and_authorize_resource + feature_flag :spending_proposals + def index @spending_proposals = @spending_proposals.includes([:geozone]).send(@current_filter).order(created_at: :desc).page(params[:page]) end diff --git a/app/controllers/spending_proposals_controller.rb b/app/controllers/spending_proposals_controller.rb index a7871549f..784fdbc2f 100644 --- a/app/controllers/spending_proposals_controller.rb +++ b/app/controllers/spending_proposals_controller.rb @@ -1,8 +1,12 @@ class SpendingProposalsController < ApplicationController + include FeatureFlags + before_action :authenticate_user!, except: [:index] load_and_authorize_resource + feature_flag :spending_proposals + def index end @@ -29,4 +33,4 @@ class SpendingProposalsController < ApplicationController params.require(:spending_proposal).permit(:title, :description, :external_url, :geozone_id, :terms_of_service, :captcha, :captcha_key) end -end \ No newline at end of file +end diff --git a/app/views/layouts/_header.html.erb b/app/views/layouts/_header.html.erb index 467007958..4b160e00a 100644 --- a/app/views/layouts/_header.html.erb +++ b/app/views/layouts/_header.html.erb @@ -39,7 +39,9 @@ <%= link_to t("layouts.header.debates"), debates_path, class: ("active" if controller_name == "debates") %> <% end %> <%= link_to t("layouts.header.proposals"), proposals_path, class: ("active" if controller_name == "proposals") %> - <%= link_to t("layouts.header.spending_proposals"), spending_proposals_path, class: ("active" if controller_name == "spending_proposals") %> + <% if feature?(:spending_proposals) %> + <%= link_to t("layouts.header.spending_proposals"), spending_proposals_path, class: ("active" if controller_name == "spending_proposals") %> + <% end %> <%= link_to t("layouts.header.more_information"), page_path('more_information'), class: ("active" if current_page?("/more_information")) %> <% if Setting['blog_url'] %> <%= link_to Setting['blog_url'], target: "_blank" do %> diff --git a/db/seeds.rb b/db/seeds.rb index 82cb4c67a..6a6ae6671 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -52,3 +52,4 @@ Setting["place_name"] = "Consul-land" # Feature flags Setting['feature.debates'] = true +Setting['feature.spending_proposals'] = true diff --git a/spec/features/admin/spending_proposals_spec.rb b/spec/features/admin/spending_proposals_spec.rb index a355c13ec..7d608d0a5 100644 --- a/spec/features/admin/spending_proposals_spec.rb +++ b/spec/features/admin/spending_proposals_spec.rb @@ -7,6 +7,11 @@ feature 'Admin spending proposals' do login_as(admin.user) end + scenario 'Disabled with a feature flag' do + Setting['feature.spending_proposals'] = nil + expect{ visit admin_spending_proposals_path }.to raise_exception(FeatureFlags::FeatureDisabled) + end + scenario 'Index shows spending proposals' do spending_proposal = create(:spending_proposal) visit admin_spending_proposals_path