5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-11-16 13:31:42 +00:00

Merge branch 'rails' into rollups

This commit is contained in:
f 2021-10-21 14:46:57 -03:00
commit 5d40907199
6 changed files with 32 additions and 28 deletions

View file

@ -22,21 +22,21 @@ class PostsController < ApplicationController
# XXX: Cada vez que cambiamos un Post tocamos el sitio con lo que es
# más simple saber si hubo cambios.
if stale?([current_usuarie, site, filter_params])
# Todos los artículos de este sitio para el idioma actual
@posts = site.indexed_posts.where(locale: locale).page(filter_params.delete(:page))
# De este tipo
@posts = @posts.where(layout: filter_params[:layout]) if filter_params[:layout]
# Que estén dentro de la categoría
@posts = @posts.in_category(filter_params[:category]) if filter_params[:category]
# Aplicar los parámetros de búsqueda
@posts = @posts.search(locale, filter_params[:q]) if filter_params[:q].present?
# A los que este usuarie tiene acceso
@posts = PostPolicy::Scope.new(current_usuarie, @posts).resolve
return unless stale?([current_usuarie, site, filter_params])
# Filtrar los posts que les invitades no pueden ver
@usuarie = site.usuarie? current_usuarie
end
# Todos los artículos de este sitio para el idioma actual
@posts = site.indexed_posts.where(locale: locale)
# De este tipo
@posts = @posts.where(layout: filter_params[:layout]) if filter_params[:layout]
# Que estén dentro de la categoría
@posts = @posts.in_category(filter_params[:category]) if filter_params[:category]
# Aplicar los parámetros de búsqueda
@posts = @posts.search(locale, filter_params[:q]) if filter_params[:q].present?
# A los que este usuarie tiene acceso
@posts = PostPolicy::Scope.new(current_usuarie, @posts).resolve
# Filtrar los posts que les invitades no pueden ver
@usuarie = site.usuarie? current_usuarie
end
def show
@ -54,7 +54,7 @@ class PostsController < ApplicationController
def new
authorize Post
@post = site.posts.build(lang: locale, layout: params[:layout])
@post = site.posts(lang: locale).build(layout: params[:layout])
breadcrumb I18n.t('loaf.breadcrumbs.posts.new', layout: @post.layout.humanized_name.downcase), ''
end
@ -154,7 +154,9 @@ class PostsController < ApplicationController
#
# @return [Hash]
def filter_params
@filter_params ||= params.permit(:q, :category, :layout, :page).to_h.select { |_, v| v.present? }
@filter_params ||= params.permit(:q, :category, :layout).to_hash.select do |_, v|
v.present?
end.transform_keys(&:to_sym)
end
def site

View file

@ -25,15 +25,19 @@ class MetadataBoolean < MetadataTemplate
# * false
# * true
def value
return document.data.fetch(name.to_s, default_value) if self[:value].nil?
return self[:value] unless self[:value].is_a? String
self[:value] = true_values.include? self[:value]
case self[:value]
when NilClass
document.data.fetch(name.to_s, default_value)
when String
true_values.include? self[:value]
else
self[:value]
end
end
# Siempre guardar el valor de este campo a menos que sea nulo
def empty?
!value.nil?
value.nil?
end
private

View file

@ -84,8 +84,6 @@
%button.btn{ data: { action: 'reorder#bottom' } }= t('posts.reorder.bottom')
%div
= link_to_prev_page @posts, t('posts.prev'), class: 'btn'
= link_to_next_page @posts, t('posts.next'), class: 'btn'
%tbody
- dir = t("locales.#{@locale}.dir")
- size = @posts.size

View file

@ -19,8 +19,8 @@ en:
remember_me: 'Keeps session open for %{remember_for}'
actions:
sr-help: "After this form you'll find links to recover your account and other actions."
_true: Yes
_false: No
_true: 'Yes'
_false: 'No'
svg:
sutty:
title: Sutty

View file

@ -19,8 +19,8 @@ es:
remember_me: 'Mantiene la sesión abierta por %{remember_for}'
actions:
sr-help: 'Después del formulario encontrarás vínculos para recuperar tu cuenta, entre otras acciones.'
_true:
_false: No
_true: 'Sí'
_false: 'No'
svg:
sutty:
title: Sutty

View file

@ -57,7 +57,7 @@ Rails.application.routes.draw do
# Gestionar artículos según idioma
nested do
scope '(:locale)' do
scope '/(:locale)', constraint: /[a-z]{2}/ do
post :'posts/reorder', to: 'posts#reorder'
resources :posts do
get 'p/:page', action: :index, on: :collection