diff --git a/app/controllers/admin/spending_proposals_controller.rb b/app/controllers/admin/spending_proposals_controller.rb index 61f9aa78d..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 @@ -33,7 +31,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 %>
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' %> 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 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'))