From b0b810d4843d752c5954ecce3e8fb9dc1ba7b1df Mon Sep 17 00:00:00 2001 From: kikito Date: Wed, 13 Apr 2016 13:32:24 +0200 Subject: [PATCH 1/5] Adds a spec so that admins can edit Spending Proposal regular fields --- spec/features/admin/spending_proposals_spec.rb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/spec/features/admin/spending_proposals_spec.rb b/spec/features/admin/spending_proposals_spec.rb index 16a140de6..144ff9b31 100644 --- a/spec/features/admin/spending_proposals_spec.rb +++ b/spec/features/admin/spending_proposals_spec.rb @@ -330,6 +330,24 @@ feature 'Admin spending proposals' do context "Edit" do + scenario "Change title, description or geozone" do + spending_proposal = create(:spending_proposal) + create(:geozone, name: "Barbate") + + visit admin_spending_proposal_path(spending_proposal) + click_link 'Edit' + + fill_in 'spending_proposal_title', with: 'Potatoes' + fill_in 'spending_proposal_description', with: 'Carrots' + select 'Barbate', from: 'spending_proposal[geozone_id]' + + click_button 'Update' + + expect(page).to have_content 'Potatoes' + expect(page).to have_content 'Carrots' + expect(page).to have_content 'Barbate' + end + scenario "Add administrator" do spending_proposal = create(:spending_proposal) administrator = create(:administrator, user: create(:user, username: 'Marta', email: 'marta@admins.org')) From d794c1b79d706a35600a80b21091a4072253adc0 Mon Sep 17 00:00:00 2001 From: kikito Date: Wed, 13 Apr 2016 13:54:57 +0200 Subject: [PATCH 2/5] Adds fields to admin/spendingproposals/edit view & controller --- .../admin/spending_proposals_controller.rb | 2 +- .../admin/spending_proposals/edit.html.erb | 74 +++++++++++++------ 2 files changed, 52 insertions(+), 24 deletions(-) diff --git a/app/controllers/admin/spending_proposals_controller.rb b/app/controllers/admin/spending_proposals_controller.rb index 61f9aa78d..9b2b86875 100644 --- a/app/controllers/admin/spending_proposals_controller.rb +++ b/app/controllers/admin/spending_proposals_controller.rb @@ -33,7 +33,7 @@ class Admin::SpendingProposalsController < Admin::BaseController private def spending_proposal_params - params.require(:spending_proposal).permit(:administrator_id, :tag_list, valuator_ids: []) + params.require(:spending_proposal).permit(:title, :description, :external_url, :geozone_id, :association_name, :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 59180eb16..1fd86da59 100644 --- a/app/views/admin/spending_proposals/edit.html.erb +++ b/app/views/admin/spending_proposals/edit.html.erb @@ -2,43 +2,71 @@ <%= t("admin.spending_proposals.show.back") %> <% end %> -<%= render 'written_by_author' %> - -

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

- <%= 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 %> + <%= hidden_field_tag filter_name, filter_value %> <% end %> - <%= f.select(:administrator_id, - @admins.collect{ |a| [a.name_and_email, a.id ] }, - { include_blank: t("admin.spending_proposals.edit.undefined") }, - class: "small-12 medium-6") %> +
+
+ <%= f.text_field :title, maxlength: SpendingProposal.title_max_length %> +
- <%= f.label :tag_list, t("admin.spending_proposals.edit.tags") %> -
- <% @tags.each do |tag| %> - <%= tag.name %> - <% end %> +
+ <%= f.cktext_area :description, maxlength: SpendingProposal.description_max_length, ckeditor: { language: I18n.locale } %> +
+ +
+ <%= f.text_field :external_url %> +
+ +
+ <%= f.select :geozone_id, geozone_select_options, include_blank: t("geozones.none") %> +
+ +
+ <%= f.text_field :association_name, placeholder: t("spending_proposals.form.association_name") %> +
- <%= f.text_field :tag_list, value: @spending_proposal.tag_list.to_s, - label: false, - placeholder: t("admin.spending_proposals.edit.tags_placeholder"), - class: 'js-tag-list' %> - <%= f.label :valuator_ids, t("admin.spending_proposals.edit.assigned_valuators") %> +

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

- <%= f.collection_check_boxes :valuator_ids, @valuators, :id, :email do |b| %> - <%= b.label(title: valuator_label(b.object)) { b.check_box + truncate(b.object.description_or_email, length: 60) } %> - <% end %> +
+ +
+ <%= f.select(:administrator_id, + @admins.collect{ |a| [a.name_and_email, a.id ] }, + { include_blank: t("admin.spending_proposals.edit.undefined") }) %> +
+ + +
+ <%= f.label :tag_list, t("admin.spending_proposals.edit.tags") %> +
+ <% @tags.each do |tag| %> + <%= tag.name %> + <% end %> +
+ <%= f.text_field :tag_list, value: @spending_proposal.tag_list.to_s, + label: false, + placeholder: t("admin.spending_proposals.edit.tags_placeholder"), + class: 'js-tag-list' %> +
+ +
+ <%= 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: valuator_label(b.object)) { b.check_box + truncate(b.object.description_or_email, length: 60) } %> + <% end %> +
+

<%= f.submit(class: "button", value: t("admin.spending_proposals.edit.submit_button")) %>

- <% end %>
From c2b205da892672ae8dcd2cf9198d4742c2b4e85c Mon Sep 17 00:00:00 2001 From: kikito Date: Wed, 13 Apr 2016 13:55:29 +0200 Subject: [PATCH 3/5] Makes redirect in spending proposal go back to the full page after editing --- app/controllers/admin/spending_proposals_controller.rb | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/controllers/admin/spending_proposals_controller.rb b/app/controllers/admin/spending_proposals_controller.rb index 9b2b86875..e7d1cc45c 100644 --- a/app/controllers/admin/spending_proposals_controller.rb +++ b/app/controllers/admin/spending_proposals_controller.rb @@ -21,10 +21,8 @@ class Admin::SpendingProposalsController < Admin::BaseController def update if @spending_proposal.update(spending_proposal_params) - path = admin_spending_proposal_path( @spending_proposal, - { anchor: 'classification' }.merge(SpendingProposal.filter_params(params))) - - redirect_to path, notice: t("flash.actions.update.spending_proposal") + redirect_to admin_spending_proposal_path(@spending_proposal, SpendingProposal.filter_params(params)), + notice: t("flash.actions.update.spending_proposal") else render :edit end From 64ec5290b9895e5f7b54bdb5c1750cc20ee729ae Mon Sep 17 00:00:00 2001 From: kikito Date: Wed, 13 Apr 2016 13:55:59 +0200 Subject: [PATCH 4/5] Adds a new edit link to spending proposals/show and moves the others down --- .../admin/spending_proposals/show.html.erb | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/app/views/admin/spending_proposals/show.html.erb b/app/views/admin/spending_proposals/show.html.erb index bbcf4b4fc..c54816071 100644 --- a/app/views/admin/spending_proposals/show.html.erb +++ b/app/views/admin/spending_proposals/show.html.erb @@ -4,13 +4,13 @@ <%= render 'written_by_author' %> -

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

+<%= link_to t("admin.spending_proposals.show.edit"), + edit_admin_spending_proposal_path(@spending_proposal, + SpendingProposal.filter_params(params)) %> -

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

+
+ +

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

<%= t("admin.spending_proposals.show.assigned_admin") %>: <%= @spending_proposal.administrator.try(:name_and_email) || t("admin.spending_proposals.show.undefined") %> @@ -31,12 +31,19 @@ <% end %>

+

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

+

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

+<%= render 'valuation/spending_proposals/written_by_valuators' %> +

<%= link_to t("admin.spending_proposals.show.edit_dossier"), edit_valuation_spending_proposal_path(@spending_proposal) %>

-<%= render 'valuation/spending_proposals/written_by_valuators' %> From 2e0eaa80ca564275328f5a742c72857681e4d389 Mon Sep 17 00:00:00 2001 From: kikito Date: Wed, 13 Apr 2016 13:56:15 +0200 Subject: [PATCH 5/5] i18n --- config/locales/activerecord.en.yml | 7 ++++++- config/locales/activerecord.es.yml | 5 +++++ config/locales/admin.en.yml | 3 ++- config/locales/admin.es.yml | 1 + 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/config/locales/activerecord.en.yml b/config/locales/activerecord.en.yml index f1de3c756..91c035dfb 100644 --- a/config/locales/activerecord.en.yml +++ b/config/locales/activerecord.en.yml @@ -68,7 +68,12 @@ en: name: "Name of organisation" responsible_name: "Person responsible for the group" spending_proposal: - administrator_id: "Administrator" + administrator_id: "Administrador" + association_name: "Association name" + description: "Description" + external_url: "Link to additional documentation" + geozone_id: "Scope of operation" + title: "Title" errors: models: debate: diff --git a/config/locales/activerecord.es.yml b/config/locales/activerecord.es.yml index 79893cecd..a7644f02e 100644 --- a/config/locales/activerecord.es.yml +++ b/config/locales/activerecord.es.yml @@ -69,6 +69,11 @@ es: responsible_name: "Persona responsable del colectivo" spending_proposal: administrator_id: "Administrador" + association_name: "Nombre de la asociación" + description: "Descripción" + external_url: "Enlace a documentación adicional" + geozone_id: "Ámbito de actuación" + title: "Título" errors: models: debate: diff --git a/config/locales/admin.en.yml b/config/locales/admin.en.yml index 3c4c2f24e..96023f69c 100755 --- a/config/locales/admin.en.yml +++ b/config/locales/admin.en.yml @@ -173,6 +173,7 @@ en: back: Back classification: Clasification heading: "Investment project %{id}" + edit: Edit edit_classification: Edit classification association_name: Association by: By @@ -237,4 +238,4 @@ en: index: phone_not_given: Phone not given sms_code_not_confirmed: Has not confirmed the sms code - title: Incomplete verifications \ No newline at end of file + title: Incomplete verifications diff --git a/config/locales/admin.es.yml b/config/locales/admin.es.yml index 5d7017336..345a3716c 100644 --- a/config/locales/admin.es.yml +++ b/config/locales/admin.es.yml @@ -173,6 +173,7 @@ es: back: Volver classification: Clasificación heading: Propuesta de inversión %{id} + edit: Editar edit_classification: Editar clasificación association_name: Asociación by: Autor