Add the option to disable languages managment to cover special cases
We understand languages management as the ability to add new languages or remove existing ones. When no option is passed it will allow language manipulation by default. There are 3 special places where we want block languages management: - admin legislation processes homepage - admin legislation processes milestones summary - proposals retired form Co-Authored-By: Sebastia <sebastia.roig@gmail.com>
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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| %>
|
||||
|
||||
|
||||
@@ -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| %>
|
||||
<div class="row">
|
||||
|
||||
@@ -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 %>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<%= t("proposals.retire_form.warning") %>
|
||||
</div>
|
||||
|
||||
<%= 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 %>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
options_for_select_language(resource),
|
||||
prompt: "Choose language",
|
||||
class: "js-select-language" %>
|
||||
|
||||
<div class="margin-bottom">
|
||||
<% if manage_languages %>
|
||||
<% I18n.available_locales.each do |locale| %>
|
||||
|
||||
@@ -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 %>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user