Сегодня обнаружил баг, который не позволяет включить в календарь большое количество участников.
Допустимое количество может варьироваться, от 66 участников и меньше, в зависимости от того на сколько старый у вас портал или какое количество сотрудников в базе (играет роль длина ID пользователя).
А всё потому, что список участников записывается ВНЕЗАПНО текстом в таблицу b_calendar_event в поле ATTENDEES_CODES, которое создано с ограничением в 255 символов (varchar(255)).
Проблема возникает при повторном редактировании события, открыв форму вы увидите что количество участников не совпадает с первоначальным, соответственно если вы его не восстановите, сохранив событие - исключите из участников всех кто не уместился в поле ATTENDEES_CODES.
Самое простое решение, которое спасёт до фикса, это изменить тип поля ATTENDEES_CODES следующим запросом:
Кто не в курсе как это сделать: Админка->Настройки->Инструменты->SQL запрос.
Однако есть ещё одна проблема большого количества участников, она связана с интерфейсом формы.
Открыв форму события, новомодный селектор пользователей, начинает поочерёдно принимать в себя уже указанных участников, что бы отобразить их в форме, причем каждое добавление 1 участника вызывает обращение к серверу за получением занятости, нового и уже добавленных пользователей, для планировщика.
Это занимает довольно длительное время(45 человек - минута), но жить можно.
Вот такая вот масштабируемость...
Допустимое количество может варьироваться, от 66 участников и меньше, в зависимости от того на сколько старый у вас портал или какое количество сотрудников в базе (играет роль длина ID пользователя).
А всё потому, что список участников записывается ВНЕЗАПНО текстом в таблицу b_calendar_event в поле ATTENDEES_CODES, которое создано с ограничением в 255 символов (varchar(255)).
Проблема возникает при повторном редактировании события, открыв форму вы увидите что количество участников не совпадает с первоначальным, соответственно если вы его не восстановите, сохранив событие - исключите из участников всех кто не уместился в поле ATTENDEES_CODES.
Самое простое решение, которое спасёт до фикса, это изменить тип поля ATTENDEES_CODES следующим запросом:
ALT ER TABLE b_calendar_event CHANGE ATTENDEES_CODES ATTENDEES_CODES LONGTEXT; |
Кто не в курсе как это сделать: Админка->Настройки->Инструменты->SQL запрос.
Однако есть ещё одна проблема большого количества участников, она связана с интерфейсом формы.
Открыв форму события, новомодный селектор пользователей, начинает поочерёдно принимать в себя уже указанных участников, что бы отобразить их в форме, причем каждое добавление 1 участника вызывает обращение к серверу за получением занятости, нового и уже добавленных пользователей, для планировщика.
Это занимает довольно длительное время(45 человек - минута), но жить можно.
Вот такая вот масштабируемость...