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: оновлення Campus тепер правильно відображаються в розділі рішень.
  • 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