Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/alfonsoolavarria/florilegio/llms.txt

Use this file to discover all available pages before exploring further.

Todos los modelos de Florilegio de la Fe están definidos en main_florife/models.py y gestionados por el ORM de Django sobre una base de datos PostgreSQL. La extensión django.contrib.postgres habilita búsqueda de texto con unaccent (sin distinción de tildes) directamente en las consultas de vistas. El esquema cubre cinco grandes dominios: contenido editorial, estudio bíblico en griego y hebreo, texto bíblico de referencia, concordancias léxicas, y usuarios con suscripciones.

Contenido Editorial

Category

Agrupa artículos y ensayos en áreas temáticas (Teología, Historia, Biografías, etc.).
CampoTipoNotas
nameCharField(100)Nombre visible de la categoría
iconCharField(100)Clase CSS del icono (ej. unicon-book), defecto "unicon-book"

Author

Perfil público de cada colaborador. Puede estar vinculado a un User de Django o existir de forma independiente.
CampoTipoNotas
userOneToOneField(User, on_delete=CASCADE)Opcional — null=True, blank=True
nameCharField(150)Nombre público del autor
bioTextFieldBiografía en texto libre
image_urlURLField(500)URL externa de la foto
photoImageFieldFoto subida a authors/ (Pillow requerido)
social_handleCharField(100)Ej. @JohnPiper
Propiedad photo_url: Devuelve image_url si está definida, luego la URL del campo photo, y como fallback https://via.placeholder.com/150.

Article

Artículo de blog editorial. Es el tipo de contenido principal del sitio.
CampoTipoNotas
titleCharField(255)Título principal
slugSlugFieldURL amigable, unique=True
authorForeignKey(Author)on_delete=SET_NULL, nullable
categoryForeignKey(Category)on_delete=CASCADE
image_urlURLField(500)Link a la imagen de portada
contentTextFieldHTML completo del artículo
tagsJSONFieldLista de etiquetas, defecto []
meta_descriptionTextFieldDescripción SEO (máx. 160 caracteres recomendados)
is_featuredBooleanFieldSi True, aparece en el carrusel de destacados
statusCharField(20)revision (En Revisión) o liberado (Liberado)
created_atDateTimeFieldauto_now_add=True
updated_atDateTimeFieldauto_now=True
Propiedad image: Retorna {'url': self.image_url} para compatibilidad con templates. Propiedad seo_description: Devuelve meta_description si existe; si no, extrae los primeros 160 caracteres del content sin etiquetas HTML.

Essay

Ensayo teológico de mayor profundidad. Comparte exactamente la misma estructura de campos y propiedades que Article, pero es un modelo independiente con su propio conjunto de vistas, URL (/ensayos/, /ensayo/<slug>/) y template dedicado con tabla de contenidos auto-generada.
Ambos modelos (Article y Essay) comparten la lógica de seo_description: si meta_description está vacío, se genera automáticamente a partir de los primeros 160 caracteres del content con las etiquetas HTML eliminadas mediante regex.

Estudio Bíblico — Griego (Nuevo Testamento)

Estos tres modelos almacenan los datos del Open Greek New Testament (OGNT), donde cada palabra del NT griego tiene una entrada única.

PalabraBiblia

Tabla base: una fila por cada palabra del Nuevo Testamento griego.
CampoTipoNotas
ognt_sortCharField(50)Primary Key — identificador OGNT
libroIntegerFieldNúmero de libro bíblico
capituloIntegerField
versiculoIntegerField

TraduccionLiteral

Traducción al español de cada palabra griega.
CampoTipoNotas
palabraOneToOneField(PalabraBiblia)related_name='traduccion'
espanolCharField(255)Traducción al español
griegoCharField(255)Forma griega
raiz_griegaCharField(255)Raíz léxica griega

Morfologia

Análisis morfológico de cada palabra griega, basado en el sistema RMAC.
CampoTipoNotas
palabraOneToOneField(PalabraBiblia)related_name='morfologia'
rmacCharField(50)Código morfológico RMAC
descripcion_rmacCharField(255)Descripción en texto del código
low_nida_numberCharField(150)Número de dominio semántico Louw-Nida
strongCharField(20)Número de Strong (ej. G3056)

Estudio Bíblico — Hebreo (Antiguo Testamento)

Estos tres modelos almacenan los datos del Open Scriptures Hebrew Bible (OSHB / morphHB).

PalabraHebreo

Tabla base: una fila por cada token del texto hebreo del AT.
CampoTipoNotas
oshb_idCharField(50)Primary Key — identificador OSHB
libroIntegerField
capituloIntegerField
versiculoIntegerField
ordenIntegerFieldPosición de la palabra dentro del versículo

TraduccionHebreo

Traducción al español de cada palabra hebrea.
CampoTipoNotas
palabraOneToOneField(PalabraHebreo)related_name='traduccion_hebreo'
hebreoCharField(255)Forma hebrea
raiz_hebreaCharField(255)Raíz léxica hebrea (nullable)
espanolCharField(255)Traducción al español (nullable)

MorfologiaHebreo

Código morfológico del sistema OSHB para cada palabra hebrea.
CampoTipoNotas
palabraOneToOneField(PalabraHebreo)related_name='morfologia_hebreo'
morph_codeCharField(50)Código morfológico OSHB (ej. HVqp3ms)
strongCharField(20)Número de Strong (ej. H1254)

Texto Bíblico

LibroBiblia

Catálogo de los 66 libros de la Biblia con metadatos de estructura.
CampoTipoNotas
numeroIntegerFieldunique=True, clave de referencia en toda la app
nombreCharField(50)Nombre en español
testamentoCharField(50)"Antiguo Testamento" o "Nuevo Testamento"
estructura_capitulosJSONFieldMapa de capítulos y sus versículos

VersiculoBiblia

Almacena el texto de múltiples versiones bíblicas.
CampoTipoNotas
versionCharField(20)Código de versión (ej. rv1960, rva2015, nbla)
libroIntegerField
capituloIntegerField
versiculoIntegerField
textoTextFieldTexto completo del versículo
unique_together: (version, libro, capitulo, versiculo) — garantiza que no haya duplicados por versión y referencia.

ContextoLibro

Almacena contexto histórico y literario de cada libro bíblico en formato JSON.
CampoTipoNotas
libroForeignKey(LibroBiblia)related_name='contextos'
contenidoTextFieldJSON serializado como texto
Método get_contenido(): Deserializa el campo contenido con json.loads() y retorna el dict Python correspondiente. db_table: contexto_libro

Concordancias

VineConcord

Entradas del Vine’s Expository Dictionary of New Testament Words, enlazadas a números de Strong.
CampoTipoNotas
topicCharField(255)Primary Key — título de la entrada
definitionTextFieldDefinición completa (nullable)
is_strongBooleanFieldTrue si tiene números de Strong asociados
is_concordBooleanFieldTrue si es entrada de concordancia
strong_numbersJSONFieldLista de números de Strong (ej. [3056, 4487])
db_table: vine_concord

StrongConcord

Entradas de la Concordancia de Strong, con la misma estructura que VineConcord.
CampoTipoNotas
topicCharField(255)Primary Key — número o código Strong
definitionTextFieldDefinición (nullable)
is_strongBooleanField
is_concordBooleanField
strong_numbersJSONFieldLista de números relacionados
db_table: strong_concord

Usuarios y Suscripciones

UserProfile

Extiende el User de Django con datos de perfil y plan de suscripción. Se crea automáticamente mediante una señal post_save cuando se crea un nuevo User.
CampoTipoNotas
userOneToOneField(User)related_name='profile'
bioTextFieldBiografía del usuario (nullable)
avatar_urlURLField(500)URL del avatar seleccionado (nullable)
planCharField(20)free, premium, o pro
created_atDateTimeFieldauto_now_add=True
updated_atDateTimeFieldauto_now=True
Método study_limit(): Retorna el número máximo de estudios guardados según el plan:
PlanLímite
free3 estudios
premium100 estudios
proSin límite (None)
Propiedad is_author: Retorna True si el User tiene un Author asociado (author_profile).

UserStudy

Notas de estudio personal creadas por el usuario en la herramienta de estudio bíblico.
CampoTipoNotas
userForeignKey(User)related_name='studies'
titleCharField(255)Título del estudio (opcional)
referenceCharField(255)Referencia bíblica (ej. Juan 3:16)
contentTextFieldContenido HTML sanitizado con bleach
created_atDateTimeFieldauto_now_add=True
updated_atDateTimeFieldauto_now=True
Ordenación por defecto: -updated_at (más recientemente editados primero).

Recursos Madres Maestras

AgeCategory

Categorías de edad para organizar los recursos educativos del módulo Madres Maestras.
CampoTipoNotas
nameCharField(100)Nombre de la categoría (ej. “3 a 5 años”)
slugSlugFieldunique=True
descriptionTextFieldDescripción opcional
iconCharField(100)Clase CSS del icono, defecto "unicon-users"
sort_orderIntegerFieldOrden de aparición, defecto 0
Ordenación por defecto: sort_order ascendente.

MadreMaestraResource

Lección completa lista para usar en clase, organizada por categoría de edad.
CampoTipoNotas
titleCharField(255)Título de la lección
slugSlugFieldunique=True
age_categoryForeignKey(AgeCategory)related_name='resources'
image_urlURLField(500)Imagen de portada (nullable)
bible_passageCharField(200)Pasaje bíblico (ej. Juan 3:16)
key_verseCharField(300)Versículo clave de la lección
objectiveTextFieldObjetivo pedagógico
materialsTextFieldLista de materiales necesarios
time_minutesIntegerFieldTiempo estimado en minutos
contentTextFieldDesarrollo completo en HTML
summaryTextFieldResumen corto para la tarjeta de vista previa
tagsJSONFieldLista de etiquetas, defecto []
statusCharField(20)revision o liberado
created_atDateTimeFieldauto_now_add=True
updated_atDateTimeFieldauto_now=True
Ordenación por defecto: -created_at. Propiedad image: Retorna {'url': self.image_url} si hay URL, o {'url': ''}.

Sincronización Bíblica

ApiBibleSyncStatus

Registra cuándo fue la última sincronización de cada versión bíblica desde la API de API.Bible.
CampoTipoNotas
versionCharField(20)nbla, ntv, o rvr09; unique=True
last_synced_atDateTimeFieldauto_now=True — se actualiza en cada sincronización

Patrón status: Los modelos Article, Essay y MadreMaestraResource comparten el mismo ciclo de publicación de dos estados:
  • revisionEn Revisión: el contenido es visible sólo en el panel de administración.
  • liberadoLiberado: el contenido es público y aparece en las listas y páginas de detalle del sitio.
Todas las consultas públicas filtran explícitamente status='liberado' para asegurar que ningún borrador sea expuesto.

Build docs developers (and LLMs) love