From 07b99bb0171f8c666a2580c61f855da2b9038cf8 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Mon, 7 Mar 2016 18:35:26 +0100 Subject: [PATCH] adds administrator to spending proposal --- .../admin/spending_proposals_controller.rb | 3 ++- app/views/admin/spending_proposals/edit.html.erb | 7 +++++++ app/views/admin/spending_proposals/show.html.erb | 4 +--- spec/features/admin/spending_proposals_spec.rb | 13 +++++++++++++ 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/app/controllers/admin/spending_proposals_controller.rb b/app/controllers/admin/spending_proposals_controller.rb index f3126b061..5eb28d5b7 100644 --- a/app/controllers/admin/spending_proposals_controller.rb +++ b/app/controllers/admin/spending_proposals_controller.rb @@ -17,6 +17,7 @@ class Admin::SpendingProposalsController < Admin::BaseController def edit @spending_proposal = SpendingProposal.find(params[:id]) + @admins = Administrator.includes(:user).all @tags = ActsAsTaggableOn::Tag.where('taggings.taggable_type' => 'SpendingProposal').includes(:taggings) end @@ -43,7 +44,7 @@ class Admin::SpendingProposalsController < Admin::BaseController private def spending_proposal_params - params.require(:spending_proposal).permit(:tag_list) + params.require(:spending_proposal).permit(:administrator_id, :tag_list) end end diff --git a/app/views/admin/spending_proposals/edit.html.erb b/app/views/admin/spending_proposals/edit.html.erb index 3812db0a7..d189b29c5 100644 --- a/app/views/admin/spending_proposals/edit.html.erb +++ b/app/views/admin/spending_proposals/edit.html.erb @@ -1,4 +1,11 @@ <%= form_for @spending_proposal, url: admin_spending_proposal_path(@spending_proposal) do |f| %> + + <%= f.select :administrator_id, + @admins.collect { |a| [ "#{a.name} (#{a.email})", a.id ] }, + { include_blank: t("admin.spending_proposals.show.undefined"), + label: false }, + class: "js-submit-on-change" %> +
<%= f.label :tag_list, t("proposals.form.tags_label") %>

<%= t("proposals.form.tags_instructions") %>

diff --git a/app/views/admin/spending_proposals/show.html.erb b/app/views/admin/spending_proposals/show.html.erb index 65d2c6cd3..23a641bfb 100644 --- a/app/views/admin/spending_proposals/show.html.erb +++ b/app/views/admin/spending_proposals/show.html.erb @@ -31,9 +31,7 @@

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

<%= t("admin.spending_proposals.show.assigned_admin") %>: - <%= form_for(@spending_proposal, url: assign_admin_admin_spending_proposal_path(@spending_proposal), remote: true, html: {id: 'administrator_assignment_form'}) do |f| %> - <%= f.select :administrator_id, @admins.collect { |a| [ "#{a.name} (#{a.email})", a.id ] }, {include_blank: t("admin.spending_proposals.show.undefined"), label: false}, class: "js-submit-on-change" %> - <% end %> + <%= @spending_proposal.administrator.try(:name) || t("admin.spending_proposals.show.undefined") %>

<%= render 'shared/tags', taggable: @spending_proposal %> diff --git a/spec/features/admin/spending_proposals_spec.rb b/spec/features/admin/spending_proposals_spec.rb index 8d1877019..3b0aa646e 100644 --- a/spec/features/admin/spending_proposals_spec.rb +++ b/spec/features/admin/spending_proposals_spec.rb @@ -251,6 +251,19 @@ feature 'Admin spending proposals' do end end + scenario "Add administrator" do + spending_proposal = create(:spending_proposal) + administrator = create(:administrator, user: create(:user, username: 'Marta', email: 'marta@admins.org')) + + visit edit_admin_spending_proposal_path(spending_proposal) + + select 'Marta (marta@admins.org)', from: 'spending_proposal[administrator_id]' + click_button 'Update' + + expect(page).to have_content 'Investment project updated succesfully.' + expect(page).to have_content 'Assigned admin: Marta' + end + scenario "Adds existing tags", :js do create(:spending_proposal, tag_list: 'Education, Health')