Creación y gestión de calendarios

:bookmark: Esta guía explica cómo crear y gestionar calendarios en Discourse usando 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
  • Gestionar opciones y configuraciones del calendario
  • Usar la función de calendario de días festivos

Habilitación del 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.

Creación de un calendario

Calendario de tema

Para incrustar un calendario en un tema:

  1. Crea un tema nuevo 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 de localización del visor. Actualmente, esto no es configurable.

Calendario de categoría

Para crear un calendario para toda una 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;tzPicker;defaultView=month
    
    • Reemplaza 123 con el ID de tu categoría (que se encuentra en la URL al ver 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

Adición de 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 “Insert date / time” en el menú del compositor + 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 tema nuevo en la categoría
  2. Haz clic en el botón de engranaje y selecciona “Create event”
  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 usando 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]

Eliminación de elementos del calendario

Los elementos del calendario se pueden eliminar de estas maneras:

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

Calendario de días festivos

El calendario de días festivos es una característica especial para gestionar las vacaciones del personal del sitio:

  1. Crea un tema con un calendario en la primera publicación
  2. Configura “holiday calendar topic id” al 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ática y aleatoriamente
  5. Aparece un emoji (predeterminado: :date:) junto a los nombres de los usuarios de vacaciones en las tarjetas de usuario y menciones @mentions
  6. Opcionalmente, incluye días festivos específicos de la localizació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 de mes, retroceder un mes y luego volver a la vista de lista para ver los 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: