📅 Nueva función de calendario: Fecha de finalización para eventos recurrentes

¡Ahora puedes establecer una fecha de finalización para eventos recurrentes en Discourse Calendar! :sparkles:

Esta función, muy solicitada, te permite especificar cuándo debe detenerse una serie de eventos recurrentes, dándote más control sobre la programación de tus eventos.

Crea eventos que se repitan diaria, semanal o mensualmente, y ahora determina exactamente cuándo deben finalizar.

Para más detalles sobre el plugin Calendar y sus funciones, visita el tema oficial de Calendar.

En el futuro, podríamos añadir la posibilidad de excluir días específicos de la semana.

22 Me gusta

Una cosa complicada con la palabra “Hasta” es que no es totalmente obvio si está incluido o excluido. ¿Hay algo que podamos hacer aquí para dar una mayor claridad?

2 Me gusta

Sí, Google Calendar tiene el mismo problema. Usan On, pero sufre la misma ambigüedad:

Sin embargo, creo que la mayoría de los usuarios asumirían de forma segura que Until incluye esa fecha.

3 Me gusta

Hasta (incluido):

?

edición: Hice esto por ahora UX: better copy by jjaffeux · Pull Request #737 · discourse/discourse-calendar · GitHub parece un buen cambio simple.


Una solución alternativa sería mostrar la fecha/hora real junto a la entrada de fecha, pero ¿probablemente exagerado?

3 Me gusta

Podrías tomar algunas ideas de mi implementación de las fechas de inicio/fin de cupón en el diálogo de Nuevo Cupón en un comercio electrónico en el que estoy trabajando:


Otro ejemplo para demostrar la flexibilidad y cómo evitamos la ambigüedad en los rangos de fechas en la interfaz de usuario:


Detalle técnico: En nuestra aplicación, siempre guardamos las fechas como “timestamp con zona horaria” (postgres), por lo que ninguna configuración de base de datos ni de conexión puede afectar la marca de tiempo real almacenada. Aunque Postgres no lo recomienda, lo hacemos porque ofrece garantías del 100% de la corrección de la fecha en cualquier situación y en cualquier consulta SQL. Puedes operar con zonas horarias de fecha directamente en postgres usando sus funciones de fecha/hora/zona horaria y estar seguro de que funcionará 100% correcto siempre. Confiamos en ello.

Y luego tenemos una configuración de zona horaria para todo tipo de entidades que la necesitan: perfiles de usuario, mercados, cupones, informes para contadores, etc., para que podamos traducir cualquier fecha a cualquier zona horaria sobre la marcha sin dudarlo.

Las principales conclusiones aquí son:

  1. Siempre almacena la fecha y hora con zona horaria.
  2. Siempre almacena la preferencia de zona horaria.
  3. Sé muy explícito sobre las fechas en la interfaz de usuario, no hagas ninguna magia.
  4. Deja que el usuario vea las fechas reales en la zona horaria elegida antes de hacer clic en “Guardar”.
1 me gusta

Hola,

En mi instancia autoalojada (creada hace apenas un mes), no veo ninguna opción de fecha de finalización.

¿Estoy haciendo algo mal?

Creo que la captura de pantalla muestra el diálogo Insertar fecha / hora en lugar del diálogo Crear evento.

Se trata de dos flujos de trabajo diferentes en Discourse Calendar:

  • Insertar fecha / hora se utiliza para las respuestas en un tema cuya publicación original (OP) contiene un bloque [calendar].
  • Crear evento crea un Evento real ([event ...][/event]) y es donde están disponibles los ajustes de Evento recurrente, incluida la fecha de fin de la recurrencia.

Por lo tanto, para la función anunciada en este tema, intenta abrir el menú + del compositor y elegir Crear evento, en lugar de Insertar fecha / hora.

Recientemente estaba probando ese flujo de Evento recurrente y también encontré un caso límite después de que una recurrencia acotada haya expirado por completo, para lo cual he abierto una corrección aquí:

1 me gusta

Efectivamente, se trataba de mantener un calendario (reuniendo eventos) en un tema.

Disculpa por el malentendido, soy nuevo en esto.

Efectivamente, al crear un evento, parece que funciona.

Una lástima que no funcione para Insertar fecha / hora.

¡Gracias por tu ayuda!

1 me gusta

No hay problema :slightly_smiling_face:

Solo para aclarar, no creo que se trate realmente de que la función no funcione para Insertar fecha / hora — es un flujo de trabajo diferente.

Insertar fecha / hora se utiliza cuando tienes un bloque [calendar] en la publicación inicial de un tema y quieres que las respuestas con fecha aparezcan en el calendario de ese tema en particular.

Crear evento, por otro lado, crea un Evento real de Discourse ([event ...][/event]). La fecha de finalización del evento recurrente discutida en este tema se aplica al sistema de recurrencia de ese Evento.

Por lo tanto, si tu objetivo es mantener un calendario local a un solo tema, el flujo de trabajo mostrado en tu captura de pantalla original es el adecuado; simplemente no utiliza la misma función de recurrencia acotada que los Eventos.

Sí, lo entiendo.

El caso de uso es mantener un calendario para mi escuela. Siempre hay citas que deben registrarse, por lo que cualquier padre o madre puede responder al tema para agregar una nueva cita.

Pero apenas ayer necesitaba ingresar una cita recurrente y, lamentablemente, no contamos con esa opción en este flujo de trabajo. Así que tengo que hacerlo manualmente, respondiendo muchas veces al tema con una nueva fecha (no sé si haya una forma más ingeniosa de hacerlo…).

Podría haber una forma de automatizar las respuestas manuales manteniendo tu flujo de trabajo actual con [calendar] a nivel de tema.

Una posibilidad sería utilizar un usuario dedicado de Discourse con la opción de responder por correo electrónico habilitada y, a continuación, configurar una herramienta como Power Automate o una Azure Logic App para generar las respuestas individuales con fecha y enviarlas al tema del calendario por correo electrónico.

Por ejemplo, una cita semanal con fecha de finalización podría expandirse mediante la automatización en las respuestas individuales necesarias, de modo que los padres seguirían viendo un calendario de tema normal en lugar de temas de Evento separados.

Hay algunos detalles sobre las claves de respuesta por correo electrónico por usuario de Discourse que deben configurarse con cuidado, por lo que este tema probablemente no sea el lugar adecuado para revisar la configuración.

Si ese enfoque te resultara útil, estaré encantado de ayudarte a resolverlo en un tema de Meta separado.

Hasta ahora solo ha ocurrido una vez, así que esperaré a la próxima (y ojalá que no vuelva a pasar).

Mantendré el truco de responder por correo electrónico, gracias. Pero, ¿eso significa que para un evento que se repite cada semana durante un año entero tendremos que generar 52 respuestas? Hacerá que el tema sea difícil de leer…

De lo contrario, supongo que, como tengo permisos de administrador, también puedo usar la API para añadir las citas manualmente.

¡Gracias por las aclaraciones!

Sí, lamentablemente la API automatizaría la creación de las respuestas, pero no resolvería realmente el problema del desorden: en un calendario de temas, las entradas individuales del calendario siguen representándose mediante respuestas individuales.

Acabo de encontrar una solicitud de función existente que es casi exactamente tu caso de uso:

Su ejemplo es un curso que se imparte durante doce miércoles consecutivos, y hacen la misma observación: crear cada ocurrencia individualmente es tedioso y desordena el tema.

Sugieren permitir la recurrencia en Insertar fecha / hora, junto con una fecha de finalización para la última ocurrencia, lo cual suena muy cercano a lo que necesitas.

Por lo tanto, en lugar de crear una solución alternativa con API/Power Automate que genere 52 publicaciones, esa solicitud de función probablemente sea el lugar adecuado para agregar tu caso de uso de calendario escolar.

1 me gusta

¡Gracias, lo haré!

Si te preocupa el desorden, te recomendaría la configuración Events_calendar_categories en lugar del calendario por tema, y los padres pueden acceder a Discourse mediante una automatización que lleva a