Constructor Schedule: 7 квітня, 2026

07 квітня, 2026

Огляд

У цьому релізі ми додали такі функції:

  • Налаштовувана попередньо визначена тривалість іспитів
  • Блокування полів для викладача під час вікон самообслуговування
  • Видимість рішень на основі ролей
  • Покращений звіт розкладу іспитів
  • Constructor University API: розділення багатомодульних іспитів та реєстрація повторників
  • Навігаційний мікрофронтенд на Vue.js для Constructor Cloud
  • Двигун консистентності організаційних даних для CUB API

Що нового

Налаштовувані попередньо визначені тривалості іспитів

Установи тепер можуть контролювати, як викладачі вводять тривалість іспитів через нову настройку в розділі Planning Page Settings. Доступні два режими: вільне введення та попередньо визначені значення. У режимі попередньо визначених значень адміністратори задають від 1 до 10 дозволених значень тривалості іспитів у хвилинах. Викладачі мають обирати зі спадного списку замість ручного введення тривалостей. Система перевіряє, що вибрані тривалості відповідають правилу тривалості слоту, забезпечуючи принаймні 10 хвилин для евакуації аудиторії. Ця функція також підтримується через веб-сервіси для інтеграції з зовнішніми системами.

Блокування полів для викладача під час вікон самообслуговування

Коли адміністратори визначають часові вікна, які дозволяють викладачам виконувати обмежені зміни, поля майстер-даних установи тепер автоматично блокуються. Під час вікна самообслуговування викладачі не можуть змінювати структурні поля, такі як Course Type, Lecture Count, Faculty, Program, Instructors, Grade, Section або Campus. Дублювання секцій, видалення секцій і вибір рядків також вимкнені. Система застосовує ці обмеження як на фронтенді, так і на рівні API, а заблоковані операції реєструються для аудиту. Це запобігає випадковим змінам академічної структури, але дозволяє викладачам керувати дозволеними полями.

Видимість рішень на основі ролей

Сторінка рішень тепер обмежує видимість залежно від статусу публікації та ролі користувача. Користувачі без прав адміністратора бачать у спадному списку лише опубліковані рішення, що запобігає плутанині через чорновики або незавершені розклади. Якщо жодне рішення не опубліковано, спадний список відображається порожнім з чітким повідомленням. Admin і Super Admin користувачі зберігають повний доступ до всіх рішень. Це обмеження також застосовується на сервері, щоб запобігти доступу через прямі URL або API-запити.

Покращений звіт розкладу іспитів

Загальний звіт розкладу іспитів тепер включає чотири покращення. Іспити в межах кожного кампусу та слоту сортуються за тривалістю у порядку зростання для зручнішого перегляду. Заголовки слотів відображають повний діапазон часу замість тільки часу початку. Кожен рядок іспиту показує тривалість іспиту в хвилинах та обчислений індивідуальний час початку й закінчення іспиту. Онлайн-іспити тепер включені до звіту з значенням аудиторії Онлайн-екзамен, що робить їх легшими для відмінності від іспитів у приміщеннях.

Constructor University API: розділення багатомодульних іспитів та реєстрація повторників

Інтеграція Constructor University API тепер підтримує два основні покращення. По-перше, курси з кількома письмовими модулями іспитів імпортуються як окремі записи планування іспитів, і кожен запис зберігає свій власний список зарахованих студентів. Це вирішує проблему відсутніх іспитів для курсів, таких як CH-212, де модулі A і B потребують незалежного розкладу. По-друге, синхронізація зарахування тепер захоплює повторників із попередніх семестрів, починаючи з осені 2023 року, що відновлює приблизно 600 раніше відсутніх студентів. Статус зарахування студента перевіряється за допомогою сутності StudiesSemesterCounter для визначення активних повторників проти тих, хто вибув.

Навігаційний мікрофронтенд на Vue.js для Constructor Cloud

Schedule Cloud Fragment тепер містить спеціальний навігаційний мікрофронтенд на Vue.js, який обробляє інтерфейс навігації для платформи Constructor Cloud. Компонент відповідає специфікаціям дизайну у Figma і забезпечує ієрархію навігації для Course Periods, Exam Periods, Planning та Settings. Він читає контекст терміну з LocalStorage, адаптується до різних середовищ розгортання та підтримує глибокі посилання з навігацією історії браузера.

Двигун консистентності даних для CUB API

Для інтеграції CUB API додано новий двигун консистентності організаційних даних та автоматичного відступу. Двигун автоматично виявляє та вирішує невідповідності даних під час синхронізації, включаючи логіку навігації для відображення типу іспиту та тривалості. Це допомагає забезпечити більш надійну передачу даних між CampusNet та Constructor Schedule.

Виправлені проблеми

