TimetableUpdate — сервис для мониторинга и скачивания файлов с расписанием университета и Django-сайт для доступа к ссылками на эти файлы и их прошлые версии в облаке (и на самом сервере).
-
Все элементы конфигурации задаются в
TimetableUpdate/myproject/settings.py
-
Настроить БД (MySQL): создать пустую базу — см. переменную
DATABASES
, сделать migrate средствами Django. -
Конвертация XLS выполняется через LibreOffice (его нужно установить отдельно). Путь к LibreOffice — переменная
LIBREOFFICE_EXE
-
Указать путь к конфигурационному файлу гугл-диска —
GOOGLE_AUTH_FILE
-
Создать супер-юзера Django для доступа к админке проекта (обычная админка Django не нужна, но супер-юзер нужен всё равно). Админ-панель проекта доступна по ссылке
/admin
. -
Для запланированной задачи
update_timetable
обычно нужен cron.
При запуске создаётся задача для cron (линукс):timetable/apps.py
→TimetableConfig
→ready
-
все методы по cron:
TimetableUpdate/timetable/cron_utils.py
- Запуск сайта — как обычно для Django
python manage.py runserver
-
Вне линукса можно работать без cron
Разовый запуск задачи обновления файлов:
python manage.py update_timetable
Подробнее см. в TimetableUpdate/timetable/management/commands/update_timetable.py
- Переименовать Django-проект из
myproject
вtimetable_project
(директорию и упоминания) - Отвязать от обязательного использования LibreOffice (дать выбор: LibreOffice, xls2xlsx или не преобразовывать)
- Перенести пароли и др. закрытую информацию в переменные среды
- Сделать обработку ошибок окружения и конфигурации:
- если cron недоступен
- если LibreOffice недоступен
- если гугл-диск недоступен
- если сайт-источник недоступен
- Интегрировать коммиты из ветки
Core_versions
вmain
- Контейнер Docker
- Подсветка недавно изменённых ячеек