Старт нового проекта¶
Миграция ¶
Создаёт и обновляет базовые таблицы (пользователи, группы, уровни иерархии, параметры, измерения, меры и т.д.). Таблицы фактов и dim-таблицы создаются отдельно в рамках работы с параметрами и иерархиями. Выполняется при разворачивании нового приложения и при каждом изменении (при работе из Docker автоматически в ином случае требуется ручной запуск).
python manage.py migrate
Создание суперпользователя ¶
python manage.py createsuperuser
Далее в консоли потребуется ввести
- имя пользователя (обязательно)
- адрес электронной почты (опционально)
- пароль (обязательно)
- подтверждение пароля (обязательно)
Загрузка мета-данных¶
Выполнить все последующие шаги одной командой
python manage.py initializeproject <start-date> <end-date> [add_tech_week]
<start-date>— начальная дата (формат YYYY-MM-DD)<end-date>— конечная дата (формат YYYY-MM-DD)[add_tech_week]— опциональный аргумент (true/false), включает технические недели в календаре. По умолчаниюfalse(технические недели не создаются).
Примеры:
python manage.py initializeproject 2024-01-01 2024-12-31 # без технических недель
python manage.py initializeproject 2024-01-01 2024-12-31 true # с техническими неделями
Мета-данные определяют бизнес-модель (иерархии, измерения, меры, параметры, скрипты бизнес-логики).
Если данные загружаются из фикстур, обратите внимание, что фикстуры будут загружаться в том порядке, в котором стоят приложения в settings.INSTALLED_APPS.
Рекомендуется использовать стандартные имена для фикстур.
Структура проекта, расширяющего функциональность стандартных модулей
demand_planningиsupply_planning
project/
├── fixtures/
│ ├── hierarchy.yaml
│ ├── parameters.yaml
│ ...
├── site-packages/
│ ├── planiqum/
│ │ ├── apps/
│ │ │ ├── demand_planning/
│ │ │ │ ├── fixtures/
│ │ │ │ │ ├── hierarchy.yaml
│ │ │ │ │ ├── parameters.yaml
│ │ │ ├── supply_planning/
│ │ │ │ ├── fixtures/
│ │ │ │ │ ├── hierarchy.yaml
│ │ │ │ │ ├── parameters.yaml
.env
CUSTOM_INSTALLED_APPS=planqium.apps.demand_planning,planiqum.apps.supply_planning,project
Сценарии бизнес-логики¶
python manage.py collectscripts
Календари¶
python manage.py generatecalendar <start-date> <end-date>
Даты задаются в формате 'YYYY-MM-DD'.
По команде создаются необходимые уровни иерархии и заполняются календари для указанного промежутка времени.
Подробнее см. Генерация календаря (generatecalendar, generate_calendar)
Если требуется добавить нестандартные календари, это можно сделать на следующих шагах, добавив необходимые уровни иерархии.
Иерархии¶
Структура иерархии определяется содержимым моделей planiqum.core.hierarchy.models.Type и planiqum.core.hierarchy.models.Level.
Для заполнения этих моделей используется стандартный механизм "фикстур" Django.
python manage.py loadhierarchy <fixture1> <fixture2>
По команде будут загружены данные из фикстур и проведена синхронизация иерархии.
Если не указать аргументы, будут загружаться данные из фикстуры hierarchy.yaml.
В иерархиях не нужно описывать календари, они создаются автоматически.
Параметры¶
Измерения, параметры, меры
python manage.py loadparameters <fixture1> <fixture2>
Загружаются данные из фикстур, выполняется синхронизация fact-таблиц.
Если не указаны фикстуры, данные загружаются из фикстуры parameters.yaml.
Перед загрузкой параметров обязательно должны быть созданы сценарии, так как на этом шаге к мерам привязываются допустимые методы корректировки, которые являются сценариями.
Стили¶
Стили для форматирования таблиц, включая reaonly/readwrite. Загружаются из фикстуры.
python manage.py loaddata styles