diff --git a/app/helpers/globalize_helper.rb b/app/helpers/globalize_helper.rb index 592b49170..74ebc5ba0 100644 --- a/app/helpers/globalize_helper.rb +++ b/app/helpers/globalize_helper.rb @@ -96,11 +96,6 @@ module GlobalizeHelper end end - def can_manipulate_languages? - params[:controller] != "admin/legislation/milestones" && - params[:controller] != "admin/legislation/homepages" - end - def translation_enabled_tag(locale, enabled) hidden_field_tag("enabled_translations[#{locale}]", (enabled ? 1 : 0)) end diff --git a/app/views/admin/legislation/homepages/_form.html.erb b/app/views/admin/legislation/homepages/_form.html.erb index d5b5d73ec..4ce79ab30 100644 --- a/app/views/admin/legislation/homepages/_form.html.erb +++ b/app/views/admin/legislation/homepages/_form.html.erb @@ -1,6 +1,7 @@ <%= render "shared/globalize_locales", resource: @process, - display_style: lambda { |locale| enable_translation_style(@process, locale) } %> + display_style: lambda { |locale| enable_translation_style(@process, locale) }, + manage_languages: false %> <%= translatable_form_for [:admin, @process], url: url, html: {data: {watch_changes: true}} do |f| %> diff --git a/app/views/admin/legislation/milestones/_summary_form.html.erb b/app/views/admin/legislation/milestones/_summary_form.html.erb index e43cabf00..3c4297049 100644 --- a/app/views/admin/legislation/milestones/_summary_form.html.erb +++ b/app/views/admin/legislation/milestones/_summary_form.html.erb @@ -1,6 +1,7 @@ <%= render "shared/globalize_locales", resource: @process, - display_style: lambda { |locale| enable_translation_style(@process, locale) } %> + display_style: lambda { |locale| enable_translation_style(@process, locale) }, + manage_languages: false %> <%= translatable_form_for [:admin, @process] do |f| %>
diff --git a/app/views/admin/site_customization/information_texts/_globalize_locales.html.erb b/app/views/admin/site_customization/information_texts/_globalize_locales.html.erb index 61969d2f0..ef93a7ae7 100644 --- a/app/views/admin/site_customization/information_texts/_globalize_locales.html.erb +++ b/app/views/admin/site_customization/information_texts/_globalize_locales.html.erb @@ -1,3 +1,4 @@ <%= render "shared/common_globalize_locales", resource: nil, - display_style: lambda { |locale| site_customization_display_translation_style(locale) } %> + display_style: lambda { |locale| site_customization_display_translation_style(locale) }, + manage_languages: defined?(manage_languages) ? manage_languages : true %> diff --git a/app/views/proposals/retire_form.html.erb b/app/views/proposals/retire_form.html.erb index 0a54ecd92..604cd1a47 100644 --- a/app/views/proposals/retire_form.html.erb +++ b/app/views/proposals/retire_form.html.erb @@ -10,7 +10,7 @@ <%= t("proposals.retire_form.warning") %>
- <%= render "shared/globalize_locales", resource: @proposal %> + <%= render "shared/globalize_locales", resource: @proposal, manage_languages: false %> <%= translatable_form_for(@proposal, url: retire_proposal_path(@proposal)) do |f| %> <%= render "shared/errors", resource: @proposal %> diff --git a/app/views/shared/_common_globalize_locales.html.erb b/app/views/shared/_common_globalize_locales.html.erb index c114135c3..bf29a7344 100644 --- a/app/views/shared/_common_globalize_locales.html.erb +++ b/app/views/shared/_common_globalize_locales.html.erb @@ -10,7 +10,6 @@ options_for_select_language(resource), prompt: "Choose language", class: "js-select-language" %> -
<% if manage_languages %> <% I18n.available_locales.each do |locale| %> diff --git a/app/views/shared/_globalize_locales.html.erb b/app/views/shared/_globalize_locales.html.erb index a43961ab5..38464ac3b 100644 --- a/app/views/shared/_globalize_locales.html.erb +++ b/app/views/shared/_globalize_locales.html.erb @@ -1,5 +1,6 @@ <% if translations_interface_enabled? %> <%= render "shared/common_globalize_locales", resource: resource, - display_style: lambda { |locale| enable_translation_style(resource, locale) } %> + display_style: lambda { |locale| enable_translation_style(resource, locale) }, + manage_languages: defined?(manage_languages) ? manage_languages : true %> <% end %> diff --git a/spec/features/admin/legislation/processes_spec.rb b/spec/features/admin/legislation/processes_spec.rb index 3b233717b..2e22c4404 100644 --- a/spec/features/admin/legislation/processes_spec.rb +++ b/spec/features/admin/legislation/processes_spec.rb @@ -282,4 +282,25 @@ describe "Admin collaborative legislation" do expect(page).to have_content "There is still a long journey ahead of us" end end + + context "Special interface translation behaviour" do + let!(:process) { create(:legislation_process) } + + before { Setting["feature.translation_interface"] = true } + after { Setting["feature.translation_interface"] = nil } + + scenario "Cant manage translations on homepage form" do + visit edit_admin_legislation_process_homepage_path(process) + + expect(page).not_to have_css "#add_language" + expect(page).not_to have_link "Remove language" + end + + scenario "Cant manage translations on milestones summary form" do + visit admin_legislation_process_milestones_path(process) + + expect(page).not_to have_css "#add_language" + expect(page).not_to have_link "Remove language" + end + end end diff --git a/spec/features/proposals_spec.rb b/spec/features/proposals_spec.rb index 62e851e6d..426f13a0a 100644 --- a/spec/features/proposals_spec.rb +++ b/spec/features/proposals_spec.rb @@ -604,6 +604,21 @@ describe "Proposals" do expect(page).to have_content unfeasible.title expect(page).not_to have_content duplicated.title end + + context "Special interface translation behaviour" do + before { Setting["feature.translation_interface"] = true } + after { Setting["feature.translation_interface"] = nil } + + scenario "Cant manage translations" do + proposal = create(:proposal) + login_as(proposal.author) + + visit retire_form_proposal_path(proposal) + + expect(page).not_to have_css "#add_language" + expect(page).not_to have_link "Remove language" + end + end end scenario "Update should not be posible if logged user is not the author" do