5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-11-17 08:36:38 +00:00

Merge branch 'issue-10022' into 'rails'

feat: al crear un sitio configurarlo con el idioma de le usuarie #10022

See merge request sutty/sutty!122
This commit is contained in:
fauno 2023-03-23 21:50:42 +00:00
commit ab0f8af4ff
3 changed files with 23 additions and 5 deletions

View file

@ -179,10 +179,20 @@ class Site < ApplicationRecord
# Siempre tiene que tener algo porque las traducciones están # Siempre tiene que tener algo porque las traducciones están
# incorporadas a los sitios de Sutty, aunque les usuaries no traduzcan # incorporadas a los sitios de Sutty, aunque les usuaries no traduzcan
# sus sitios. # sus sitios.
#
# @return [Array]
def locales def locales
@locales ||= config.fetch('locales', I18n.available_locales).map(&:to_sym) @locales ||= config.fetch('locales', I18n.available_locales).map(&:to_sym)
end end
# Modificar los locales disponibles
#
# @param :new_locales [Array]
# @return [Array]
def locales=(new_locales)
@locales = new_locales.map(&:to_sym).uniq
end
# Similar a site.i18n en jekyll-locales # Similar a site.i18n en jekyll-locales
# #
# @return [Hash] # @return [Hash]
@ -484,6 +494,7 @@ class Site < ApplicationRecord
config.title = title config.title = title
config.url = url(slash: false) config.url = url(slash: false)
config.hostname = hostname config.hostname = hostname
config.locales = locales.map(&:to_s)
end end
# Valida si el sitio tiene al menos una forma de alojamiento asociada # Valida si el sitio tiene al menos una forma de alojamiento asociada

View file

@ -33,11 +33,11 @@ class Site
def write def write
return if persisted? return if persisted?
@saved = Site::Writer.new(site: site, file: path, @saved = Site::Writer.new(site: site, file: path, content: content.to_yaml).save.tap do |result|
content: content.to_yaml).save
# Actualizar el hash para no escribir dos veces # Actualizar el hash para no escribir dos veces
@hash = content.hash @hash = content.hash
end end
end
alias save write alias save write
# Detecta si la configuración cambió comparando con el valor inicial # Detecta si la configuración cambió comparando con el valor inicial

View file

@ -11,7 +11,14 @@ SiteService = Struct.new(:site, :usuarie, :params, keyword_init: true) do
add_role temporal: false, rol: 'usuarie' add_role temporal: false, rol: 'usuarie'
sync_nodes sync_nodes
I18n.with_locale(usuarie&.lang&.to_sym || I18n.default_locale) do I18n.with_locale(usuarie.lang.to_sym || I18n.default_locale) do
# No se puede llamar a site.config antes de save porque el sitio
# todavía no existe.
#
# TODO: hacer que el repositorio se cree cuando es necesario, para
# que no haya estados intermedios.
site.locales = [usuarie.lang] + I18n.available_locales
site.save && site.save &&
site.config.write && site.config.write &&
commit_config(action: :create) commit_config(action: :create)