mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-14 23:31:41 +00:00
ya que estaba, un poco de refactorización para no escribir tantas @
memoizamos site y post cuando podemos
This commit is contained in:
parent
8fe343ae45
commit
a9da4b3f2c
2 changed files with 33 additions and 31 deletions
|
@ -85,31 +85,24 @@ class PostsController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def edit
|
def edit
|
||||||
@site = find_site
|
authorize post
|
||||||
@post = @site.posts(lang: locale).find params[:id]
|
breadcrumb post.title.value, site_post_path(site, post, locale: locale), match: :exact
|
||||||
|
breadcrumb 'posts.edit', ''
|
||||||
authorize @post
|
|
||||||
|
|
||||||
@locale = locale
|
|
||||||
breadcrumb @post.title.value, site_post_path(@site, @post, locale: locale), match: :exact
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
@site = find_site
|
authorize post
|
||||||
@post = @site.posts(lang: locale).find params[:id]
|
|
||||||
|
|
||||||
authorize @post
|
service = PostService.new(site: site,
|
||||||
|
post: post,
|
||||||
service = PostService.new(site: @site,
|
|
||||||
post: @post,
|
|
||||||
usuarie: current_usuarie,
|
usuarie: current_usuarie,
|
||||||
params: params)
|
params: params)
|
||||||
|
|
||||||
if service.update.persisted?
|
if service.update.persisted?
|
||||||
@site.touch
|
site.touch
|
||||||
forget_content
|
forget_content
|
||||||
|
|
||||||
redirect_to site_post_path(@site, @post)
|
redirect_to site_post_path(site, post)
|
||||||
else
|
else
|
||||||
render 'posts/edit'
|
render 'posts/edit'
|
||||||
end
|
end
|
||||||
|
@ -117,34 +110,30 @@ class PostsController < ApplicationController
|
||||||
|
|
||||||
# Eliminar artículos
|
# Eliminar artículos
|
||||||
def destroy
|
def destroy
|
||||||
@site = find_site
|
authorize post
|
||||||
@post = @site.posts(lang: locale).find params[:id]
|
|
||||||
|
|
||||||
authorize @post
|
service = PostService.new(site: site,
|
||||||
|
post: post,
|
||||||
service = PostService.new(site: @site,
|
|
||||||
post: @post,
|
|
||||||
usuarie: current_usuarie,
|
usuarie: current_usuarie,
|
||||||
params: params)
|
params: params)
|
||||||
|
|
||||||
# TODO: Notificar si se pudo o no
|
# TODO: Notificar si se pudo o no
|
||||||
service.destroy
|
service.destroy
|
||||||
@site.touch
|
site.touch
|
||||||
redirect_to site_posts_path(@site)
|
redirect_to site_posts_path(site)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Reordenar los artículos
|
# Reordenar los artículos
|
||||||
def reorder
|
def reorder
|
||||||
@site = find_site
|
authorize site
|
||||||
authorize @site
|
|
||||||
|
|
||||||
service = PostService.new(site: @site,
|
service = PostService.new(site: site,
|
||||||
usuarie: current_usuarie,
|
usuarie: current_usuarie,
|
||||||
params: params)
|
params: params)
|
||||||
|
|
||||||
service.reorder
|
service.reorder
|
||||||
@site.touch
|
site.touch
|
||||||
redirect_to site_posts_path(@site)
|
redirect_to site_posts_path(site)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Devuelve el idioma solicitado a través de un parámetro, validando
|
# Devuelve el idioma solicitado a través de un parámetro, validando
|
||||||
|
@ -155,7 +144,7 @@ class PostsController < ApplicationController
|
||||||
# solicite a le usuarie crear el nuevo idioma y que esto lo agregue al
|
# solicite a le usuarie crear el nuevo idioma y que esto lo agregue al
|
||||||
# _config.yml del sitio en lugar de mezclar idiomas.
|
# _config.yml del sitio en lugar de mezclar idiomas.
|
||||||
def locale
|
def locale
|
||||||
@site&.locales&.find(-> { I18n.locale }) do |l|
|
@locale ||= site&.locales&.find(-> { I18n.locale }) do |l|
|
||||||
l.to_s == params[:locale]
|
l.to_s == params[:locale]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -165,4 +154,14 @@ class PostsController < ApplicationController
|
||||||
def forget_content
|
def forget_content
|
||||||
flash[:js] = { target: 'editor', action: 'forget-content', keys: (params[:storage_keys] || []).to_json }
|
flash[:js] = { target: 'editor', action: 'forget-content', keys: (params[:storage_keys] || []).to_json }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def site
|
||||||
|
@site ||= find_site
|
||||||
|
end
|
||||||
|
|
||||||
|
def post
|
||||||
|
@post ||= site.posts(lang: locale).find(params[:post_id] || params[:id])
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -14,8 +14,7 @@ class UsuariesController < ApplicationController
|
||||||
|
|
||||||
# Mostrar todes les usuaries e invitades de un sitio
|
# Mostrar todes les usuaries e invitades de un sitio
|
||||||
def index
|
def index
|
||||||
@site = find_site
|
site_usuarie = SiteUsuarie.new(site, current_usuarie)
|
||||||
site_usuarie = SiteUsuarie.new(@site, current_usuarie)
|
|
||||||
authorize site_usuarie
|
authorize site_usuarie
|
||||||
|
|
||||||
breadcrumb 'usuaries.index', ''
|
breadcrumb 'usuaries.index', ''
|
||||||
|
@ -163,4 +162,8 @@ class UsuariesController < ApplicationController
|
||||||
'invitade'
|
'invitade'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def site
|
||||||
|
@site ||= find_site
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue