From 99770d952a74651fa6c4727bdf3da210a1cdc1ae Mon Sep 17 00:00:00 2001 From: Tatiana Villa Ema Date: Mon, 27 Apr 2026 22:26:51 +0200 Subject: [PATCH] feat: calendario liturgico en BD con API publica /calendario/hoy --- .../es/recursoscatolicos/DataInitializer.java | 38 +- .../CalendarioLiturgicoController.java | 33 ++ .../model/CalendarioLiturgico.java | 27 ++ .../CalendarioLiturgicoRepository.java | 19 + .../security/SecurityConfig.java | 1 + .../main/resources/calendario-liturgico.json | 356 ++++++++++++++++++ frontend/css/estilos.css | 10 +- frontend/js/codigo.js | 6 +- frontend/js/header.js | 10 +- 9 files changed, 479 insertions(+), 21 deletions(-) create mode 100644 backend/src/main/java/es/recursoscatolicos/controller/CalendarioLiturgicoController.java create mode 100644 backend/src/main/java/es/recursoscatolicos/model/CalendarioLiturgico.java create mode 100644 backend/src/main/java/es/recursoscatolicos/repository/CalendarioLiturgicoRepository.java create mode 100644 backend/src/main/resources/calendario-liturgico.json diff --git a/backend/src/main/java/es/recursoscatolicos/DataInitializer.java b/backend/src/main/java/es/recursoscatolicos/DataInitializer.java index 8adaf27..0ed7db5 100644 --- a/backend/src/main/java/es/recursoscatolicos/DataInitializer.java +++ b/backend/src/main/java/es/recursoscatolicos/DataInitializer.java @@ -1,14 +1,22 @@ package es.recursoscatolicos; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import es.recursoscatolicos.model.CalendarioLiturgico; import es.recursoscatolicos.model.Grupo; import es.recursoscatolicos.model.Parroquia; +import es.recursoscatolicos.repository.CalendarioLiturgicoRepository; import es.recursoscatolicos.repository.GrupoRepository; import es.recursoscatolicos.repository.ParroquiaRepository; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.CommandLineRunner; +import org.springframework.core.io.ClassPathResource; import org.springframework.stereotype.Component; +import java.util.List; + @Component @RequiredArgsConstructor @Slf4j @@ -16,12 +24,16 @@ public class DataInitializer implements CommandLineRunner { private final ParroquiaRepository parroquiaRepository; private final GrupoRepository grupoRepository; + private final CalendarioLiturgicoRepository calendarioRepository; @Override - public void run(String... args) { - if (parroquiaRepository.count() > 0) { - return; // Datos ya cargados - } + public void run(String... args) throws Exception { + cargarParroquias(); + cargarCalendario(); + } + + private void cargarParroquias() { + if (parroquiaRepository.count() > 0) return; log.info("Cargando datos de ejemplo..."); @@ -41,6 +53,23 @@ public class DataInitializer implements CommandLineRunner { log.info("Datos de ejemplo cargados correctamente."); } + private void cargarCalendario() throws Exception { + if (calendarioRepository.count() > 0) return; + + log.info("Cargando calendario litúrgico..."); + + ObjectMapper mapper = new ObjectMapper(); + mapper.registerModule(new JavaTimeModule()); + + List entradas = mapper.readValue( + new ClassPathResource("calendario-liturgico.json").getInputStream(), + new TypeReference<>() {} + ); + + calendarioRepository.saveAll(entradas); + log.info("Calendario litúrgico cargado: {} entradas.", entradas.size()); + } + private Parroquia saveParroquia(String nombre, String direccion) { Parroquia p = new Parroquia(); p.setNombre(nombre); @@ -55,3 +84,4 @@ public class DataInitializer implements CommandLineRunner { grupoRepository.save(g); } } + diff --git a/backend/src/main/java/es/recursoscatolicos/controller/CalendarioLiturgicoController.java b/backend/src/main/java/es/recursoscatolicos/controller/CalendarioLiturgicoController.java new file mode 100644 index 0000000..56a925a --- /dev/null +++ b/backend/src/main/java/es/recursoscatolicos/controller/CalendarioLiturgicoController.java @@ -0,0 +1,33 @@ +package es.recursoscatolicos.controller; + +import es.recursoscatolicos.model.CalendarioLiturgico; +import es.recursoscatolicos.repository.CalendarioLiturgicoRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.time.LocalDate; + +@RestController +@RequestMapping("/calendario") +@RequiredArgsConstructor +public class CalendarioLiturgicoController { + + private final CalendarioLiturgicoRepository repo; + + /** Devuelve la entrada litúrgica vigente para hoy. */ + @GetMapping("/hoy") + public ResponseEntity hoy() { + return repo.findEntradaVigente(LocalDate.now()) + .map(ResponseEntity::ok) + .orElse(ResponseEntity.notFound().build()); + } + + /** Devuelve la entrada litúrgica vigente para una fecha concreta (YYYY-MM-DD). */ + @GetMapping("/fecha/{fecha}") + public ResponseEntity porFecha(@PathVariable String fecha) { + return repo.findEntradaVigente(LocalDate.parse(fecha)) + .map(ResponseEntity::ok) + .orElse(ResponseEntity.notFound().build()); + } +} diff --git a/backend/src/main/java/es/recursoscatolicos/model/CalendarioLiturgico.java b/backend/src/main/java/es/recursoscatolicos/model/CalendarioLiturgico.java new file mode 100644 index 0000000..62df97a --- /dev/null +++ b/backend/src/main/java/es/recursoscatolicos/model/CalendarioLiturgico.java @@ -0,0 +1,27 @@ +package es.recursoscatolicos.model; + +import jakarta.persistence.*; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDate; + +@Entity +@Table(name = "calendario_liturgico") +@Data +@NoArgsConstructor +public class CalendarioLiturgico { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(nullable = false, unique = true) + private LocalDate fecha; + + @Column(nullable = false, length = 50) + private String color; + + @Column(nullable = false, length = 200) + private String tiempo; +} diff --git a/backend/src/main/java/es/recursoscatolicos/repository/CalendarioLiturgicoRepository.java b/backend/src/main/java/es/recursoscatolicos/repository/CalendarioLiturgicoRepository.java new file mode 100644 index 0000000..a8a89a4 --- /dev/null +++ b/backend/src/main/java/es/recursoscatolicos/repository/CalendarioLiturgicoRepository.java @@ -0,0 +1,19 @@ +package es.recursoscatolicos.repository; + +import es.recursoscatolicos.model.CalendarioLiturgico; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; + +import java.time.LocalDate; +import java.util.Optional; + +public interface CalendarioLiturgicoRepository extends JpaRepository { + + /** + * Devuelve la entrada más reciente cuya fecha sea <= la fecha dada. + * Útil para obtener el tiempo litúrgico de hoy aunque no haya entrada exacta. + */ + @Query("SELECT c FROM CalendarioLiturgico c WHERE c.fecha <= :fecha ORDER BY c.fecha DESC LIMIT 1") + Optional findEntradaVigente(@Param("fecha") LocalDate fecha); +} diff --git a/backend/src/main/java/es/recursoscatolicos/security/SecurityConfig.java b/backend/src/main/java/es/recursoscatolicos/security/SecurityConfig.java index 17a60ef..8bd60b5 100644 --- a/backend/src/main/java/es/recursoscatolicos/security/SecurityConfig.java +++ b/backend/src/main/java/es/recursoscatolicos/security/SecurityConfig.java @@ -43,6 +43,7 @@ public class SecurityConfig { .authorizeHttpRequests(auth -> auth .requestMatchers("/auth/**").permitAll() .requestMatchers(HttpMethod.GET, "/parroquias/**").permitAll() + .requestMatchers(HttpMethod.GET, "/calendario/**").permitAll() .requestMatchers(HttpMethod.OPTIONS, "/**").permitAll() .anyRequest().authenticated() ) diff --git a/backend/src/main/resources/calendario-liturgico.json b/backend/src/main/resources/calendario-liturgico.json new file mode 100644 index 0000000..d733f35 --- /dev/null +++ b/backend/src/main/resources/calendario-liturgico.json @@ -0,0 +1,356 @@ +[ + { "fecha": "2026-01-01", "color": "blanco", "tiempo": "Navidad (Sta. María, Madre de Dios)" }, + { "fecha": "2026-01-04", "color": "blanco", "tiempo": "Navidad (II Domingo después de Navidad)" }, + { "fecha": "2026-01-06", "color": "blanco", "tiempo": "Navidad (Epifanía del Señor)" }, + { "fecha": "2026-01-11", "color": "blanco", "tiempo": "Navidad (Bautismo del Señor)" }, + { "fecha": "2026-01-17", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-01-18", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-01-19", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-01-20", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-01-21", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-01-22", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-01-23", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-01-24", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-01-25", "color": "blanco", "tiempo": "Tiempo Ordinario (Conversión de San Pablo)" }, + { "fecha": "2026-01-26", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-01-27", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-01-28", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-01-29", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-01-30", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-01-31", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-02-01", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-02-02", "color": "blanco", "tiempo": "Tiempo Ordinario (Presentación del Señor)" }, + { "fecha": "2026-02-03", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-02-04", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-02-05", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-02-06", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-02-07", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-02-08", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-02-09", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-02-10", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-02-11", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-02-12", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-02-13", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-02-14", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-02-15", "color": "verde", "tiempo": "Domingo de Carnaval" }, + { "fecha": "2026-02-16", "color": "verde", "tiempo": "Carnaval (Lunes de Carnaval)" }, + { "fecha": "2026-02-17", "color": "verde", "tiempo": "Carnaval (Martes de Carnaval)" }, + { "fecha": "2026-02-18", "color": "morado", "tiempo": "Cuaresma (Miércoles de Ceniza)" }, + { "fecha": "2026-02-19", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-02-20", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-02-21", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-02-22", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-02-23", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-02-24", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-02-25", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-02-26", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-02-27", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-02-28", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-03-01", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-03-02", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-03-03", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-03-04", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-03-05", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-03-06", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-03-07", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-03-08", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-03-09", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-03-10", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-03-11", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-03-12", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-03-13", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-03-14", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-03-15", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-03-16", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-03-17", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-03-18", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-03-19", "color": "blanco", "tiempo": "Cuaresma (San José)" }, + { "fecha": "2026-03-20", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-03-21", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-03-22", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-03-23", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-03-24", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-03-25", "color": "violeta", "tiempo": "Cuaresma (Anunciación del Señor)" }, + { "fecha": "2026-03-26", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-03-27", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-03-28", "color": "morado", "tiempo": "Cuaresma" }, + { "fecha": "2026-03-29", "color": "rojo", "tiempo": "Semana Santa (Domingo de Ramos)" }, + { "fecha": "2026-03-30", "color": "morado", "tiempo": "Lunes de Semana Santa" }, + { "fecha": "2026-03-31", "color": "morado", "tiempo": "Martes de Semana Santa" }, + { "fecha": "2026-04-01", "color": "morado", "tiempo": "Semana Santa" }, + { "fecha": "2026-04-02", "color": "blanco", "tiempo": "Semana Santa (Jueves Santo)" }, + { "fecha": "2026-04-03", "color": "rojo", "tiempo": "Semana Santa (Viernes Santo)" }, + { "fecha": "2026-04-04", "color": "morado/negro", "tiempo": "Semana Santa" }, + { "fecha": "2026-04-05", "color": "blanco", "tiempo": "Semana Santa (Domingo de Resurrección)" }, + { "fecha": "2026-04-06", "color": "morado", "tiempo": "Lunes de Pascua" }, + { "fecha": "2026-04-07", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-04-08", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-04-09", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-04-10", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-04-11", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-04-12", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-04-13", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-04-14", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-04-15", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-04-16", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-04-17", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-04-18", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-04-19", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-04-20", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-04-21", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-04-22", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-04-23", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-04-24", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-04-25", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-04-26", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-04-27", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-04-28", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-04-29", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-04-30", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-05-01", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-05-02", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-05-03", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-05-04", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-05-05", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-05-06", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-05-07", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-05-08", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-05-09", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-05-10", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-05-11", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-05-12", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-05-13", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-05-14", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-05-15", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-05-16", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-05-17", "color": "blanco", "tiempo": "Tiempo Pascual (Ascensión del Señor)" }, + { "fecha": "2026-05-18", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-05-19", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-05-20", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-05-21", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-05-22", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-05-23", "color": "morado", "tiempo": "Tiempo Pascual" }, + { "fecha": "2026-05-24", "color": "rojo", "tiempo": "Tiempo Pascual (Pentecostés)" }, + { "fecha": "2026-05-25", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-05-26", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-05-27", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-05-28", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-05-29", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-05-30", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-05-31", "color": "blanco", "tiempo": "Tiempo Ordinario (Santísima Trinidad)" }, + { "fecha": "2026-06-01", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-06-02", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-06-03", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-06-04", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-06-05", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-06-06", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-06-07", "color": "blanco", "tiempo": "Tiempo Ordinario (Corpus Christi)" }, + { "fecha": "2026-06-08", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-06-09", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-06-10", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-06-11", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-06-12", "color": "blanco", "tiempo": "Tiempo Ordinario (Sagrado Corazón de Jesús)" }, + { "fecha": "2026-06-13", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-06-14", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-06-15", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-06-16", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-06-17", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-06-18", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-06-19", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-06-20", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-06-21", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-06-22", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-06-23", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-06-24", "color": "blanco", "tiempo": "Tiempo Ordinario (Natividad de San Juan Bautista)" }, + { "fecha": "2026-06-25", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-06-26", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-06-27", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-06-28", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-06-29", "color": "rojo", "tiempo": "Tiempo Ordinario (San Pedro y San Pablo)" }, + { "fecha": "2026-06-30", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-01", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-02", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-03", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-04", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-05", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-06", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-07", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-08", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-09", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-10", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-11", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-12", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-13", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-14", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-15", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-16", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-17", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-18", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-19", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-20", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-21", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-22", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-23", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-24", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-25", "color": "blanco", "tiempo": "Tiempo Ordinario (Santiago Apóstol)" }, + { "fecha": "2026-07-26", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-27", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-28", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-29", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-30", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-07-31", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-01", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-02", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-03", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-04", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-05", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-06", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-07", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-08", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-09", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-10", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-11", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-12", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-13", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-14", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-15", "color": "blanco", "tiempo": "Tiempo Ordinario (Asunción de la Virgen)" }, + { "fecha": "2026-08-16", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-17", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-18", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-19", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-20", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-21", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-22", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-23", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-24", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-25", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-26", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-27", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-28", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-29", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-30", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-08-31", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-01", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-02", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-03", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-04", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-05", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-06", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-07", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-08", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-09", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-10", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-11", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-12", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-13", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-14", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-15", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-16", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-17", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-18", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-19", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-20", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-21", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-22", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-23", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-24", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-25", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-26", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-27", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-28", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-29", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-09-30", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-01", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-02", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-03", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-04", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-05", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-06", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-07", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-08", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-09", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-10", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-11", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-12", "color": "blanco", "tiempo": "Nuestra Señora del Pilar" }, + { "fecha": "2026-10-13", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-14", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-15", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-16", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-17", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-18", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-19", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-20", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-21", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-22", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-23", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-24", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-25", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-26", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-27", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-28", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-29", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-30", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-10-31", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-11-01", "color": "blanco", "tiempo": "Tiempo Ordinario (Todos los Santos)" }, + { "fecha": "2026-11-02", "color": "morado/negro", "tiempo": "Tiempo Ordinario (Fieles Difuntos)" }, + { "fecha": "2026-11-03", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-11-04", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-11-05", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-11-06", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-11-07", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-11-08", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-11-09", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-11-10", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-11-11", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-11-12", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-11-13", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-11-14", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-11-15", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-11-16", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-11-17", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-11-18", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-11-19", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-11-20", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-11-21", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-11-22", "color": "blanco", "tiempo": "Tiempo Ordinario (Cristo Rey)" }, + { "fecha": "2026-11-23", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-11-24", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-11-25", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-11-26", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-11-27", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-11-28", "color": "verde", "tiempo": "Tiempo Ordinario" }, + { "fecha": "2026-11-29", "color": "morado", "tiempo": "Adviento (I Domingo de Adviento)" }, + { "fecha": "2026-11-30", "color": "morado", "tiempo": "Adviento" }, + { "fecha": "2026-12-01", "color": "morado", "tiempo": "Adviento" }, + { "fecha": "2026-12-02", "color": "morado", "tiempo": "Adviento" }, + { "fecha": "2026-12-03", "color": "morado", "tiempo": "Adviento" }, + { "fecha": "2026-12-04", "color": "morado", "tiempo": "Adviento" }, + { "fecha": "2026-12-05", "color": "morado", "tiempo": "Adviento" }, + { "fecha": "2026-12-06", "color": "morado", "tiempo": "Adviento (II Domingo de Adviento)" }, + { "fecha": "2026-12-07", "color": "morado", "tiempo": "Adviento" }, + { "fecha": "2026-12-08", "color": "azul/blanco", "tiempo": "Adviento (Inmaculada Concepción)" }, + { "fecha": "2026-12-09", "color": "morado", "tiempo": "Adviento" }, + { "fecha": "2026-12-10", "color": "morado", "tiempo": "Adviento" }, + { "fecha": "2026-12-11", "color": "morado", "tiempo": "Adviento" }, + { "fecha": "2026-12-12", "color": "morado", "tiempo": "Adviento" }, + { "fecha": "2026-12-13", "color": "morado", "tiempo": "Adviento (III Domingo de Adviento)" }, + { "fecha": "2026-12-14", "color": "morado", "tiempo": "Adviento" }, + { "fecha": "2026-12-15", "color": "morado", "tiempo": "Adviento" }, + { "fecha": "2026-12-16", "color": "morado", "tiempo": "Adviento" }, + { "fecha": "2026-12-17", "color": "morado", "tiempo": "Adviento" }, + { "fecha": "2026-12-18", "color": "morado", "tiempo": "Adviento" }, + { "fecha": "2026-12-19", "color": "morado", "tiempo": "Adviento" }, + { "fecha": "2026-12-20", "color": "morado", "tiempo": "Adviento (IV Domingo de Adviento)" }, + { "fecha": "2026-12-21", "color": "morado", "tiempo": "Adviento" }, + { "fecha": "2026-12-22", "color": "morado", "tiempo": "Adviento" }, + { "fecha": "2026-12-23", "color": "morado", "tiempo": "Adviento" }, + { "fecha": "2026-12-24", "color": "morado/blanco", "tiempo": "Adviento (Nochebuena)" }, + { "fecha": "2026-12-25", "color": "blanco", "tiempo": "Navidad (Natividad del Señor)" }, + { "fecha": "2026-12-26", "color": "blanco", "tiempo": "Navidad (San Esteban)" }, + { "fecha": "2026-12-27", "color": "blanco", "tiempo": "Navidad (San Juan Evangelista)" }, + { "fecha": "2026-12-28", "color": "blanco", "tiempo": "Navidad (Inocentes)" }, + { "fecha": "2026-12-29", "color": "blanco", "tiempo": "Navidad" }, + { "fecha": "2026-12-30", "color": "blanco", "tiempo": "Navidad" }, + { "fecha": "2026-12-31", "color": "blanco", "tiempo": "Navidad" } +] + \ No newline at end of file diff --git a/frontend/css/estilos.css b/frontend/css/estilos.css index 35145fb..a08582a 100644 --- a/frontend/css/estilos.css +++ b/frontend/css/estilos.css @@ -103,19 +103,15 @@ body { } /* --- BLOQUE DEL SANTO --- */ -/* + .santo { - background: var(--color-tarjeta); margin: 0.6rem auto; - padding: 0.8rem 1.5rem; - border: 1px solid var(--color-acento); - border-radius: 10px; - box-shadow: 0 3px 12px rgba(201, 168, 76, 0.2); + padding: 0.8rem; position: relative; z-index: 10; max-width: 380px; } -*/ + .santo h2 { font-family: 'EB Garamond', serif; diff --git a/frontend/js/codigo.js b/frontend/js/codigo.js index d32fcce..cbdcc33 100644 --- a/frontend/js/codigo.js +++ b/frontend/js/codigo.js @@ -234,9 +234,9 @@ async function cargarYActualizarTodo() { } try { - const respuesta = await fetch('data/calendario-liturgico.json'); - const datosCalendario = await respuesta.json(); - const datosHoy = datosCalendario.find(dia => dia.fecha === fechaISO); + const respuesta = await fetch(`${API_BASE_URL}/calendario/hoy`); + if (!respuesta.ok) throw new Error("Sin datos litúrgicos"); + const datosHoy = await respuesta.json(); const mapaColores = { "verde": "#2d5a27", diff --git a/frontend/js/header.js b/frontend/js/header.js index 32dee7b..16221fb 100644 --- a/frontend/js/header.js +++ b/frontend/js/header.js @@ -61,13 +61,9 @@ async function cargarYActualizarTodo() { nombreCicloElem.textContent = ciclo === 0 ? "Ciclo C -" : ciclo === 1 ? "Ciclo A -" : "Ciclo B -"; try { - const respuesta = await fetch('data/calendario-liturgico.json'); - const datosCalendario = await respuesta.json(); - - // Buscar el día exacto o, si no existe, el último día anterior - const datosHoy = [...datosCalendario] - .filter(d => d.fecha <= fechaISO) - .sort((a, b) => b.fecha.localeCompare(a.fecha))[0]; + const respuesta = await fetch(`${API_BASE_URL}/calendario/hoy`); + if (!respuesta.ok) throw new Error("Sin datos litúrgicos"); + const datosHoy = await respuesta.json(); // Fondos oscuros litúrgicos (más oscuros que el cuerpo #0D1B2E) const mapaFondos = {