From 00eec532a6eb14636ea77f52be5608fff81d1236 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Wed, 24 Feb 2016 18:50:39 +0100 Subject: [PATCH] removes resolution status from spending proposals --- .../admin/spending_proposals_controller.rb | 4 +- app/models/spending_proposal.rb | 42 +------ .../admin/spending_proposals/index.html.erb | 18 --- .../admin/spending_proposals/show.html.erb | 19 --- app/views/spending_proposals/show.html.erb | 5 - config/locales/admin.en.yml | 6 - config/locales/admin.es.yml | 6 - .../features/admin/spending_proposals_spec.rb | 114 ------------------ spec/models/spending_proposal_spec.rb | 112 ----------------- 9 files changed, 3 insertions(+), 323 deletions(-) diff --git a/app/controllers/admin/spending_proposals_controller.rb b/app/controllers/admin/spending_proposals_controller.rb index 559a7afda..3e0be1bf5 100644 --- a/app/controllers/admin/spending_proposals_controller.rb +++ b/app/controllers/admin/spending_proposals_controller.rb @@ -1,14 +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]) + @spending_proposals = @spending_proposals.includes([:geozone], [administrator: :user]).order(created_at: :desc).page(params[:page]) end def show diff --git a/app/models/spending_proposal.rb b/app/models/spending_proposal.rb index c023f83f4..f51ef9fd5 100644 --- a/app/models/spending_proposal.rb +++ b/app/models/spending_proposal.rb @@ -4,8 +4,6 @@ class SpendingProposal < ActiveRecord::Base apply_simple_captcha - RESOLUTIONS = ["accepted", "rejected"] - belongs_to :author, -> { with_hidden }, class_name: 'User', foreign_key: 'author_id' belongs_to :geozone @@ -15,42 +13,10 @@ class SpendingProposal < ActiveRecord::Base validates :title, length: { in: 4..SpendingProposal.title_max_length } validates :description, length: { maximum: SpendingProposal.description_max_length } - validates :resolution, inclusion: { in: RESOLUTIONS, allow_nil: true } validates :terms_of_service, acceptance: { allow_nil: false }, on: :create - scope :accepted, -> { where(resolution: "accepted") } - scope :rejected, -> { where(resolution: "rejected") } - scope :unresolved, -> { where(resolution: nil) } - - def accept - update_attribute(:resolution, "accepted") - end - - def reject - update_attribute(:resolution, "rejected") - end - - def accepted? - resolution == "accepted" - end - - def rejected? - resolution == "rejected" - end - - def unresolved? - resolution.blank? - end - - def legality - case legal - when true - "legal" - when false - "not_legal" - else - "undefined" - end + def description + super.try :html_safe end def feasibility @@ -64,8 +30,4 @@ class SpendingProposal < ActiveRecord::Base end end - def description - super.try :html_safe - end - end diff --git a/app/views/admin/spending_proposals/index.html.erb b/app/views/admin/spending_proposals/index.html.erb index 2b8cb639e..a0ed583cc 100644 --- a/app/views/admin/spending_proposals/index.html.erb +++ b/app/views/admin/spending_proposals/index.html.erb @@ -1,7 +1,5 @@

<%= t("admin.spending_proposals.index.title") %>

-<%= render 'shared/filter_subnav', i18n_namespace: "admin.spending_proposals.index" %> -

<%= page_entries_info @spending_proposals %>

@@ -14,22 +12,6 @@ - <% end %>
<%= geozone_name(spending_proposal) %> - <% unless spending_proposal.accepted? %> - <%= link_to t("admin.spending_proposals.actions.accept"), - accept_admin_spending_proposal_path(spending_proposal, request.query_parameters), - method: :put, - data: { confirm: t("admin.actions.confirm") }, - class: "button radius tiny success no-margin" %> - <% end %> - <% unless spending_proposal.rejected? %> - <%= link_to t("admin.spending_proposals.actions.reject"), - reject_admin_spending_proposal_path(spending_proposal, request.query_parameters), - method: :put, - data: { confirm: t("admin.actions.confirm") }, - class: "button radius tiny warning right" %> - <% end %> -
diff --git a/app/views/admin/spending_proposals/show.html.erb b/app/views/admin/spending_proposals/show.html.erb index 4d3b57935..016c5e630 100644 --- a/app/views/admin/spending_proposals/show.html.erb +++ b/app/views/admin/spending_proposals/show.html.erb @@ -15,30 +15,11 @@

