5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-11-16 14:21:41 +00:00

feat: fecha de creación
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed

This commit is contained in:
f 2023-09-13 17:52:21 -03:00
parent 8ae5dd5975
commit 6b1eccade3
No known key found for this signature in database
6 changed files with 29 additions and 2 deletions

View file

@ -0,0 +1,14 @@
# frozen_string_literal: true
# Fecha y hora de creación
class MetadataCreatedAt < MetadataTemplate
# Por defecto la hora actual
def default_value
Time.now
end
# Nunca cambia
def value=(new_value)
value
end
end

View file

@ -12,7 +12,7 @@ class Post
DEFAULT_ATTRIBUTES = %i[site document layout].freeze DEFAULT_ATTRIBUTES = %i[site document layout].freeze
# Otros atributos que no vienen en los metadatos # Otros atributos que no vienen en los metadatos
PRIVATE_ATTRIBUTES = %i[path slug attributes errors].freeze PRIVATE_ATTRIBUTES = %i[path slug attributes errors].freeze
PUBLIC_ATTRIBUTES = %i[lang date uuid].freeze PUBLIC_ATTRIBUTES = %i[lang date uuid created_at].freeze
ATTR_SUFFIXES = %w[? =].freeze ATTR_SUFFIXES = %w[? =].freeze
attr_reader :attributes, :errors, :layout, :site, :document attr_reader :attributes, :errors, :layout, :site, :document
@ -217,6 +217,11 @@ class Post
post: self, required: true) post: self, required: true)
end end
# La fecha de creación inmodificable del post
def created_at
@metadata[:created_at] ||= MetadataCreatedAt.new(document: document, site: site, layout: layout, name: :created_at, type: :timestamp, post: self, required: true)
end
# Detecta si es un atributo válido o no, a partir de la tabla de la # Detecta si es un atributo válido o no, a partir de la tabla de la
# plantilla # plantilla
def attribute?(mid) def attribute?(mid)
@ -267,7 +272,6 @@ class Post
# Y que no se procese liquid # Y que no se procese liquid
yaml['liquid'] = false yaml['liquid'] = false
yaml['usuaries'] = usuaries.map(&:id).uniq yaml['usuaries'] = usuaries.map(&:id).uniq
yaml['created_at'] ||= modified_at.dup
yaml['last_modified_at'] = modified_at yaml['last_modified_at'] = modified_at
"#{yaml.to_yaml}---\n\n#{body}" "#{yaml.to_yaml}---\n\n#{body}"

View file

@ -0,0 +1,4 @@
%tr{ id: attribute }
%th= post_label_t(attribute, post: post)
%td{ dir: dir, lang: locale }
%time{ datetime: metadata.value.xmlschema }= l metadata.value

View file

@ -0,0 +1 @@
-# nada

View file

@ -524,6 +524,8 @@ en:
feedback: 'This field cannot be empty!' feedback: 'This field cannot be empty!'
uuid: uuid:
label: 'Unique identifier' label: 'Unique identifier'
created_at:
label: 'Created at'
geo: geo:
uri: 'Open in app' uri: 'Open in app'
osm: 'Open in web map' osm: 'Open in web map'

View file

@ -532,6 +532,8 @@ es:
feedback: '¡Este campo no puede estar vacío!' feedback: '¡Este campo no puede estar vacío!'
uuid: uuid:
label: 'Identificador único' label: 'Identificador único'
created_at:
label: 'Fecha de creación'
geo: geo:
uri: 'Abrir en aplicación' uri: 'Abrir en aplicación'
osm: 'Abrir en mapa web' osm: 'Abrir en mapa web'