Continuando la discusión de Discourse Calendar:
El Proyecto Fedora tiene actualmente nuestra propia aplicación web de calendario, Fedocal. Está programada para una actualización y estoy pensando si podríamos reemplazar los calendarios en Discourse en lugar de reescribir la aplicación independiente. Esto no es realmente una solicitud de características, sino una recopilación de nuestros casos de uso y de lo que considero que falta mientras evaluamos qué hacer.
Casos de uso
Veo tres casos de uso importantes para Fedocal. Si hay más, por favor házmelo saber y los añadiré a la consideración.
- Programación de reuniones. Este es, con diferencia, el más importante.
- Permitir que las personas compartan su disponibilidad. Actualmente pedimos a las personas con responsabilidad en el proyecto que ingresen esto para las vacaciones, pero pocas personas lo hacen realmente. (Yo, personalmente, lo encuentro demasiado engorroso cuando lo recuerdo).
- Mostrar eventos de Fedora como Flock to Fedora, Semana de la Diversidad o Fiestas de Lanzamiento. En realidad, no hacemos esto hoy.
Otras posibilidades
- Intentamos usar Fedocal para el horario de la conferencia Flock en 2013, pero no lo hemos hecho desde entonces. Sería agradable tener una solución que lo hiciera atractivo y fácil.
- Mostrar el propio calendario de lanzamientos de Fedora. Actualmente, creo que solo lo usamos para programar las reuniones de aprobación/rechazo, no el horario en sí. Si hiciéramos esto, debería provenir automáticamente de Fedora Project schedules en lugar de requerir una entrada manual.
Deficiencias del plugin de calendario de Discourse actual
El sistema de “eventos” que se está agregando actualmente es incorrecto para lo que necesitamos. (Recopila “eventos” de publicaciones de todo el sitio y los pone en un único calendario global. Necesitamos mucho más que eso).
Mi primera suposición es que nos centraríamos en extender la parte “tradicional” del plugin de calendario, que tiene un calendario en la primera respuesta a un tema que se “alimenta” de las respuestas a ese tema solamente. Sin embargo, podría ser posible que el otro enfoque —recopilar eventos de todo el sitio— fuera mejor. En ese caso, sin embargo, necesitaríamos extenderlo para poder tener múltiples calendarios de destino. (Y en ese caso, sería bueno poder incrustarlos en temas fijados, no solo ocultarlos en el menú de hamburguesa).
Dicho esto, aquí hay algunas cosas que necesitaríamos:
En general
- La visualización del calendario en sí es bastante rudimentaria.
- Podría ser mucho más bonito
- No escala ni se adapta de ninguna manera a cómo se muestra
- Está codificado de forma rígida para semanas de lunes a domingo al estilo de la UE
- Parece mostrar siempre los días en UTC, a pesar de que las entradas están en zonas horarias locales, lo que hace que los eventos de todo el día en una zona horaria local parezcan abarcar dos días en el calendario. (El equipo de Discourse está al tanto de este error).
- La vista mensual actualmente solo muestra los primeros caracteres de la descripción de un evento. Eso está bien si el calendario es solo para una cosa simple (ver en uso aquí para Fedora Social Hour, pero no es bueno para un calendario con muchas cosas diferentes.
- Actualmente, la versión “Festivos” del calendario puede asignar colores a los eventos, pero lo hace utilizando un valor derivado programáticamente del nombre de usuario. Esto debería ser configurable por evento y aplicarse a todos los calendarios, no solo al de festivos.
- No creo que haya un feed .ical. Sería bueno que las personas pudieran agregarlo a su Google Calendar o lo que sea.
- Agradable tener: capacidad de generar correos electrónicos de recordatorio enviados a listas de correo, no solo a usuarios suscritos. ¡Todavía no tenemos a todos en Discourse!
- Agradable tener: una vista de calendario personal donde se opta por rastrear exactamente qué entradas.
Caso de uso de reuniones
- Fedocal tiene dos “ejes” principales: el grupo al que pertenece la entrada del calendario (como “consejo”) y la ubicación (como “#fedora-meeting”). El plugin de calendario puede hacer una cosa u otra: podemos crear un tema “Reuniones del Consejo de Fedora” o un tema “Canal de Reuniones de Fedora”, pero las entradas no estarían vinculadas. No estoy muy seguro de cuál sería el mejor diseño para eso como plugin; creo que podríamos usar algo de experiencia en diseño UX para pensar en ello.
- estaría bien si el eje “grupo” fueran grupos de Discourse, especialmente porque algún día pronto espero vamos a vincular los grupos de Discourse a nuestro SSO.
- o, posiblemente, el eje “grupo” del calendario podría ser una etiqueta. Eso podría ser más flexible y nos funcionaría porque planeamos un mapeo de grupo a etiqueta para la organización de nuestro sitio.
- el eje “ubicaciones” es corto: tenemos un puñado de canales de reunión, y probablemente sea suficiente permitir una ubicación “otra” para casos extraños.
- Crítico: El sistema necesita prevenir —o al menos advertir sobre— conflictos en ambos ejes. Es decir, no puede haber dos reuniones del grupo del consejo al mismo tiempo, y no puede haber dos reuniones de un grupo diferente en la misma ubicación al mismo tiempo.
- excepto si tenemos un “otro” comodín… así que, supongo que algunas ubicaciones deberían poder tener superposiciones.
- La sintaxis para eventos repetidos es un poco extraña, pero está bien. Sin embargo, los eventos repetidos solo aparecen en la cuadrícula del calendario como repetidos (y en el recordatorio se actualizan al siguiente), nada más. Y debería haber más:
- Crítico: Debería ser posible que los usuarios se suscriban a una notificación para cada evento repetido, por entrada de calendario individual.
- Agradable tener: una configuración por grupo de Discourse para las notificaciones predeterminadas para un calendario particular, de modo que, por ejemplo, los miembros del grupo del consejo reciban notificaciones por defecto para las entradas del calendario del consejo.
- Agradable tener: capacidad de configurar también notificaciones de advertencia de 15 minutos para las próximas reuniones.
- Importante: Debería ser posible marcar eventos específicos para omitirlos (o para que se realicen en un momento diferente) sin cambiar todo.
- Crítico: Debería ser posible que los usuarios se suscriban a una notificación para cada evento repetido, por entrada de calendario individual.
- Ahora mismo, la duración del evento se hace con entradas como
[date=2021-11-28 time=12:00:00 timezone="America/New_York"] → [date=2021-11-28 time=13:00:00 timezone="America/New_York"]. Eso es tedioso de ingresar y el resultado (2021-11-28T17:00:00Z → 2021-11-28T18:00:00Z) no es inmediatamente obvio. Sería bueno tener[date=2021-11-28 time=12:00:00 timezone="America/New_York" duration="1 hour"]en su lugar.- Agradable tener: Las entradas sin duración deberían ser visualmente diferentes — y quizás solo permitidas para entradas de “todo el día”.
- Agradable tener: cada entrada de calendario (por separado para las repetidas) podría tener un enlace a un tema de agenda + notas. Este tema no se crearía automáticamente sin interacción, pero debería ser fácil de iniciar con un clic y, una vez creado, enlazado automáticamente.
Caso de uso de “Festivos”
- El calendario de festivos también debería ser consciente de los grupos. Actualmente tiene algunas especializaciones para el personal (del sitio de Discourse): eso debería generalizarse y configurarse, y se permitirían diferentes calendarios para diferentes grupos, así como uno global.
- En su configuración predeterminada, el calendario de festivos muestra los días festivos nacionales estándar para cada persona que tiene configurada su configuración regional. Si eso es más que, digamos, cinco personas en no más de dos ubicaciones diferentes, abruma todo lo demás. Sin embargo, Discourse nos ha proporcionado una solución temporal para ocultar eso.
- Agradable tener: Actualmente, los miembros del personal reciben un emoji
junto a su nombre de usuario cuando están de vacaciones, solo visible para otros miembros del personal. La visibilidad de este icono debería ser configurable. - Agradable tener: permitir la configuración del emoji que se muestra.
- Bonificación agradable de tener: permitir a los usuarios seleccionar de una lista de emojis y razones para un período de indisponibilidad determinado (vacaciones, enfermedad, viaje, etc.)
Eventos de Fedora
De hecho, creo que lo que tenemos hoy podría funcionar para esto. Sin embargo, algunas de las cosas anteriores —una visualización del calendario más bonita y flexible, notificaciones, colores— serían útiles.
Para otras posibilidades
- El caso de uso del horario de conferencias es simplemente el caso de uso de la programación de reuniones, pero de forma muy intensa. Mantener un registro manual de los conflictos se vuelve imposible. Para esto, puede que necesitemos un eje a nivel de usuario en lugar de un eje a nivel de grupo. (Los ponentes no pueden estar en dos lugares a la vez). Y a diferencia de nuestras salas de reuniones, que no han cambiado mucho en 15 años (excepto por las actualizaciones de URL) y probablemente no lo harán en otros 15, cada evento tiene su propio conjunto de ubicaciones.
- Calendario de lanzamientos: Creo que esto es principalmente una cuestión de automatización en la importación de los datos del horario existente. El plugin de calendario existente podría funcionar en su mayor parte, creo. De nuevo, como con los eventos de Fedora, la codificación por colores sería agradable.