Change Translatable interface

This commit is contained in:
Marko Lovic
2018-08-06 16:04:52 +02:00
committed by Javi Martín
parent 4603a30f95
commit 3c4f221e04
4 changed files with 13 additions and 20 deletions

View File

@@ -41,8 +41,9 @@ class Admin::BannersController < Admin::BaseController
attributes = [:title, :description, :target_url,
:post_started_at, :post_ended_at,
:background_color, :font_color,
*translation_params(Banner),
web_section_ids: []]
params.require(:banner).permit(*attributes, *translation_params(params[:banner]))
params.require(:banner).permit(*attributes)
end
def banner_styles
@@ -65,8 +66,4 @@ class Admin::BannersController < Admin::BaseController
@banner = Banner.find(params[:id]) unless @banner
@banner
end
def resource_model
Banner
end
end

View File

@@ -47,9 +47,10 @@ class Admin::BudgetInvestmentMilestonesController < Admin::BaseController
image_attributes = [:id, :title, :attachment, :cached_attachment, :user_id, :_destroy]
documents_attributes = [:id, :title, :attachment, :cached_attachment, :user_id, :_destroy]
attributes = [:title, :description, :publication_date, :budget_investment_id, :status_id,
*translation_params(Budget::Investment::Milestone),
image_attributes: image_attributes, documents_attributes: documents_attributes]
params.require(:budget_investment_milestone).permit(*attributes, translation_params(params[:budget_investment_milestone]))
params.require(:budget_investment_milestone).permit(*attributes)
end
def load_budget_investment
@@ -64,10 +65,6 @@ class Admin::BudgetInvestmentMilestonesController < Admin::BaseController
Budget::Investment::Milestone.find(params[:id])
end
def resource_model
Budget::Investment::Milestone
end
def resource
get_milestone
end

View File

@@ -9,7 +9,7 @@ class Admin::SiteCustomization::InformationTextsController < Admin::SiteCustomiz
def update
content_params.each do |content|
values = content[:values].slice(*translation_params(content[:values]))
values = content[:values].slice(*translation_params(I18nContent))
unless values.empty?
values.each do |key, value|
@@ -43,7 +43,7 @@ class Admin::SiteCustomization::InformationTextsController < Admin::SiteCustomiz
end
def resource
resource_model.find(content_params[:id])
I18nContent.find(content_params[:id])
end
def content_params

View File

@@ -7,19 +7,18 @@ module Translatable
private
# TODO change method interface to remove unnecessary argument
def translation_params(_)
enabled_translations.flat_map do |locale|
def translation_params(resource_model)
enabled_translations.flat_map do |loc|
resource_model.translated_attribute_names.map do |attr_name|
resource_model.localized_attr_name_for(attr_name, locale)
resource_model.localized_attr_name_for(attr_name, loc)
end
end.tap { |x| Rails.logger.debug "permitted translation params:"; p x}
end
end
# TODO change to resource
def delete_translations
locales = resource_model.translated_locales
.select { |l| params.dig(:enabled_translations, l) == "0" }
locales = resource.translated_locales
.select { |l| params.dig(:enabled_translations, l) == "0" }
locales.each do |l|
Globalize.with_locale(l) do
resource.translation.destroy