diff --git a/app/controllers/admin/poll/questions_controller.rb b/app/controllers/admin/poll/questions_controller.rb index ed39862b2..769a7998c 100644 --- a/app/controllers/admin/poll/questions_controller.rb +++ b/app/controllers/admin/poll/questions_controller.rb @@ -6,7 +6,7 @@ class Admin::Poll::QuestionsController < Admin::Poll::BaseController load_and_authorize_resource :question, class: "Poll::Question" def index - @polls = Poll.all + @polls = Poll.not_budget @search = search_params[:search] @questions = @questions.search(search_params).page(params[:page]).order("created_at DESC") diff --git a/app/models/poll.rb b/app/models/poll.rb index 7b04f45ec..9d706b020 100644 --- a/app/models/poll.rb +++ b/app/models/poll.rb @@ -34,6 +34,7 @@ class Poll < ActiveRecord::Base scope :published, -> { where("published = ?", true) } scope :by_geozone_id, ->(geozone_id) { where(geozones: {id: geozone_id}.joins(:geozones)) } scope :public_for_api, -> { all } + scope :not_budget, -> { where(budget_id: nil) } scope :sort_for_list, -> { order(:geozone_restricted, :starts_at, :name) } diff --git a/spec/features/budget_polls/questions_spec.rb b/spec/features/budget_polls/questions_spec.rb new file mode 100644 index 000000000..5e320573b --- /dev/null +++ b/spec/features/budget_polls/questions_spec.rb @@ -0,0 +1,22 @@ +require "rails_helper" + +feature "Poll Questions" do + + before do + admin = create(:administrator).user + login_as(admin) + end + + scenario "Do not display polls associated to a budget" do + budget = create(:budget) + + poll1 = create(:poll, name: "Citizen Proposal Poll") + poll2 = create(:poll, budget: budget, name: "Participatory Budget Poll") + + visit admin_questions_path + + expect(page).to have_select("poll_id", text: "Citizen Proposal Poll") + expect(page).not_to have_select("poll_id", text: "Participatory Budget Poll") + end + +end diff --git a/spec/models/poll/poll_spec.rb b/spec/models/poll/poll_spec.rb index ced234dd7..85f9e5877 100644 --- a/spec/models/poll/poll_spec.rb +++ b/spec/models/poll/poll_spec.rb @@ -258,4 +258,24 @@ describe Poll do end + context "scopes" do + + describe "#not_budget" do + + it "returns polls not associated to a budget" do + budget = create(:budget) + + poll1 = create(:poll) + poll2 = create(:poll) + poll3 = create(:poll, budget: budget) + + expect(Poll.not_budget).to include(poll1) + expect(Poll.not_budget).to include(poll2) + expect(Poll.not_budget).not_to include(poll3) + end + + end + + end + end