mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-23 00:46:23 +00:00
ordenar!
This commit is contained in:
parent
5c48a2da5e
commit
7ddc4e6150
4 changed files with 32 additions and 2 deletions
|
@ -9,8 +9,10 @@ class PostsController < ApplicationController
|
||||||
authorize Post
|
authorize Post
|
||||||
@site = find_site
|
@site = find_site
|
||||||
@category = session[:category] = params.dig(:category)
|
@category = session[:category] = params.dig(:category)
|
||||||
|
@layout = params.dig(:layout).try :to_sym
|
||||||
# TODO: Aplicar policy_scope
|
# TODO: Aplicar policy_scope
|
||||||
@posts = @site.posts(lang: I18n.locale)
|
@posts = @site.posts(lang: I18n.locale)
|
||||||
|
@posts.sort_by! :order, :date
|
||||||
end
|
end
|
||||||
|
|
||||||
def show
|
def show
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
class MetadataDate < MetadataTemplate
|
class MetadataDate < MetadataTemplate
|
||||||
|
def default_value
|
||||||
|
Date.today
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -31,6 +31,22 @@ class PostRelation < Array
|
||||||
post
|
post
|
||||||
end
|
end
|
||||||
|
|
||||||
|
alias sort_by_generic! sort_by!
|
||||||
|
|
||||||
|
# Permite ordenar los artículos por sus atributos
|
||||||
|
#
|
||||||
|
# XXX: Prestar atención cuando estamos mezclando artículos con
|
||||||
|
# diferentes tipos de atributos.
|
||||||
|
def sort_by!(*attrs)
|
||||||
|
sort_by_generic! do |post|
|
||||||
|
attrs.map do |attr|
|
||||||
|
return 0 unless post.attributes.include? attr
|
||||||
|
|
||||||
|
post.public_send(attr).value
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
alias find_generic find
|
alias find_generic find
|
||||||
|
|
||||||
# Encontra un post por su id convertido a SHA1
|
# Encontra un post por su id convertido a SHA1
|
||||||
|
|
|
@ -37,6 +37,8 @@
|
||||||
- if @category
|
- if @category
|
||||||
- next unless post.attributes.include? :categories
|
- next unless post.attributes.include? :categories
|
||||||
- next unless post.categories.value.include?(@category)
|
- next unless post.categories.value.include?(@category)
|
||||||
|
- if @layout
|
||||||
|
- next unless post.layout.name == @layout
|
||||||
- next unless policy(post).show?
|
- next unless policy(post).show?
|
||||||
%tr
|
%tr
|
||||||
%td
|
%td
|
||||||
|
@ -45,6 +47,10 @@
|
||||||
= hidden_field 'post[reorder]', post.sha1,
|
= hidden_field 'post[reorder]', post.sha1,
|
||||||
value: i, class: 'reorder'
|
value: i, class: 'reorder'
|
||||||
%td
|
%td
|
||||||
|
%small
|
||||||
|
= link_to post.layout.name.to_s.humanize,
|
||||||
|
site_posts_path(@site, layout: post.layout.name)
|
||||||
|
%br/
|
||||||
= link_to post.title.value,
|
= link_to post.title.value,
|
||||||
site_post_path(@site, post.id)
|
site_post_path(@site, post.id)
|
||||||
- if post.attributes.include? :draft
|
- if post.attributes.include? :draft
|
||||||
|
@ -58,7 +64,10 @@
|
||||||
- post.categories.value.each do |c|
|
- post.categories.value.each do |c|
|
||||||
= link_to c, site_posts_path(@site, category: c)
|
= link_to c, site_posts_path(@site, category: c)
|
||||||
|
|
||||||
%td= post.date.value.strftime('%F')
|
%td
|
||||||
|
= post.date.value.strftime('%F')
|
||||||
|
%br/
|
||||||
|
= post.try(:order).try(:value)
|
||||||
%td
|
%td
|
||||||
- if policy(post).edit?
|
- if policy(post).edit?
|
||||||
= link_to t('posts.edit'),
|
= link_to t('posts.edit'),
|
||||||
|
|
Loading…
Reference in a new issue