From 905136b9e033bdc792be320018811618b6a4526e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Mon, 14 Mar 2016 13:17:29 +0100 Subject: [PATCH 1/7] changes links in 'My activity' to point to comment (instead of to commentable) Closes #947 --- app/helpers/users_helper.rb | 2 +- spec/helpers/users_helper_spec.rb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb index 068c17b71..10da73712 100644 --- a/app/helpers/users_helper.rb +++ b/app/helpers/users_helper.rb @@ -20,7 +20,7 @@ module UsersHelper commentable.title + "".html_safe else - link_to(commentable.title, commentable) + link_to(commentable.title, comment) end end diff --git a/spec/helpers/users_helper_spec.rb b/spec/helpers/users_helper_spec.rb index 2094cea04..f1a72cd36 100644 --- a/spec/helpers/users_helper_spec.rb +++ b/spec/helpers/users_helper_spec.rb @@ -31,9 +31,9 @@ describe UsersHelper do end describe '#comment_commentable_title' do - it "should return a link to the commentable" do + it "should return a link to the comment" do comment = create(:comment) - expect(comment_commentable_title(comment)).to eq link_to comment.commentable.title, comment.commentable + expect(comment_commentable_title(comment)).to eq link_to comment.commentable.title, comment end it "should return a hint if the commentable has been deleted" do From 788ec7b09c1d6b22a256003f0d3861c8dddc62e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Mon, 14 Mar 2016 13:17:46 +0100 Subject: [PATCH 2/7] corrects css ids --- app/views/users/_comments.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/users/_comments.html.erb b/app/views/users/_comments.html.erb index 4a2ca5da7..25bd1fd5b 100644 --- a/app/views/users/_comments.html.erb +++ b/app/views/users/_comments.html.erb @@ -1,6 +1,6 @@ <% @comments.each do |comment| %> - +
<%= comment_commentable_title(comment) %>
From f4f491748f2361a449b8dea3572b75831a1f922d Mon Sep 17 00:00:00 2001 From: kikito Date: Mon, 14 Mar 2016 15:00:49 +0100 Subject: [PATCH 3/7] adds tags to spending proposals in dev_seeds --- db/dev_seeds.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/db/dev_seeds.rb b/db/dev_seeds.rb index 14af135da..ac4695d0f 100644 --- a/db/dev_seeds.rb +++ b/db/dev_seeds.rb @@ -252,6 +252,8 @@ end puts "Creating Spending Proposals" +tags = Faker::Lorem.words(10) + (1..30).each do |i| geozone = Geozone.reorder("RANDOM()").first author = User.reorder("RANDOM()").first @@ -262,6 +264,7 @@ puts "Creating Spending Proposals" description: description, created_at: rand((Time.now - 1.week) .. Time.now), geozone: [geozone, nil].sample, + tag_list: tags.sample(3).join(','), terms_of_service: "1") puts " #{spending_proposal.title}" end @@ -295,4 +298,4 @@ puts "Confirming hiding in debates, comments & proposals" Comment.only_hidden.flagged.reorder("RANDOM()").limit(10).each(&:confirm_hide) Debate.only_hidden.flagged.reorder("RANDOM()").limit(5).each(&:confirm_hide) -Proposal.only_hidden.flagged.reorder("RANDOM()").limit(5).each(&:confirm_hide) \ No newline at end of file +Proposal.only_hidden.flagged.reorder("RANDOM()").limit(5).each(&:confirm_hide) From 769780e2cd928dde0276c26030f984f41b787598 Mon Sep 17 00:00:00 2001 From: kikito Date: Mon, 14 Mar 2016 16:15:13 +0100 Subject: [PATCH 4/7] Implements SpendingProposal.filter_params(params) --- app/models/spending_proposal.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/models/spending_proposal.rb b/app/models/spending_proposal.rb index 27842fa91..237da73f7 100644 --- a/app/models/spending_proposal.rb +++ b/app/models/spending_proposal.rb @@ -35,6 +35,10 @@ class SpendingProposal < ActiveRecord::Base super.try :html_safe end + def self.filter_params(params) + params.select{|x,_| %w{geozone_id administrator_id tag_name valuator_id}.include? x.to_s } + end + def self.search(params, current_filter) results = self results = results.by_geozone(params[:geozone_id]) if params[:geozone_id].present? From 11bcf375d2ef0869c3b0370621fd6ca602c637d4 Mon Sep 17 00:00:00 2001 From: kikito Date: Mon, 14 Mar 2016 16:16:29 +0100 Subject: [PATCH 5/7] Uses SpendingProposal.filter_params in all admin views --- .../admin/spending_proposals/edit.html.erb | 23 ++++++++++--------- .../admin/spending_proposals/index.html.erb | 2 +- .../admin/spending_proposals/show.html.erb | 5 ++-- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/app/views/admin/spending_proposals/edit.html.erb b/app/views/admin/spending_proposals/edit.html.erb index 22510765a..a0fd82a3d 100644 --- a/app/views/admin/spending_proposals/edit.html.erb +++ b/app/views/admin/spending_proposals/edit.html.erb @@ -1,4 +1,4 @@ -<%= link_to admin_spending_proposals_path(@spending_proposal), class: 'back' do %> +<%= link_to admin_spending_proposals_path(@spending_proposal, SpendingProposal.filter_params(params)), class: 'back' do %> <%= t("admin.spending_proposals.show.back") %> <% end %> @@ -6,7 +6,12 @@

