Multi Select Calendar

Сегодня, я решил поделится наработками по SugarCRM.

Появилась необходимость получения поля, которое будет хранить в себе несколько дат, заданных пользователем. К примеру, Вам необходимо назначить определенные дни проведения встреч или назначить дни для прозвона потенциальных клиентов. К сожалению, стандартный функционал SugarCRM не предусматривает такой возможности и целью получения такого поля, стало создание модуля MultiSelectCalendar. Данный модуль поможет легко справиться с выше описанными задачами и увеличит удобство работы с датами, так как пользователь будет наглядно видеть выделенные даты в календаре.

Скриншоты модуля:
Создание поля в студии

Создание поля в студии

Форма просмотра

Форма просмотра

Форма редактирования

Форма редактирования

Подробный функционал модуля
1. Модуль позволяет динамически добавлять любое количество дат к любым записям в SugarCRM.
Модуль разработан полностью в upgrade safe стиле.
Непосредственно в карточке редактирования(EditView) отображается полноразмерный календарь, с возможностью селекта дат (выбранные даты отображаются синим цветом). В карточке просмотра(DetailView) отображается тот же календарь, выбранные даты отображаются салатовым цветом, но уже без возможности селекта или деселкта дат (сделано для того, чтобы тем пользователям, которые имеют доступ только для просмотра не могли ничего изменять). В списке (ListView) отображается просто список дат в текущем формате.
2. Система поиска (SearchView).
Так как список выбранных дат храниться в базе данных в виде строки, то уже обычный способ поиска указанной даты невозможен. Объясню почему. Если мы будем просто указывать дату, то в лучшем случае получим список карточек, у которых эта дата первая в строке, но никак не вторая или последняя и так далее. Решить эту проблему можно, путем добавления знака «%» перед датой, но ведь как неудобно это делать, когда необходимо проверить сотню дат, не так ли? Я решил избавить пользователя от этих неудобств, путем написания JavaScript скрипта, который это делает автоматически. Вот так вот, с функционалом вроде бы все.
Принцип работы модуля
Специально для программистов и администраторов опишу принцип работы модуля.
Так как модуль разрабатывался в upgrade safe стиле, то был выбран наиболее простой вариант реализации — хранение всех дат в одной ячейке.
Данное хранение подобно варианту хранения MultiEnum значений , только в MultiSelectCalendar в качестве разделителя между данными выступает «,».
При сохранении данные складываются в одну строку, а извлекать можно без проблем, используя explode («,», $str).
Установка
Модуль устанавливается стандартно через загрузчик модулей в панели администратора SugarCRM.
Полная upgrade safe совместимость с версиями SugarCRM 6.4 и 6.5.
В версиях ниже не тестировался.
Использование
После установки в студии появляется новый тип поля MultiSelectCalendar (В русской версии «Мульти селект календарь»).
В любой модуль можно добавить поле данного типа.
Также после этого данное поле можно добавлять в любой макет формы: Редактирование, Просмотр, Поиск, Список.
Совместимость
Совместимость с кастомными пользовательскими модулями (custom modules)
Полная совместимость с любыми кастомными модулями.
Известные ограничения на использование
Никаких ограничений на использование обнаружено не было.

Вроде бы все! Качайте!

MultiSelectCalendar
Версия: 1.1, скачали: 243 раз.
Дата добавления: 20.06.2012
Тип: zip zip
Описание: Календарь с возможностью выбора множества дат
скачать Pазмер: 7.41 kB

По всем вопросам работы с модулем, пожалуйста, обращайтесь на наш форум в соответствующую ветку.

Написать комментарий

Вы должны войти чтобы комментировать.