Ми виправили такі проблеми:

  • Turkish report language: звіти Downloaded Data Fetch та Data Save більше не відображаються англійською, коли веб-мова встановлена на турецьку. Tracking IDs: SCH-1587
  • Cloud sync and notification buttons: кнопки повідомлень і синхронізації тепер видимі в оновленому дизайні хмари. Tracking IDs: SCH-4172
  • Selected term after refresh: вибраний термін тепер коректно відображається після оновлення сторінки. Tracking IDs: SCH-4185
  • Term selection field input: поле вибору терміну більше не дозволяє вільний ввід тексту і тепер підтримує лише вибір зі списку. Tracking IDs: SCH-4188
  • Period panel navigation: навігація до періодів з панелі періодів тепер працює правильно. Tracking IDs: SCH-4271
  • Missing Course and Event periods: періоди Course та Event тепер коректно відображаються на сторінці терміну. Tracking IDs: SCH-4272
  • Help and report links: кнопки Help Guide та Report a Problem тепер відкривають правильні сторінки. Tracking IDs: SCH-4288
  • Copy area validation: перевірка на порожній простір у зоні копіювання тепер працює коректно. Tracking IDs: SCH-4315
  • Classroom icon styling: іконка аудиторії тепер відповідає специфікації дизайну у Figma. Tracking IDs: SCH-4318
  • White screen in course term: перегляд терміну курсу більше не показує білий екран при відкритті курсів. Tracking IDs: SCH-4319
  • Synchronization date display: дата синхронізації тепер відображається в області синхронізації. Tracking IDs: SCH-4321
  • Year sorting on the synchronization screen: поле Year тепер сортується правильно. Tracking IDs: SCH-4328
  • Missing class hours in the solution area: години занять тепер коректно відображаються в розділі рішення.
  • Synchronization area errors: помилки в області синхронізації в оновленому дизайні виправлені. Tracking IDs: SCH-4358
  • User management filters: фільтри на сторінці User management тепер правильно очищуються. Tracking IDs: SCH-4378
  • Term creation save button: кнопка Save тепер коректно відображається в модальному вікні створення терміну. Tracking IDs: SCH-4409
  • Negative values in bulk update fields: сторінка Instructors більше не приймає від’ємні значення в полях масового оновлення. Tracking IDs: SCH-1612
  • Planning page layout: області сторінки планування тепер відповідають оновленому дизайну. Tracking IDs: SCH-4163
  • Unnecessary scrolling: зайве прокручування на уражених сторінках було видалено. Tracking IDs: SCH-4167
  • Switching to a newly added term: користувачі тепер можуть переключатися на щойно доданий термін. Tracking IDs: SCH-4170
  • Import download button: кнопка завантаження в розділі Import тепер працює правильно. Tracking IDs: SCH-4410
  • Campus updates in the solution section: оновлення кампусів тепер коректно відображаються в розділі рішення.
  • Events in Event Calendar: події тепер коректно відображаються в Event Calendar. Tracking IDs: SCH-4444
  • Notification icon updates: іконка сповіщень тепер оновлюється при надходженні нових сповіщень. Tracking IDs: SCH-4445
  • Solution page translations: проблеми з перекладом на сторінці рішення були виправлені. Tracking IDs: SCH-4481
  • Optimization distribution phase: фаза розподілу тепер коректно просувається під час оптимізації.
  • Instructor filter in planning: фільтри викладачів на сторінці планування тепер працюють правильно. Tracking IDs: SCH-4506
  • Exam period filter data: фільтри періоду іспитів тепер коректно завантажують дані. Tracking IDs: SCH-4507
  • Exam Schedule add icon: плюс-іконка в Exam Schedule тепер коректно реагує. Tracking IDs: SCH-4511
  • Weekly schedule creation: помилки під час створення тижневого розкладу були виправлені. Tracking IDs: SCH-4541
  • Combined exam duration display: тривалість іспиту тепер відображається правильно при комбінуванні іспитів. Tracking IDs: SCH-4542
  • Combined exam campus display: інформація про кампус тепер коректно відображається при комбінуванні іспитів. Tracking IDs: SCH-4543
  • Distribution counter outside GMT+3: лічильник розподілу тепер працює правильно в часових поясах поза GMT+3. Tracking IDs: SCH-4544
  • Combined course campus and program values: значення кампусу та програми тепер коректно відображаються при комбінуванні курсів. Tracking IDs: SCH-4557
  • Building field clearing: поле введення будівлі тепер очищається коректно. Tracking IDs: SCH-4558
  • Pop-up messages: спливаючі діалоги тепер показують правильні повідомлення. Tracking IDs: SCH-4569
  • Predefined duration dropdown: спадний список тривалостей іспиту тепер коректно відображається при виборі попередньо визначених тривалостей. Tracking IDs: SCH-4688
  • Late lesson in the exam solution: помилки при додаванні запізнілого заняття до рішення іспиту були виправлені. Tracking IDs: SCH-4689
  • Adding courses during the exam period: курси тепер можна додавати до рішення іспиту під час періоду іспитів. Tracking IDs: SCH-4691
  • Deleting predefined durations in use: система більше не дозволяє видаляти значення попередньо визначених тривалостей, які зараз використовуються. Tracking IDs: SCH-4692
  • Predefined duration warning message: попереджувальне повідомлення тепер коректно відображається, коли користувач намагається видалити попередньо визначену тривалість, що використовується. Tracking IDs: SCH-4695
  • Exam duration during the course term: тривалість іспиту тепер коректно відображається під час терміну курсу. Tracking IDs: SCH-4694