<%= t("admin.spending_proposals.edit.classification") %>

-<%= form_for @spending_proposal, url: admin_spending_proposal_path(@spending_proposal) do |f| %> +<%= form_for @spending_proposal, + url: admin_spending_proposal_path(@spending_proposal) do |f| %> + + <% SpendingProposal.filter_params(params).each do |filter_name, filter_value| %> + <%= hidden_field_tag filter_name, filter_value %> + <% end %> <%= f.select(:administrator_id, @admins.collect{ |a| [a.name_and_email, a.id ] }, @@ -24,15 +29,11 @@ placeholder: t("admin.spending_proposals.edit.tags_placeholder"), class: 'js-tag-list' %> -
- <%= f.label :valuator_ids, t("admin.spending_proposals.edit.assigned_valuators") %> + <%= f.label :valuator_ids, t("admin.spending_proposals.edit.assigned_valuators") %> - <%= f.collection_check_boxes :valuator_ids, @valuators, :id, :email do |b| %> -
- <%= b.label(title: b.object.name) { b.check_box + b.text } %> -
- <% end %> -
+ <%= f.collection_check_boxes :valuator_ids, @valuators, :id, :email do |b| %> + <%= b.label(title: b.object.name) { b.check_box + b.text } %> + <% end %>

<%= f.submit(class: "button", value: t("admin.spending_proposals.edit.submit_button")) %> @@ -41,4 +42,4 @@ <% end %>


-<%= render 'valuation/spending_proposals/written_by_valuators' %> \ No newline at end of file +<%= render 'valuation/spending_proposals/written_by_valuators' %> diff --git a/app/views/admin/spending_proposals/index.html.erb b/app/views/admin/spending_proposals/index.html.erb index 83903cc2e..f50dea628 100644 --- a/app/views/admin/spending_proposals/index.html.erb +++ b/app/views/admin/spending_proposals/index.html.erb @@ -37,7 +37,7 @@ <%= spending_proposal.id %>
- <%= link_to spending_proposal.title, admin_spending_proposal_path(spending_proposal) %> + <%= link_to spending_proposal.title, admin_spending_proposal_path(spending_proposal, SpendingProposal.filter_params(params)) %> <% if spending_proposal.administrator.present? %> diff --git a/app/views/admin/spending_proposals/show.html.erb b/app/views/admin/spending_proposals/show.html.erb index 187e53c63..750d8b257 100644 --- a/app/views/admin/spending_proposals/show.html.erb +++ b/app/views/admin/spending_proposals/show.html.erb @@ -1,4 +1,4 @@ -<%= link_to :back, class: 'back' do %> +<%= link_to admin_spending_proposals_path(SpendingProposal.filter_params(params)) do %> <%= t("admin.spending_proposals.show.back") %> <% end %> @@ -8,7 +8,8 @@

<%= link_to t("admin.spending_proposals.show.edit_classification"), - edit_admin_spending_proposal_path(@spending_proposal, anchor: "form") %> + edit_admin_spending_proposal_path(@spending_proposal, + {anchor: 'form'}.merge(SpendingProposal.filter_params(params))) %>

<%= t("admin.spending_proposals.show.assigned_admin") %>: From b44aad0798185068dd62dd165509c86e46d2a48c Mon Sep 17 00:00:00 2001 From: kikito Date: Mon, 14 Mar 2016 16:16:47 +0100 Subject: [PATCH 6/7] Uses SpendingProposal.filter_params in admin/sp controller --- app/controllers/admin/spending_proposals_controller.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/controllers/admin/spending_proposals_controller.rb b/app/controllers/admin/spending_proposals_controller.rb index 3ae4872db..afa24f54c 100644 --- a/app/controllers/admin/spending_proposals_controller.rb +++ b/app/controllers/admin/spending_proposals_controller.rb @@ -21,7 +21,10 @@ class Admin::SpendingProposalsController < Admin::BaseController def update if @spending_proposal.update(spending_proposal_params) - redirect_to admin_spending_proposal_path(@spending_proposal, anchor: 'classification'), notice: t("flash.actions.update.spending_proposal") + path = admin_spending_proposal_path( @spending_proposal, + { anchor: 'classification' }.merge(SpendingProposal.filter_params(params))) + + redirect_to path, notice: t("flash.actions.update.spending_proposal") else render :edit end From 072faf928f15067e995698f66895a43caaa5ae2b Mon Sep 17 00:00:00 2001 From: kikito Date: Mon, 14 Mar 2016 16:58:57 +0100 Subject: [PATCH 7/7] adds specs for preserving filtering params when using the admin links for spending proposals changes the order in which specs are executed for travis another change for travis another change for travis --- .../admin/spending_proposals/edit.html.erb | 2 +- .../features/admin/spending_proposals_spec.rb | 70 +++++++++++++++++-- 2 files changed, 65 insertions(+), 7 deletions(-) diff --git a/app/views/admin/spending_proposals/edit.html.erb b/app/views/admin/spending_proposals/edit.html.erb index a0fd82a3d..67160b926 100644 --- a/app/views/admin/spending_proposals/edit.html.erb +++ b/app/views/admin/spending_proposals/edit.html.erb @@ -1,4 +1,4 @@ -<%= link_to admin_spending_proposals_path(@spending_proposal, SpendingProposal.filter_params(params)), class: 'back' do %> +<%= link_to admin_spending_proposal_path(@spending_proposal, SpendingProposal.filter_params(params)), class: 'back' do %> <%= t("admin.spending_proposals.show.back") %> <% end %> diff --git a/spec/features/admin/spending_proposals_spec.rb b/spec/features/admin/spending_proposals_spec.rb index 6530400c1..fcfec8638 100644 --- a/spec/features/admin/spending_proposals_spec.rb +++ b/spec/features/admin/spending_proposals_spec.rb @@ -66,11 +66,6 @@ feature 'Admin spending proposals' do expect(page).to have_link("Realocate visitors") expect(page).to have_link("Destroy the city") - select "District 9", from: "geozone_id" - - expect(page).to have_link("Realocate visitors") - expect(page).to_not have_link("Destroy the city") - select "All city", from: "geozone_id" expect(page).to have_link("Destroy the city") @@ -79,6 +74,28 @@ feature 'Admin spending proposals' do select "All zones", from: "geozone_id" expect(page).to have_link("Realocate visitors") expect(page).to have_link("Destroy the city") + + select "District 9", from: "geozone_id" + + expect(page).to_not have_link("Destroy the city") + expect(page).to have_link("Realocate visitors") + + click_link("Realocate visitors") + click_link("Back") + + expect(page).to_not have_link("Destroy the city") + expect(page).to have_link("Realocate visitors") + + click_link("Realocate visitors") + click_on("Edit classification") + expect(page).to have_button("Update") + click_on("Back") + expect(page).to_not have_button("Update") + click_on("Back") + + expect(page).to_not have_link("Destroy the city") + expect(page).to have_link("Realocate visitors") + end scenario "Filtering by admin", :js do @@ -94,13 +111,36 @@ feature 'Admin spending proposals' do select "Admin 1", from: "administrator_id" - expect(page).to have_link("Realocate visitors") + expect(page).to have_content('There is 1 spending proposal') expect(page).to_not have_link("Destroy the city") + expect(page).to have_link("Realocate visitors") select "All administrators", from: "administrator_id" + expect(page).to have_content('There are 2 spending proposals') expect(page).to have_link("Destroy the city") expect(page).to have_link("Realocate visitors") + + select "Admin 1", from: "administrator_id" + expect(page).to have_content('There is 1 spending proposal') + click_link("Realocate visitors") + click_link("Back") + + expect(page).to have_content('There is 1 spending proposal') + expect(page).to_not have_link("Destroy the city") + expect(page).to have_link("Realocate visitors") + + click_link("Realocate visitors") + click_on("Edit classification") + expect(page).to have_button("Update") + click_on("Back") + expect(page).to_not have_button("Update") + click_on("Back") + + expect(page).to have_content('There is 1 spending proposal') + expect(page).to_not have_link("Destroy the city") + expect(page).to have_link("Realocate visitors") + end scenario "Current filter is properly highlighted" do @@ -183,10 +223,28 @@ feature 'Admin spending proposals' do visit admin_spending_proposals_path(tag_name: 'Education') + expect(page).to_not have_content("More hospitals") expect(page).to have_css(".spending_proposal", count: 2) expect(page).to have_content("Educate the children") expect(page).to have_content("More schools") + + click_link("Educate the children") + click_link("Back") + expect(page).to_not have_content("More hospitals") + expect(page).to have_content("Educate the children") + expect(page).to have_content("More schools") + + click_link("Educate the children") + click_on("Edit classification") + expect(page).to have_button("Update") + click_on("Back") + expect(page).to_not have_button("Update") + click_on("Back") + + expect(page).to_not have_content("More hospitals") + expect(page).to have_content("Educate the children") + expect(page).to have_content("More schools") end end