Аудитории: близкие типы объединены в фильтре, добавлен пункт «без типа»

В карточке остаётся формулировка из таблицы («комп.класс Linux»), а в фильтре
близкие варианты сведены к одной группе: «комп.класс» (комп.класс, комп.класс
Linux, компьютерный класс), «кабинет английского» (английский, кабинет
английского), «аудитория кафедры», «лекционная», «лекционно-практическая»,
«аудитория для практических». Добавлен пункт «без типа» — 4 аудитории, где в
таблице тип не указан.

Бэкенд отдаёт в /rooms-day и /rooms-free дополнительное поле type_group
(room_type_group), фронт фильтрует по нему. Тесты: 160.
This commit is contained in:
2026-10-10 12:33:05 +03:00
parent 6f16736359
commit fa51f4caee
4 changed files with 62 additions and 5 deletions

View File

@@ -413,7 +413,10 @@ tests/
- Длинные ссылки в карточке переносятся по служебным символам и каждые
24 символа (`<wbr>`), поэтому карточка не вылезает за экран даже в старых
браузерах, где нет `overflow-wrap`.
- На вкладке «Аудитории» есть фильтры: **тип** (фразой, как в таблице),
- На вкладке «Аудитории» есть фильтры: **тип** (в карточке — формулировка из
таблицы, в фильтре близкие варианты объединены: «комп.класс» включает
«комп.класс Linux» и «компьютерный класс», «кабинет английского» —
«английский»; есть пункт «без типа»),
**вместимость** («не меньше N мест») и **оснащение** чекбоксами с выбором
условия «все выбранные (И)» или «любое из выбранных (ИЛИ)». Выбранное
запоминается в браузере, под списком видно «Показано N из M» и пояснения:
@@ -448,7 +451,10 @@ tests/
В ответах `rooms-day` и `rooms-free` по каждой аудитории, кроме `room` и `info`
(описание как в таблице), идут разобранные атрибуты: `type` (тип фразой из
таблицы: «комп.класс», «кабинет английского», «лекционная»…), `capacity`
таблицы: «комп.класс», «кабинет английского», «лекционная»…) и `type_group`
(тот же тип, но близкие формулировки сведены к одной — «комп.класс»,
«комп.класс Linux» и «компьютерный класс» дают группу «комп.класс»),
`capacity`
(мест; для компьютерных классов — рабочие места; `null`, если в таблице нет
данных), `equipment` (список: «ПК», «Проектор», «Интерактивная панель»,
«Телевизор», «Маркер», «Меловая доска») и `available_days` (дни, если в