Продолжение обсуждения из Discourse Calendar:
Проект Fedora в настоящее время имеет собственное веб-приложение для календаря Fedocal. Оно требует обновления, и я размышляю о том, сможем ли мы заменить его календарями в Discourse, вместо того чтобы переписывать автономное приложение. Это не совсем запрос на новую функцию, а скорее фиксация наших вариантов использования и того, чего, как мне кажется, не хватает, пока мы оцениваем дальнейшие шаги.
Варианты использования
Я вижу три важных варианта использования для Fedocal. Если их больше, пожалуйста, сообщите, и я добавлю их в рассмотрение.
- Планирование встреч. Это, безусловно, самое важное.
- Возможность для людей делиться своей доступностью. В настоящее время мы просим людей, несущих ответственность в проекте, указывать это для отпусков, но мало кто это действительно делает. (Я лично считаю это слишком неудобным, даже когда вспоминаю об этом.)
- Отображение мероприятий Fedora, таких как Flock to Fedora, Неделя разнообразия или вечеринки по случаю выпуска. На самом деле сегодня мы этого не делаем.
Другие возможности
- Мы пытались использовать Fedocal для расписания конференции Flock в 2013 году, но с тех пор не возвращались к этому. Было бы приятно, если бы у нас было решение, которое делало бы это привлекательным и простым.
- Отображение самого графика выпусков Fedora. В настоящее время, насколько я знаю, мы используем это только для планирования встреч по принятию решения о переходе к следующей фазе (go/no-go), а не самого графика. Если мы будем это делать, данные должны автоматически подтягиваться с Fedora Project schedules, а не вводиться вручную.
Недостатки текущего плагина календаря Discourse
Добавляемая в него система «событий» в настоящее время не подходит для наших нужд. (Она собирает «события» из сообщений по всему сайту и помещает их в один глобальный календарь. Нам нужно гораздо больше этого.
Мое первое предположение состоит в том, что мы сосредоточимся на расширении «традиционной» части плагина календаря, где календарь находится в первом ответе темы и «питается» только ответами на эту тему. Однако возможно, что другой подход — сбор событий со всего сайта — будет лучше. В таком случае нам потребуется расширить его возможность иметь несколько целевых календарей. (И в этом случае было бы неплохо иметь возможность встраивать их в закрепленные темы, а не прятать только в меню-гамбургер.)
Итак, учитывая вышесказанное, вот что нам понадобится:
В общем
- Сам дисплей календаря довольно примитивен.
- Он мог бы быть намного красивее
- Он не масштабируется и не адаптируется к способу отображения каким-либо образом
- Он жестко задан для недель с понедельника по воскресенье в европейском стиле
- Кажется, он всегда показывает дни в UTC, хотя записи сделаны в локальных часовых поясах, из-за чего однодневные события в локальном часовом поясе могут выглядеть так, будто они охватывают два дня в календаре. (Команда Discourse знает об этой ошибке.)
- Просмотр месяца в настоящее время показывает только первые несколько символов описания события. Это нормально, если календарь касается только одного простого элемента (см. пример использования здесь для Fedora Social Hour), но не подходит для календаря с множеством разных вещей.
- В настоящее время версия календаря «Праздники» может назначать цвета событиям, но делает это, используя значение, программно полученное из имени пользователя. Вместо этого это должно быть настраиваемым для каждого события отдельно и применяться ко всем календарям, а не только к праздничному.
- Мне кажется, нет .ical-канала? Это было бы здорово, чтобы люди могли добавить его в свой Google Календарь или что-то подобное.
- Желательно: возможность генерировать письма-напоминания, отправляемые на рассылки, а не только подписчикам. У нас еще не все в Discourse!
- Желательно: персональный вид календаря, где вы сами выбираете, какие именно записи отслеживать.
Вариант использования: Встречи
- В Fedocal есть две основные «оси» — группа, к которой принадлежит запись календаря (например, «совет»), и местоположение (например, «#fedora-meeting»). Плагин календаря может делать то или другое: мы можем создать тему «Встречи совета Fedora» или тему «Канал встреч Fedora», но записи не будут связаны. Я не совсем уверен, как лучше всего спроектировать это как плагин — думаю, нам пригодится экспертиза UX-дизайнеров для обдумывания этого.
- Было бы вполне достаточно, если бы ось «группа» соответствовала группам Discourse, особенно потому что мы НАДЕЮСЬ, ЧТО СКОРО перейдем на связывание групп Discourse с нашей SSO.
- Или, возможно, ось «группа» календаря могла бы быть тегом. Это могло бы быть более гибким и подошло бы нам, так как мы планируем сопоставление групп с тегами для организации нашего сайта.
- Ось «местоположения» короткая — у нас несколько каналов для встреч, и, вероятно, достаточно разрешить местоположение «другое» для нестандартных случаев.
- Критично: Система должна предотвращать — или хотя бы предупреждать о — конфликтах по обеим осям. То есть не может быть двух встреч группы совета в одно и то же время, и не может быть двух встреч от другой группы в одном и том же месте в одно и то же время.
- за исключением случая, если у нас есть универсальное «другое»… так что, я полагаю, некоторые места должны допускать наложения.
- Синтаксис повторяющихся событий немного странный, но приемлемый. Однако повторяющиеся события просто отображаются в сетке календаря как повторяющиеся (и в напоминании обновляются до следующего), не более того. А должно быть больше:
- Критично: Должна быть возможность для пользователей подписаться на уведомление для каждого повторяющегося события на основе каждой записи календаря.
- Желательно: конфигурация на уровне группы Discourse для уведомлений по умолчанию для конкретного календаря, чтобы, например, участники группы совета по умолчанию получали уведомления о записях календаря совета.
- Желательно: возможность также настроить уведомления-предупреждения за 15 минут до предстоящих встреч.
- Важно: Должна быть возможность пометить конкретное событие как пропущенное (или перенесенное на другое время) без изменения всего события.
- Критично: Должна быть возможность для пользователей подписаться на уведомление для каждого повторяющегося события на основе каждой записи календаря.
- Сейчас длительность события задается записями вида
[date=2021-11-28 time=12:00:00 timezone="America/New_York"] → [date=2021-11-28 time=13:00:00 timezone="America/New_York"]. Это утомительно вводить, и результат (2021-11-28T17:00:00Z → 2021-11-28T18:00:00Z) не сразу очевиден. Было бы здорово иметь[date=2021-11-28 time=12:00:00 timezone="America/New_York" duration="1 hour"]вместо этого.- Желательно: Записи без указания длительности должны визуально отличаться — и, возможно, разрешаться только для записей «на весь день».
- Желательно: каждая запись календаря (отдельно для повторяющихся) могла бы иметь ссылку на тему с повесткой дня и заметками. Эта тема не должна создаваться автоматически без взаимодействия, но ее должно быть легко начать в один клик, и после создания она должна автоматически связываться.
Вариант использования: «Праздники»
- Праздничный календарь также должен учитывать группы. В настоящее время есть специальная обработка для (персонала сайта Discourse) — это должно быть обобщено и сделано настраиваемым, а также разрешены разные календари для разных групп, а также глобальный.
- В конфигурации по умолчанию праздничный календарь показывает стандартные национальные праздники для каждого человека, у которого настроен его локаль. Если это больше, скажем, пяти человек в двух разных местах, это перегружает всё остальное. Discourse предоставил нам временный обходной путь для скрытия этого, хотя.
- Желательно: В настоящее время сотрудники получают эмодзи
рядом со своим именем пользователя, когда они в отпуске, видимый только другим сотрудникам. Видимость этого значка должна быть настраиваемой. - Желательно: разрешить настройку отображаемого эмодзи.
- Бонус: разрешить пользователям выбирать из списка эмодзи и причин для недоступного времени (отпуск, болезнь, командировка и т. д.).
Мероприятия Fedora
На самом деле, я думаю, то, что у нас есть сегодня, может сработать для этого. Однако некоторые из вышеперечисленных функций — более красивый и гибкий дисплей календаря, уведомления, цвета — были бы полезны.
Для других возможностей
- Сценарий использования расписания конференции — это просто сценарий использования расписания встреч, но в гораздо более интенсивном масштабе. Вручную отслеживать конфликты становится невозможно. Для этого может потребоваться ось на уровне пользователя, а не группы. (Спикеры не могут быть в двух местах одновременно.) И в отличие от наших мест проведения встреч, которые не менялись сильно за 15 лет (кроме обновлений URL) и, вероятно, не изменятся еще 15 лет, у каждого события есть свой набор мест.
- Календарь графика выпусков: я думаю, это в основном вопрос автоматизации импорта из существующих данных графика. Существующий плагин календаря, я думаю, мог бы в основном работать. Опять же, как и с мероприятиями Fedora, было бы неплохо иметь цветовую кодировку.