<%= t("admin.spending_proposals.show.geozone") %>: <%= geozone_name(@spending_proposal) %>

-

<%= l @spending_proposal.created_at, format: :datetime %>

- -

- <% unless @spending_proposal.accepted? %> - <%= link_to t("admin.spending_proposals.actions.accept"), - accept_admin_spending_proposal_path(@spending_proposal), - method: :put, - data: { confirm: t("admin.actions.confirm") }, - class: "button radius tiny success no-margin" %> - <% end %> - <% unless @spending_proposal.rejected? %> - <%= link_to t("admin.spending_proposals.actions.reject"), - reject_admin_spending_proposal_path(@spending_proposal), - method: :put, - data: { confirm: t("admin.actions.confirm") }, - class: "button radius tiny warning" %> - <% end %>

<%= t("admin.spending_proposals.show.dossier") %>:

<%= t("admin.spending_proposals.show.price") %>: <%= @spending_proposal.price %>

-

<%= t("admin.spending_proposals.show.legality") %>: <%= t("admin.spending_proposals.show.#{@spending_proposal.legality}") %>

<%= t("admin.spending_proposals.show.feasibility") %>: <%= t("admin.spending_proposals.show.#{@spending_proposal.feasibility}") %>

-<%= safe_html_with_links(@spending_proposal.explanation.html_safe) if @spending_proposal.explanation %> diff --git a/app/views/spending_proposals/show.html.erb b/app/views/spending_proposals/show.html.erb index 95432fba9..987118a6a 100644 --- a/app/views/spending_proposals/show.html.erb +++ b/app/views/spending_proposals/show.html.erb @@ -23,11 +23,6 @@ <% end %> - <% if @spending_proposal.resolution.present? %> -
- <%= @spending_proposal.resolution %> -
- <% end %> diff --git a/config/locales/admin.en.yml b/config/locales/admin.en.yml index 1711c9221..6f90446d7 100755 --- a/config/locales/admin.en.yml +++ b/config/locales/admin.en.yml @@ -137,9 +137,6 @@ en: button: Search placeholder: Search user by name or email' spending_proposals: - actions: - accept: Accept - reject: Reject index: filter: Filter filters: @@ -153,9 +150,6 @@ en: geozone: Scope dossier: Dossier price: Price - legality: Legality - legal: Legal - not_legal: Not legal feasibility: Feasibility feasible: Feasible not_feasible: Not feasible diff --git a/config/locales/admin.es.yml b/config/locales/admin.es.yml index 4ccdba39e..5a1ecafab 100644 --- a/config/locales/admin.es.yml +++ b/config/locales/admin.es.yml @@ -137,9 +137,6 @@ es: button: Buscar placeholder: Buscar usuario por nombre o email spending_proposals: - actions: - accept: Aceptar - reject: Rechazar index: filter: Filtro filters: @@ -153,9 +150,6 @@ es: geozone: Ámbito dossier: Informe price: Coste - legality: Legalidad - legal: Legal - not_legal: No legal feasibility: Viabilidad feasible: Viable not_feasible: No viable diff --git a/spec/features/admin/spending_proposals_spec.rb b/spec/features/admin/spending_proposals_spec.rb index 3b619dc3e..5f2527fe4 100644 --- a/spec/features/admin/spending_proposals_spec.rb +++ b/spec/features/admin/spending_proposals_spec.rb @@ -19,97 +19,12 @@ feature 'Admin spending proposals' do expect(page).to have_content(spending_proposal.title) end - scenario 'Accept from index' do - spending_proposal = create(:spending_proposal) - visit admin_spending_proposals_path - - click_link 'Accept' - - expect(page).to_not have_content(spending_proposal.title) - - click_link 'Accepted' - expect(page).to have_content(spending_proposal.title) - - expect(spending_proposal.reload).to be_accepted - end - - scenario 'Reject from index' do - spending_proposal = create(:spending_proposal) - visit admin_spending_proposals_path - - click_link 'Reject' - - expect(page).to_not have_content(spending_proposal.title) - - click_link('Rejected') - expect(page).to have_content(spending_proposal.title) - - expect(spending_proposal.reload).to be_rejected - end - - scenario "Current filter is properly highlighted" do - visit admin_spending_proposals_path - expect(page).to_not have_link('Unresolved') - expect(page).to have_link('Accepted') - expect(page).to have_link('Rejected') - - visit admin_spending_proposals_path(filter: 'unresolved') - expect(page).to_not have_link('Unresolved') - expect(page).to have_link('Accepted') - expect(page).to have_link('Rejected') - - visit admin_spending_proposals_path(filter: 'accepted') - expect(page).to have_link('Unresolved') - expect(page).to_not have_link('Accepted') - expect(page).to have_link('Rejected') - - visit admin_spending_proposals_path(filter: 'rejected') - expect(page).to have_link('Accepted') - expect(page).to have_link('Unresolved') - expect(page).to_not have_link('Rejected') - end - - scenario "Filtering proposals" do - create(:spending_proposal, title: "Recent spending proposal") - create(:spending_proposal, title: "Good spending proposal", resolution: "accepted") - create(:spending_proposal, title: "Bad spending proposal", resolution: "rejected") - - visit admin_spending_proposals_path(filter: 'unresolved') - expect(page).to have_content('Recent spending proposal') - expect(page).to_not have_content('Good spending proposal') - expect(page).to_not have_content('Bad spending proposal') - - visit admin_spending_proposals_path(filter: 'accepted') - expect(page).to have_content('Good spending proposal') - expect(page).to_not have_content('Recent spending proposal') - expect(page).to_not have_content('Bad spending proposal') - - visit admin_spending_proposals_path(filter: 'rejected') - expect(page).to have_content('Bad spending proposal') - expect(page).to_not have_content('Good spending proposal') - expect(page).to_not have_content('Recent spending proposal') - end - - scenario "Action links remember the pagination setting and the filter" do - per_page = Kaminari.config.default_per_page - (per_page + 2).times { create(:spending_proposal, resolution: "accepted") } - - visit admin_spending_proposals_path(filter: 'accepted', page: 2) - - click_on('Reject', match: :first, exact: true) - - expect(current_url).to include('filter=accepted') - expect(current_url).to include('page=2') - end - scenario 'Show' do spending_proposal = create(:spending_proposal, geozone: create(:geozone), association_name: 'People of the neighbourhood', price: 1234.56, - legal: true, feasible: false, - explanation: "It's impossible") visit admin_spending_proposals_path click_link spending_proposal.title @@ -120,37 +35,8 @@ feature 'Admin spending proposals' do expect(page).to have_content(spending_proposal.association_name) expect(page).to have_content(spending_proposal.geozone.name) expect(page).to have_content("1234.56") - expect(page).to have_content("Legal") expect(page).to have_content("Not feasible") expect(page).to have_content("It's impossible") end - scenario 'Accept from show' do - spending_proposal = create(:spending_proposal) - visit admin_spending_proposal_path(spending_proposal) - - click_link 'Accept' - - expect(page).to_not have_content(spending_proposal.title) - - click_link 'Accepted' - expect(page).to have_content(spending_proposal.title) - - expect(spending_proposal.reload).to be_accepted - end - - scenario 'Reject from show' do - spending_proposal = create(:spending_proposal) - visit admin_spending_proposal_path(spending_proposal) - - click_link 'Reject' - - expect(page).to_not have_content(spending_proposal.title) - - click_link('Rejected') - expect(page).to have_content(spending_proposal.title) - - expect(spending_proposal.reload).to be_rejected - end - end diff --git a/spec/models/spending_proposal_spec.rb b/spec/models/spending_proposal_spec.rb index 3d12b9489..d0b6973a4 100644 --- a/spec/models/spending_proposal_spec.rb +++ b/spec/models/spending_proposal_spec.rb @@ -43,23 +43,6 @@ describe SpendingProposal do end describe "dossier info" do - describe "#legality" do - it "can be legal" do - spending_proposal.legal = true - expect(spending_proposal.legality).to eq "legal" - end - - it "can be not-legal" do - spending_proposal.legal = false - expect(spending_proposal.legality).to eq "not_legal" - end - - it "can be undefined" do - spending_proposal.legal = nil - expect(spending_proposal.legality).to eq "undefined" - end - end - describe "#feasibility" do it "can be feasible" do spending_proposal.feasible = true @@ -78,99 +61,4 @@ describe SpendingProposal do end end - describe "resolution status" do - it "should be valid" do - spending_proposal.resolution = "accepted" - expect(spending_proposal).to be_valid - spending_proposal.resolution = "rejected" - expect(spending_proposal).to be_valid - spending_proposal.resolution = "wrong" - expect(spending_proposal).to_not be_valid - end - - it "can be accepted" do - spending_proposal.accept - expect(spending_proposal.reload.resolution).to eq("accepted") - end - - it "can be rejected" do - spending_proposal.reject - expect(spending_proposal.reload.resolution).to eq("rejected") - end - - describe "#accepted?" do - it "should be true if resolution equals 'accepted'" do - spending_proposal.resolution = "accepted" - expect(spending_proposal.accepted?).to eq true - end - - it "should be false otherwise" do - spending_proposal.resolution = "rejected" - expect(spending_proposal.accepted?).to eq false - spending_proposal.resolution = nil - expect(spending_proposal.accepted?).to eq false - end - end - - describe "#rejected?" do - it "should be true if resolution equals 'rejected'" do - spending_proposal.resolution = "rejected" - expect(spending_proposal.rejected?).to eq true - end - - it "should be false otherwise" do - spending_proposal.resolution = "accepted" - expect(spending_proposal.rejected?).to eq false - spending_proposal.resolution = nil - expect(spending_proposal.rejected?).to eq false - end - end - - describe "#unresolved?" do - it "should be true if resolution is blank" do - spending_proposal.resolution = nil - expect(spending_proposal.unresolved?).to eq true - end - - it "should be false otherwise" do - spending_proposal.resolution = "accepted" - expect(spending_proposal.unresolved?).to eq false - spending_proposal.resolution = "rejected" - expect(spending_proposal.unresolved?).to eq false - end - end - end - - describe "scopes" do - before(:each) do - 2.times { create(:spending_proposal, resolution: "accepted") } - 2.times { create(:spending_proposal, resolution: "rejected") } - 2.times { create(:spending_proposal, resolution: nil) } - end - - describe "unresolved" do - it "should return all spending proposals without resolution" do - unresolved = SpendingProposal.all.unresolved - expect(unresolved.size).to eq(2) - unresolved.each {|u| expect(u.resolution).to be_nil} - end - end - - describe "accepted" do - it "should return all accepted spending proposals" do - accepted = SpendingProposal.all.accepted - expect(accepted.size).to eq(2) - accepted.each {|a| expect(a.resolution).to eq("accepted")} - end - end - - describe "rejected" do - it "should return all rejected spending proposals" do - rejected = SpendingProposal.all.rejected - expect(rejected.size).to eq(2) - rejected.each {|r| expect(r.resolution).to eq("rejected")} - end - end - end - end