diff --git a/.rubocop.yml b/.rubocop.yml index fd645802..e3b44c70 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -18,6 +18,7 @@ Metrics/AbcSize: - 'app/controllers/sites_controller.rb' - 'app/controllers/posts_controller.rb' - 'app/controllers/invitadxs_controller.rb' + - 'app/controllers/i18n_controller.rb' Metrics/MethodLength: Exclude: @@ -27,6 +28,7 @@ Metrics/MethodLength: - 'app/controllers/sites_controller.rb' - 'app/controllers/posts_controller.rb' - 'app/controllers/invitadxs_controller.rb' + - 'app/controllers/i18n_controller.rb' Metrics/BlockLength: Exclude: diff --git a/app/controllers/i18n_controller.rb b/app/controllers/i18n_controller.rb index 81012b48..05a01206 100644 --- a/app/controllers/i18n_controller.rb +++ b/app/controllers/i18n_controller.rb @@ -6,15 +6,16 @@ class I18nController < ApplicationController before_action :authenticate_usuarie! def index - authorize :i18n @site = find_site + authorize SiteTranslation.new(@site) redirect_to site_i18n_edit_path(@site) end def edit - authorize :i18n @site = find_site + authorize SiteTranslation.new(@site) + @lang_from = params.fetch(:from, I18n.locale.to_s) @lang_to = params.fetch(:to, @lang_from) @options = I18n.available_locales.map do |lang| @@ -23,15 +24,17 @@ class I18nController < ApplicationController end def update - authorize :i18n @site = find_site + authorize SiteTranslation.new(@site) + @lang_to = params.require(:i18n).require(:lang_to) # No usamos params porque nos obliga a hacer una lista blanca de # todos los parĂ¡metros que queremos, pero no tenemos forma aun de # pasarse a permit un array de todas las keys y sus tipos en base al # idioma que ya existe - p = request.parameters[:i18n][@lang_to] - i = JekyllI18n.new(site: @site, lang: @lang_to, attributes: p) + i = JekyllI18n.new(site: @site, + lang: @lang_to, + attributes: request.parameters[:i18n][@lang_to]) if i.save redirect_to site_path(@site)