🔀 Bootstrap, rest api, django, mysql
- plugin это приложение для установки с репозитория RepositoryCRM3 через REST api. Только приложение plugin является частью базовой установки CRM3, остальные приложения ставятся с репозитория
- приложение устанавливается, как обычный app django, после происходит автоматическая миграция данных и обновление файлов конфигурации
- содержит настройки для всех установленных плагинов и отсюда они добавляются в официальные django файлы.
REPO_URL ссылка на текущий рабочий json репозиторий плагинов
INSTALLED_APPS_ADD перечень значений для INSTALLED_APPS. Они добавляются в settings.py файле django INSTALLED_APPS += settings_plugin.INSTALLED_APPS_ADD INSTALLED_APPS_ADD = ['plugins.apps.PluginsConfig', 'pluginName.apps.pluginNameConfig']
PLUGIN_URLS - пути плагинов приложений,которые добавляются в urls.py PLUGIN_URLS = {'pluginName': {'path': 'pluginName/', 'include': 'pluginName.urls'}}
PLUGIN_CFG - настройки плагинов, для навигации и видежетов PLUGIN_CFG = {'pluginName': {'nav_url': 'pluginName_home', 'nav_name': 'Name in menu'}}
содержит логику добавления плагина
- добавление плагина к глобальным настройкам, копирование файлов, миграции в базу данных, тесты
Удаление плагинов - в базе, и в конфигурационных файлах django
pluginName/template/include/_sidebar_appsName.html рекомендованый файл сайдбара
pluginName/template/pluginName/sidebar_appsName_tags.html рекомендованый файл tag.html
pluginName/templatetags//sidebar_appsName_tags.py рекомендованый файл tag.py
apps/related.py - файл приложения с обязательными связанными методами
templates/related/_related.html - связанные html файлы
install.py - обязательный файл с настройками приложения
def get_related_data() - связанные данные которые отдает приложение
def get_related_filter() - фильтр для связаннных данных со своей логикой
данные для установки плагина
MODULE_NAME = 'pluginName'
INSTALLED_APPS_NAME = 'pluginName.apps.OrderConfig'
PLUGIN_CFG_UPDATE = { 'pluginName': { 'nav_url': 'pluginName_home', 'nav_name': 'Имя в меню'}}
INSTALLED_URL = { 'pluginName': { 'path': 'pluginName/', 'include': 'pluginName.urls'}}
Установка демо данных плагина def demodata в файле install.py
- приложения связываются в настройках приложения
- если приложение активно, оно автоматически добавляется в верхнее меню
- база каждого приложения(плагина) для создания связанных данных с другими приложениями в модели plugins есть переменная related_uuid, которая связывает данные между любыми приложениями
- пример вывода связанных данных в виде форм или данных можно посмотреть в файле views приложения orders
- relatedMixin (plugins.utils) класс с методами для вызова связанных данных, который использует общую логику для всех приложений. Получение связанных данных и обработка, вывод связанного меню (пример в приложении money)
- методы в приложении plugins, которые позволяют взаимодействовать приложениям между собой через связанные данные
- utils.py - файл методов сязанных данных и миксинов
- данные нового приложения для инсталляции в crm3