diff --git a/app/controllers/admin/spending_proposals_controller.rb b/app/controllers/admin/spending_proposals_controller.rb
index 5eb28d5b7..8e23cc77a 100644
--- a/app/controllers/admin/spending_proposals_controller.rb
+++ b/app/controllers/admin/spending_proposals_controller.rb
@@ -11,18 +11,15 @@ class Admin::SpendingProposalsController < Admin::BaseController
end
def show
- @admins = Administrator.includes(:user).all
- @valuators = Valuator.includes(:user).all.order("users.username ASC")
end
def edit
- @spending_proposal = SpendingProposal.find(params[:id])
@admins = Administrator.includes(:user).all
+ @valuators = Valuator.includes(:user).all.order("users.username ASC")
@tags = ActsAsTaggableOn::Tag.where('taggings.taggable_type' => 'SpendingProposal').includes(:taggings)
end
def update
- @spending_proposal = SpendingProposal.find(params[:id])
if @spending_proposal.update(spending_proposal_params)
redirect_to admin_spending_proposal_path(@spending_proposal), notice: t("flash.actions.update.spending_proposal")
else
@@ -44,7 +41,7 @@ class Admin::SpendingProposalsController < Admin::BaseController
private
def spending_proposal_params
- params.require(:spending_proposal).permit(:administrator_id, :tag_list)
+ params.require(:spending_proposal).permit(:administrator_id, :tag_list, valuator_ids: [])
end
end
diff --git a/app/views/admin/spending_proposals/edit.html.erb b/app/views/admin/spending_proposals/edit.html.erb
index d189b29c5..022fdb0c9 100644
--- a/app/views/admin/spending_proposals/edit.html.erb
+++ b/app/views/admin/spending_proposals/edit.html.erb
@@ -6,6 +6,22 @@
label: false },
class: "js-submit-on-change" %>
+
+ <% @valuators.each do |valuator| %>
+
+ <%= check_box_tag "valuator_ids_#{valuator.id}",
+ valuator.id, @spending_proposal.valuators.include?(valuator),
+ name: 'spending_proposal[valuator_ids][]',
+ class: "js-submit-on-change" %>
+ <%= label_tag "valuator_ids_#{valuator.id}", truncate(valuator.name), class: "inline" %>
+
+ <% end %>
+
+ <% if @valuators.blank? %>
+
<%= t("admin.spending_proposals.show.no_valuators") %>
+ <% end %>
+
+
<%= 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 23a641bfb..fc826f747 100644
--- a/app/views/admin/spending_proposals/show.html.erb
+++ b/app/views/admin/spending_proposals/show.html.erb
@@ -39,25 +39,19 @@
<%= t("admin.spending_proposals.show.assigned_valuators") %>:
- <%= render "assigned_valuators" %>
+
+ <% if @spending_proposal.valuators.any? %>
+ <% @spending_proposal.valuators.each do |valuator| %>
+ - <%= valuator.name %> (<%= valuator.email %>)
+ <% end %>
+ <% else %>
+ - <%= t("admin.spending_proposals.show.undefined") %>
+ <% end %>
+
<%= link_to t("admin.spending_proposals.show.assign_valuators"), "", class: "js-toggle-link", data: {"toggle-selector" => "#valuators-assign-list"} %>
-
- <%= form_for(@spending_proposal, url: assign_valuators_admin_spending_proposal_path(@spending_proposal), remote: true, html: {id: 'valuators_assignment_form'}) do |f| %>
- <% @valuators.each do |valuator| %>
-
- <%= check_box_tag "valuator_ids_#{valuator.id}", valuator.id, @spending_proposal.valuators.include?(valuator),
- name: 'spending_proposal[valuator_ids][]',
- class: "js-submit-on-change" %>
- <%= label_tag "valuator_ids_#{valuator.id}", truncate(valuator.email), class: "inline" %>
-
- <% end -%>
- <% end -%>
- <% if @valuators.blank? %>
<%= t("admin.spending_proposals.show.no_valuators") %>
<% end %>
-
-
<%= t("admin.spending_proposals.show.dossier") %>
<%= t("admin.spending_proposals.show.price") %> (<%= t("admin.spending_proposals.show.currency") %>):
@@ -77,4 +71,4 @@
<% if @spending_proposal.internal_comments.present? %>
<%= t("admin.spending_proposals.show.internal_comments") %>
<%= simple_format(safe_html_with_links(@spending_proposal.internal_comments.html_safe), {}, sanitize: false) %>
-<% end %>
\ No newline at end of file
+<% end %>
diff --git a/spec/features/admin/spending_proposals_spec.rb b/spec/features/admin/spending_proposals_spec.rb
index 3b0aa646e..f7c53cd7a 100644
--- a/spec/features/admin/spending_proposals_spec.rb
+++ b/spec/features/admin/spending_proposals_spec.rb
@@ -264,6 +264,32 @@ feature 'Admin spending proposals' do
expect(page).to have_content 'Assigned admin: Marta'
end
+ scenario "Add valuators" do
+ spending_proposal = create(:spending_proposal)
+
+ valuator1 = create(:valuator, user: create(:user, username: 'Valentina', email: 'v1@valuators.org'))
+ valuator2 = create(:valuator, user: create(:user, username: 'Valerian', email: 'v2@valuators.org'))
+ valuator3 = create(:valuator, user: create(:user, username: 'Val', email: 'v3@valuators.org'))
+
+ visit edit_admin_spending_proposal_path(spending_proposal)
+
+ within('#valuators-assign-list') do
+ check "valuator_ids_#{valuator1.id}"
+ check "valuator_ids_#{valuator3.id}"
+ end
+
+ click_button 'Update'
+
+ expect(page).to have_content 'Investment project updated succesfully.'
+
+ within('#assigned_valuators') do
+ expect(page).to have_content('Valentina (v1@valuators.org)')
+ expect(page).to have_content('Val (v3@valuators.org)')
+ expect(page).to_not have_content('Undefined')
+ expect(page).to_not have_content('Valerian (v2@valuators.org)')
+ end
+ end
+
scenario "Adds existing tags", :js do
create(:spending_proposal, tag_list: 'Education, Health')