Конструктор расписания
Руководство пользователя
Конструктор помогает составлять и редактировать расписание занятий для школ и вузов. Работать можно в любом современном браузере.
1. Быстрый старт
Рекомендуемый порядок действий при первом запуске:
- Откройте вкладку «1. Расписание занятий» и настройте шаблон разбивки дня: номера пар, время начала/конца, тип (занятие, перерыв, обед).
- Создайте дисциплины («5. Дисциплины»).
- Создайте аудитории («2. Аудитории»).
- Создайте группы («3. Группы»).
- Создайте преподавателей («4. Преподаватели»), добавьте им дисциплины и потоки групп.
- Создайте учебный план для каждой группы («6. Учебный план»).
- Перейдите в «7. Расписание группы» и начните ставлять расписание.
2. Раздел 1. Расписание занятий (сетка пар)
Здесь задаётся разбивка дня по часам. Сетка — общая для всех справочников: именно из неё берутся пары (уроки) в разделах 2, 3, 4 и 7–9.
2.1. Шаблон разбивки
В верхней таблице настраивается «эталонная» сетка:
- № пары — номер занятия (число или строка);
- Тип — занятие, перерыв или обед; перерывы и обед нельзя заполнить занятием;
- Начало и Конец — время пары (урока).
Кнопки:
- + Добавить пару — добавить строку в шаблон;
- ✕ рядом со строкой — удалить занятие;
- Все / Будни / Ничего — быстро отметить дни для применения шаблона;
- Применить шаблон к выбранным — перезаписать структуру выбранных дней текущим шаблоном.
2.2. Семь колонок дней
В каждой колонке — свой набор пар (занятий). Кнопки в шапке дня:
| Кнопка | Что делает |
|---|---|
| ✎ | Редактировать структуру этого дня: изменить номера, время, тип, добавить/удалить пары. Остальные дни не меняются. |
| Копировать | Копирует структуру дня в буфер. Затем кнопкой «Вставить» её можно применить к другому дню. |
| Вставить | Вставляет скопированную структуру в этот день (активна, если что-то скопировано). |
| Из шаблона | Заменяет структуру текущего дня шаблоном из верхней таблицы. |
| Drag&drop | Перетащите заголовок дня на другой день — структуры поменяются местами. |
3. Раздел 2. Аудитории
Слева — список аудиторий, справа — карточка выбранной.
- + Добавить — создать аудиторию: название и описание.
- Занятость — отметьте галочками пары, когда аудитория недоступна.
- Ограничения использования — белые списки:
- Группы — если список не пуст, аудиторию можно использовать только для этих групп;
- Преподаватели — только эти преподаватели;
- Дисциплины — только эти дисциплины.
4. Раздел 3. Группы
Аналогично аудиториям: слева список, справа карточка.
- Занятость — ручная блокировка пар, когда группа не может заниматься.
- Нагрузка — модальное окно с максимумом часов в день по каждому дню. Пусто = без ограничения. При добавлении или переносе занятия лимит проверяется автоматически.
- Составить расписание — пока заглушка (автогенерация в планах); сейчас расписание группы удобнее составлять в разделе 7.
5. Раздел 4. Преподаватели
Карточка преподавателя включает:
- ФИО и описание;
- Занятость — блокировка слотов;
- Нагрузка — макс. часов в день по каждому дню;
- Дисциплины — список дисциплин, которые ведёт преподаватель, с указанием часов;
- Потоки — внутри каждой дисциплины можно создать поток: выбрать одну или несколько групп, которые будут заниматься вместе;
- Только в этих аудиториях — список аудиторий для преподавателя.
6. Раздел 5. Дисциплины
- Создание/редактирование/удаление дисциплин: название и описание.
- Блок «Использование»: в скольких учебных планах, у скольких преподавателей, сколько потоков.
- Удаление блокируется, если дисциплина используется в плане или у преподавателя.
7. Раздел 6. Учебный план
Учебный план привязывается к одной группе.
- + Добавить — создать план: название, группа, описание.
- + Дисциплина — добавить дисциплину в план.
- Часы по умолчанию стоят в режиме «авто» — они вычисляются как сумма часов преподавателей, у которых есть поток с этой группой по этой дисциплине.
- Чтобы задать часы вручную, снимите галочку «авто» — поле часов станет активным.
8. Раздел 7. Расписание группы
7 колонок по дням недели, внутри — слоты занятий.
- Поиск — фильтр по названию и выпадающий список групп.
- + в пустой ячейке (слоте) — добавить занятие: выбираются дисциплина, преподаватель, аудитория и группы потока.
- ✎ на карточке занятия — открыть для редактирования.
- ✕ на карточке — удалить занятие.
- Drag&drop — перетащите карточку на другой пустой слот. При переносе проверяются занятость группы, преподавателя и аудитории, ручные блокировки, белые списки, лимиты нагрузки и учебный план.
Что проверяется при сохранении
- группа(ы), преподаватель и аудитория не заняты на этой паре;
- у группы, преподавателя и аудитории пара свободна;
- аудитория разрешена для группы/преподавателя/дисциплины;
- преподавателю разрешена эта аудитория;
- преподаватель ведёт эту дисциплину;
- дисциплина есть в учебном плане группы;
- не превышены лимиты нагрузки группы и преподавателя по этому дню.
Если что-то нарушено — появляется список ошибок, сохранение блокируется.
9. Раздел 8. Расписание преподавателя
То же, что раздел 7, но для выбранного преподавателя.
- Поиск по ФИО;
- Экспорт в Excel (CSV) — выгружает расписание выбранного преподавателя: день, номер пары, время, дисциплина, группы, аудитория. Файл открывается в Excel, LibreOffice, Google Sheets.
10. Раздел 9. Расписание аудитории
Аналогично разделам 7 и 8, только для выбранной аудитории.
- Поиск по названию аудитории;
- Экспорт в Excel (CSV) — выгрузка расписания аудитории.
11. Сохранение, экспорт и импорт
Все данные автоматически сохраняются в браузере (localStorage). Это значит:
- после закрытия вкладки данные не пропадут;
- если очистить кэш/данные сайта — данные потеряются.
Экспорт JSON
Кнопка «Экспорт JSON» в шапке скачивает файл со всем состоянием: сетка, справочники, учебные планы, занятия. Этот файл можно хранить как резервную копию.
Импорт JSON
Кнопка «Импорт JSON» позволяет загрузить ранее сохранённый файл. Внимание: текущее состояние будет перезаписано, приложение спросит подтверждение.
12. Частые вопросы
Почему нельзя сохранить занятие?
В статусе появится список причин: занятость группы/преподавателя/аудитории, ручная блокировка, нарушение заданного списка, дисциплина не в плане группы, превышение дневного лимита нагрузки и т.п.
Почему занятие пропало после изменения разбивки дня?
Занятия привязаны к идентификаторам пар (уроков). Если пара удалена или пересоздана, занятие теряет привязку. Восстановите занятие вручную или используйте резервную копию JSON.
Можно ли заниматься нескольким группам вместе?
Да. При создании занятия отметьте несколько групп — это поток. Такое занятие появится в расписаниях всех выбранных групп, а также в расписании преподавателя и аудитории.
Как задать разные пары в субботу и в понедельник?
В разделе 1 нажмите ✎ у субботы и настройте структуру отдельно. Или примените шаблон только к выбранным дням (чекбоксы + кнопка «Применить шаблон к выбранным»).
Что делать, если браузер не сохраняет данные?
Проверьте, что не включён режим «инкогнито» (в нём localStorage очищается при закрытии). Также убедитесь, что в настройках браузера не запрещено хранилище для этой страницы.
Можно ли экспортировать расписание в настоящий Excel (XLSX)?
Сейчас выгружается CSV с BOM — Excel и LibreOffice открывают его без настройки. XLSX-экспорт может быть добавлен отдельным этапом.