Плагины
Плагины — это упакованные приложения Django, которые можно установить вместе с InfraVision для предоставления пользовательской функциональности, отсутствующей в базовом приложении. Плагины могут вводить собственные модели и представления, но не могут вмешиваться в существующие компоненты. Пользователь InfraVision может выбрать установку плагинов, предоставленных сообществом, или создать свои собственные.
Пожалуйста, ознакомьтесь с документированными инструкциями по установке плагина, чтобы начать работу.
Возможности
Архитектура плагинов InfraVision позволяет следующее:
- Добавлять новые модели данных. Плагин может вводить одну или несколько моделей для хранения данных. (Модель — это по сути таблица в базе данных SQL.)
- Добавлять новые URL и представления. Плагины могут регистрировать URL под корневым путём
/pluginsдля предоставления просматриваемых представлений для пользователей. - Добавлять контент в существующие шаблоны моделей. Класс контента шаблона может использоваться для внедрения пользовательского HTML-контента в представление базовой модели InfraVision. Этот контент может появляться слева, справа или внизу страницы.
- Добавлять пункты навигационного меню. Каждый плагин может регистрировать новые ссылки в навигационном меню. Каждая ссылка может иметь набор кнопок для конкретных действий, аналогично встроенным элементам навигации.
- Добавлять пользовательское middleware. Пользовательское Django middleware может быть зарегистрировано каждым плагином.
- Объявлять параметры конфигурации. Каждый плагин может определять обязательные, опциональные и параметры конфигурации по умолчанию в своём уникальном пространстве имён. Параметры конфигурации плагина определяются пользователем в
PLUGINS_CONFIGвconfiguration.py. - Ограничивать установку по версии InfraVision. Плагин может указать минимальную и/или максимальную версию InfraVision, с которой он совместим.
Ограничения
Либо по политике, либо по техническим ограничениям, взаимодействие плагинов с ядром InfraVision ограничено определёнными способами. Плагин не может:
- Изменять базовые модели. Плагины не могут изменять, удалять или переопределять базовые модели InfraVision каким-либо образом. Это правило существует для обеспечения целостности базовой модели данных.
- Регистрировать URL вне корня
/plugins. Все URL плагинов ограничены этим путём для предотвращения конфликтов путей с ядром или другими плагинами. - Переопределять базовые шаблоны. Плагины могут внедрять дополнительный контент там, где это поддерживается, но не могут манипулировать или удалять базовый контент.
- Изменять базовые настройки. Реестр конфигурации предоставляется для плагинов, однако они не могут изменять или удалять базовую конфигурацию.
- Отключать базовые компоненты. Плагинам не разрешено отключать или скрывать базовые компоненты InfraVision.