Creando y gestionando calendarios

:bookmark: Esta guía explica cómo crear y administrar calendarios en Discourse utilizando el plugin Calendar (and Event).

:person_raising_hand: Nivel de usuario requerido: Todos los usuarios

Los calendarios son una característica potente en Discourse que te permite organizar y mostrar eventos dentro de tu comunidad. Esta guía te guiará a través del proceso de creación de calendarios, adición de eventos y su gestión eficaz.

Resumen

  • Habilitar el plugin Calendar
  • Crear un calendario en un tema o categoría
  • Añadir eventos a tu calendario
  • Administrar opciones y configuraciones del calendario
  • Usar la función de calendario de días festivos

Habilitar el plugin Calendar

Antes de poder crear calendarios, asegúrate de que el plugin “Calendar (and Event)” esté habilitado en tu instancia de Discourse. Para más detalles sobre cómo habilitar el plugin y sus configuraciones relacionadas, consulta la documentación del plugin Discourse Calendar and Event.

Crear un calendario

Calendario de tema

Para incrustar un calendario en un tema:

  1. Crea un nuevo tema o edita la primera publicación de un tema existente

  2. Añade el siguiente código en líneas separadas:

    [calendar]
    [/calendar]
    
  3. Publica o actualiza la publicación


:information_source: El lunes se considera el primer día de la semana en los calendarios de Discourse, independientemente de la configuración regional del espectador. Actualmente, esto no es configurable.

Calendario de categoría

Para crear un calendario a nivel de categoría:

  1. Ve a /admin/site_settings/category/discourse_calendar?filter=plugin=discourse-calendar

  2. En la configuración “calendar categories”, añade una entrada con el siguiente formato:

    categoryId=123;postId=4949;tzPicker;defaultView=month
    
    • Reemplaza 123 con el ID de tu categoría (se encuentra en la URL al ver la categoría)
    • Reemplaza 4949 con el ID de la publicación de la descripción de la categoría (se encuentra añadiendo .json a la URL del tema “Acerca de la categoría”)
  3. Añade el ID de la categoría a la configuración “events calendar categories”

  4. Opcionalmente, configura “discourse post event allowed on groups” para controlar qué grupos pueden añadir eventos

Añadir elementos a un calendario

Calendario de tema

Para añadir un evento a un calendario de tema:

  1. Responde al tema que contiene el calendario
  2. Usa la función “Insertar fecha / hora” en el menú del compositor \u003ckbd\u003e+\u003c/kbd\u003e para añadir una fecha o un rango de fechas
  3. Añade una descripción encima de la fecha
  4. Envía la respuesta

El evento aparecerá en el calendario después de recargar el tema.

Calendario de categoría

Para añadir un evento a un calendario de categoría:

  1. Crea un nuevo tema en la categoría
  2. Haz clic en el botón de engranaje y selecciona “Crear evento”
  3. Rellena los detalles del evento y publica

El evento aparecerá en el calendario de la categoría.

Opciones del calendario

Puedes personalizar tu calendario utilizando varias opciones:

Opción Ejemplo Descripción
Ocultar fines de semana weekends="false" Oculta sábado y domingo
Ocultar días específicos hiddenDays="1,2" Oculta lunes y martes (usa 0-6 para domingo-sábado)
Establecer vista predeterminada defaultView="basicWeek" Opciones: month, basicWeek, listNextYear
Ignorar zonas horarias fullDay="true" Trata todos los eventos como eventos de día completo

Ejemplo de uso:

[calendar weekends="false" hiddenDays="1,2" defaultView="basicWeek" fullDay="true"]
[/calendar]

Eliminar elementos del calendario

Los elementos del calendario se pueden eliminar de estas maneras:

  • Los elementos del calendario caducados se pueden eliminar automáticamente usando la configuración “delete expired event posts after”
  • Usa temporizadores de temas para eliminar respuestas automáticamente
  • Elimina manualmente las publicaciones según sea necesario

Calendario de días festivos

El calendario de días festivos es una función especial para administrar las vacaciones del personal del sitio:

  1. Crea un tema con un calendario en la primera publicación
  2. Establece “holiday calendar topic id” en el ID de este tema
  3. Las respuestas a este tema se tratarán como tiempo de vacaciones para el usuario que publica
  4. Las entradas de vacaciones se colorean automáticamente y de forma aleatoria
  5. Aparece un emoji (por defecto: :date:) junto a los nombres de los usuarios de vacaciones en las tarjetas de usuario y @menciones
  6. Opcionalmente, incluye días festivos específicos de la región para los usuarios habilitando “calendar automatic holidays enabled”

Preguntas frecuentes

P: ¿Por qué algunos eventos parecen abarcar varios días?
R: El calendario siempre está en UTC. Usa las configuraciones “all day event start time” y “all day event end time” para ajustar las diferencias de zona horaria.

P: ¿Puedo controlar los colores de las entradas del calendario de días festivos?
R: Actualmente, no es posible controlar los colores de las entradas del calendario de días festivos ni obtener entradas coloreadas en calendarios normales.

P: ¿Cómo muestro eventos pasados en una vista de lista?
R: Actualmente hay un error al usar defaultView=listNextYear que hace que la vista inicial esté vacía. Como solución alternativa, los usuarios deben cambiar a la vista mensual, retroceder un mes y luego volver a la vista de lista para ver eventos pasados.

Recursos adicionales

11 Me gusta

Tengo dificultades para entender cómo crear un calendario para que se muestre en una categoría y qué hacer para llenarlo una vez que esté allí. Para los temas, es bastante sencillo, pero el caso de la categoría es más oscuro. ¿Alguien puede dar un ejemplo?

Crear un Calendario de Categoría

La diferencia entre un calendario de temas y un calendario de categorías es que el primero utiliza add date de la respuesta de un tema específico y muestra el calendario en el propio tema, mientras que el segundo utiliza create event en cualquier tema de la categoría configurada y muestra el calendario de eventos en la categoría.

1. Habilitar el plugin de calendario

En /admin/site_settings/category/discourse_calendar?filter=plugin%3Adiscourse-calendarcalendar categories:
Quieres algo como: categoryId=123;postId=4949;tzPicker;defaultView=month

  • categoryId es fácil de encontrar: es el número en la URL cuando haces clic en el #category
  • postId se puede encontrar así: ve a la descripción de la categoría (el tema fijado “Acerca de la categoría”) y añade .json a la URL: el postId está al principio del archivo JSON.
  • Revisa la documentación de discourse-calendar para opciones disponibles.
  • Añade la categoría (numerada 123 en nuestro ejemplo) a events calendar categories.
    Es posible que desees configurar discourse post event allowed on groups para incluir los grupos que deseas que puedan añadir eventos.

2. Crear un evento

Puedes crear un nuevo tema en la categoría 123 y create event (desde el botón de engranaje).
El evento aparecerá entonces en el calendario de la categoría.
:tada:

2 Me gusta

¿Hay alguna forma de mostrar no los próximos eventos, sino los del año pasado? Nos gustaría utilizar el plugin para nuestra sección de diario y listar todas las entradas pasadas en la primera publicación.

Al usar el siguiente fragmento, la lista de eventos está inicialmente vacía. Solo al volver a la vista mensual, retroceder un mes y volver a la vista de lista, funciona.

[calendar defaultView=listNextYear fullDay=true]
[/calendar]

Ver el error en acción:
CleanShot 2024-05-07 at 14.08.49 2

6 Me gusta

Yo también estoy interesado en esta función.

Me pregunto si también podría haber algunos scripts de explorador de datos para acompañar la búsqueda en el calendario.

3 Me gusta

Cuando alguien en mi comunidad publica un evento de calendario, y luego un administrador edita dicho evento, ¿por qué el publicador original ya no puede editarlo?

Esto es un gran problema que afecta a cientos de personas.

Aclara que por ahora solo el calendario de Temas comienza el lunes y que el calendario de Categorías comienza el domingo en su lugar.

Me encantaría que esto fuera configurable por el administrador, ya que ahora cada uno muestra el calendario de manera diferente…

3 Me gusta

Ajá. Tiene sentido, porque no me di cuenta–

Para que las vacaciones sean visibles en el calendario de vacaciones, vale la pena mencionar que la respuesta debe contener una marca de tiempo que agregas desde el menú de editores.
Además, como se indicó anteriormente, el id de la publicación se encuentra agregando .json a la url de la publicación. Creo que esto debería agregarse a la documentación aquí, ya que si las categorías tienen su id en la url, el id de la url del tema confundirá a las personas, ya que su número puede ser cercano pero no similar al id real del tema.

Gracias de todos modos por esta guía, hay mucho que cubrir porque hay muchas funciones, ¡lo cual es genial, gran trabajo desarrolladores!

Ahh, la reescritura de IA ha agregado algo de terminología de ‘evento’. Idealmente, este término debería evitarse en la parte del ‘Calendario’ de la documentación para no crear ambigüedad con la función adicional de ‘Evento’ del plugin.

1 me gusta

Quiero preguntar que mi discourse no tiene calendario ni botón de engranaje después de habilitar el plugin, ¿hay algo mal?

1 me gusta

El icono de engranaje fue cambiado a hace un tiempo. Creo que la inserción de fecha se trasladó a ese menú más (creo que ahora también usa el icono ).

Definitivamente un muy buen punto. Parece que esta documentación necesita una actualización (y probablemente también hay otros temas que todavía se refieren al icono de engranaje).

1 me gusta

Gracias por la respuesta, y luego me di cuenta de otro error relacionado con esto. Tengo este icono, pero es más grande y está en el lugar equivocado, bloqueando, como puedes ver. Es normal en el teléfono, pero no en el escritorio. Por cierto, no hay calendario sino eventos en la lista. ¿Qué puedo hacer? :pleading_face:

¿El modo seguro corrige la posición del icono más?

¿Qué botón de calendario esperas?

Ese es ahora

Tengo este botón de inserción, ¿cómo puedo publicar un calendario? Intenté el código [calendar], que funciona, pero ¿la fecha/hora incluye el calendario?

Para el botón grande, probé el modo seguro y sigue igual. Reconstruir la aplicación no funciona, ¿puedo esperar que la próxima actualización lo solucione?:cara_aliviada: ¿O hay algo que pueda hacer, aparte de empezar todo de nuevo?:cara_rodando_por_el_suelo: