mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-16 14:21:41 +00:00
This commit is contained in:
parent
8ae5dd5975
commit
6b1eccade3
6 changed files with 29 additions and 2 deletions
14
app/models/metadata_created_at.rb
Normal file
14
app/models/metadata_created_at.rb
Normal 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
|
|
@ -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}"
|
||||||
|
|
4
app/views/posts/attribute_ro/_created_at.haml
Normal file
4
app/views/posts/attribute_ro/_created_at.haml
Normal 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
|
1
app/views/posts/attributes/_created_at.haml
Normal file
1
app/views/posts/attributes/_created_at.haml
Normal file
|
@ -0,0 +1 @@
|
||||||
|
-# nada
|
|
@ -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'
|
||||||
|
|
|
@ -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'
|
||||||
|
|
Loading…
Reference in a new issue