5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-11-26 02:26:23 +00:00
panel/app/models/metadata_related_posts.rb

34 lines
750 B
Ruby

# frozen_string_literal: true
# Devuelve una lista de títulos y UUID de todos los posts del mismo
# idioma que el actual, para usar con input-map.js
class MetadataRelatedPosts < MetadataArray
# Genera un Hash de { title | slug => uuid }
# @return [Hash]
def values
@values ||= posts.map do |p|
[title(p), p.uuid.value]
end.to_h
end
# Las relaciones nunca son privadas
def private?
false
end
private
# Obtiene todos los posts y opcionalmente los filtra
def posts
@posts ||= site.posts(lang: lang).where(**filter)
end
def title(post)
post&.title&.value || post&.slug&.value
end
# Encuentra el filtro
def filter
layout.metadata.dig(name, 'filter')&.to_h&.symbolize_keys || {}
end
end