From d78aea1fd3c498d5d1e92b03fc06fd725947a0dc Mon Sep 17 00:00:00 2001 From: Marko Lovic Date: Thu, 2 Aug 2018 16:05:16 +0200 Subject: [PATCH] Make Legistlation Processes translatable --- .../admin/legislation/processes_controller.rb | 7 ++++ app/models/legislation/process.rb | 6 ++++ .../legislation/processes/_form.html.erb | 34 +++++++++---------- .../admin/legislation/processes_spec.rb | 13 ++++--- 4 files changed, 39 insertions(+), 21 deletions(-) diff --git a/app/controllers/admin/legislation/processes_controller.rb b/app/controllers/admin/legislation/processes_controller.rb index 976318958..2cb20d0ba 100644 --- a/app/controllers/admin/legislation/processes_controller.rb +++ b/app/controllers/admin/legislation/processes_controller.rb @@ -1,4 +1,6 @@ class Admin::Legislation::ProcessesController < Admin::Legislation::BaseController + include Translatable + has_filters %w{open next past all}, only: :index load_and_authorize_resource :process, class: "Legislation::Process" @@ -61,6 +63,7 @@ class Admin::Legislation::ProcessesController < Admin::Legislation::BaseControll :result_publication_enabled, :published, :custom_list, + *translation_params(Legislation::Process), documents_attributes: [:id, :title, :attachment, :cached_attachment, :user_id, :_destroy] ) end @@ -69,4 +72,8 @@ class Admin::Legislation::ProcessesController < Admin::Legislation::BaseControll @process.set_tag_list_on(:customs, process_params[:custom_list]) @process.save end + + def resource + @process || Legislation::Process.find(params[:id]) + end end diff --git a/app/models/legislation/process.rb b/app/models/legislation/process.rb index ff683aa00..39c3cb8e6 100644 --- a/app/models/legislation/process.rb +++ b/app/models/legislation/process.rb @@ -9,6 +9,12 @@ class Legislation::Process < ActiveRecord::Base acts_as_paranoid column: :hidden_at acts_as_taggable_on :customs + translates :title, touch: :true + translates :summary, touch: :true + translates :description, touch: :true + translates :additional_info, touch: :true + globalize_accessors + PHASES_AND_PUBLICATIONS = %i(debate_phase allegations_phase proposals_phase draft_publication result_publication).freeze has_many :draft_versions, -> { order(:id) }, class_name: 'Legislation::DraftVersion', diff --git a/app/views/admin/legislation/processes/_form.html.erb b/app/views/admin/legislation/processes/_form.html.erb index a0010c8ba..9eb587777 100644 --- a/app/views/admin/legislation/processes/_form.html.erb +++ b/app/views/admin/legislation/processes/_form.html.erb @@ -1,4 +1,6 @@ -<%= form_for [:admin, @process], html: {data: {watch_changes: true}} do |f| %> +<%= render "admin/shared/globalize_locales", resource: @process %> + +<%= translatable_form_for [:admin, @process], html: {data: {watch_changes: true}} do |f| %> <% if @process.errors.any? %> @@ -172,37 +174,35 @@
- <%= f.label :title %> - <%= f.text_field :title, - label: false, - placeholder: t("admin.legislation.processes.form.title_placeholder") %> + <%= f.translatable_text_field :title, + placeholder: t("admin.legislation.processes.form.title_placeholder") %>
<%= f.label :summary %> <%= t("admin.legislation.processes.form.use_markdown") %> - <%= f.text_area :summary, - label: false, - rows: 2, - placeholder: t("admin.legislation.processes.form.summary_placeholder") %> + <%= f.translatable_text_field :summary, + rows: 2, + placeholder: t("admin.legislation.processes.form.summary_placeholder"), + label: false %>
<%= f.label :description %> <%= t("admin.legislation.processes.form.use_markdown") %> - <%= f.text_area :description, - label: false, - rows: 5, - placeholder: t("admin.legislation.processes.form.description_placeholder") %> + <%= f.translatable_text_field :description, + rows: 5, + placeholder: t("admin.legislation.processes.form.description_placeholder"), + label: false %>
<%= f.label :additional_info %> <%= t("admin.legislation.processes.form.use_markdown") %> - <%= f.text_area :additional_info, - label: false, - rows: 10, - placeholder: t("admin.legislation.processes.form.additional_info_placeholder") %> + <%= f.translatable_text_area :additional_info, + rows: 10, + placeholder: t("admin.legislation.processes.form.additional_info_placeholder"), + label: false %>
diff --git a/spec/features/admin/legislation/processes_spec.rb b/spec/features/admin/legislation/processes_spec.rb index eabe40f37..1fee8cbf0 100644 --- a/spec/features/admin/legislation/processes_spec.rb +++ b/spec/features/admin/legislation/processes_spec.rb @@ -7,6 +7,11 @@ feature 'Admin legislation processes' do login_as(admin.user) end + it_behaves_like "translatable", + "legislation_process", + "edit_admin_legislation_process_path", + %w[title summary description additional_info] + context "Feature flag" do scenario 'Disabled with a feature flag' do @@ -38,9 +43,9 @@ feature 'Admin legislation processes' do click_link "New process" - fill_in 'legislation_process_title', with: 'An example legislation process' - fill_in 'legislation_process_summary', with: 'Summary of the process' - fill_in 'legislation_process_description', with: 'Describing the process' + fill_in 'legislation_process_title_en', with: 'An example legislation process' + fill_in 'legislation_process_summary_en', with: 'Summary of the process' + fill_in 'legislation_process_description_en', with: 'Describing the process' base_date = Date.current fill_in 'legislation_process[start_date]', with: base_date.strftime("%d/%m/%Y") @@ -93,7 +98,7 @@ feature 'Admin legislation processes' do expect(find("#legislation_process_debate_phase_enabled")).to be_checked expect(find("#legislation_process_published")).to be_checked - fill_in 'legislation_process_summary', with: '' + fill_in 'legislation_process_summary_en', with: '' click_button "Save changes" expect(page).to have_content "Process updated successfully"