Генерация календаря (generatecalendar, generate_calendar)¶
Назначение¶
Команды generatecalendar и generate_calendar предназначены для автоматического создания календарных уровней и элементов (день, неделя, месяц и т.д.) в базе данных Planiqum за указанный период.
generatecalendar— обёртка, валидирует даты и вызываетgenerate_calendar.generate_calendar— основная команда, вызывает функциюbuild_calendar.
Сигнатуры команд¶
python manage.py generatecalendar <start-date> <end-date> [add_tech_week]
python manage.py generate_calendar <start-date> <end-date> [add_tech_week]
<start-date>— начальная дата (YYYY-MM-DD)<end-date>— конечная дата (YYYY-MM-DD)[add_tech_week]— опциональный аргумент ("true"/"false"), добавляет технические недели
Архитектура¶
generatecalendar(management/commands/generatecalendar.py):- Проверяет формат дат, опционально принимает
add_tech_week, вызываетgenerate_calendarчерезcall_command.
- Проверяет формат дат, опционально принимает
generate_calendar(management/commands/generate_calendar.py):- Парсит даты, опционально принимает
add_tech_week. - Вызывает
build_calendarизcore/horizons/libs/build_calendar.py.
- Парсит даты, опционально принимает
build_calendar:- Генерирует DataFrame с датами, неделями, месяцами, кварталами и т.д.
- При
add_tech_week=Trueдобавляет технические недели. - Импортирует уровни и элементы в иерархию.
Пример использования¶
python manage.py generatecalendar 2024-01-01 2024-12-31
python manage.py generatecalendar 2024-01-01 2024-12-31 true
python manage.py generate_calendar 2024-01-01 2024-12-31 true
Важно¶
- Если уровни или элементы уже существуют, повторно не создаются.
- Для нестандартных структур используйте аргумент
add_tech_week.
Ссылки на код¶
generatecalendar.py- команда для генерации календаряgenerate_calendar.py- команда для генерации календаря (альтернативная)build_calendar.py- библиотека для построения календаря