Перейти к содержанию

Плагины

Плагины — это упакованные приложения 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.