Перейти до основного вмісту

Імпортери CSV

Імпортуйте експортовані списки FET по одній секції — і єдине правило впорядкування, яке варто одразу встановити правильно.

FET може експортувати кожен зі своїх списків як окремий CSV-файл. Сім із цих файлів зчитуються тут, кожен у свій розділ редактора даних, щоб ви могли імпортувати один список за раз замість всього проєкту одразу.

Сім файлів

  • Викладачі — список викладачів.
  • Дисципліни — список дисциплін.
  • Види занять — список тегів.
  • Аудиторії та корпуси — один файл, що охоплює обидва, як це є у FET.
  • Студенти — потоки, групи та підгрупи, з їхньою вкладеністю.
  • Заняття — список занять, який є файлом, що фактично містить навчальне навантаження школи до того, як було згенеровано будь-який розклад.
  • Час недоступності викладачів — єдиний файл, що містить правила, а не список. Він імпортується з Обмежень за часом, а не з Викладачів.

Кожен імпортується зі свого розділу: відкрийте розділ у редакторі даних і скористайтеся кнопкою імпорту CSV. Файл зчитується, вам показується, що він зробить, і нічого не записується, доки ви не підтвердите.

Файл недоступності замінює, а не додає

Перші шість файлів додають те, чого бракує, і залишають решту без змін. Файл часу недоступності викладача поводиться інакше через свій вміст: FET записує повну сітку — кожен викладач проти кожної години, з позначкою, де цей викладач не може викладати.

Порожня клітинка — це не "відсутність інформації". Це файл, який говорить: цей викладач тоді вільний. Тому імпорт такого файлу замінює час недоступності викладачів, яких він перелічує, що є єдиним способом фактичного застосування звільненого слоту.

Викладачі, яких файл не згадує, залишаються повністю без змін, тому файл, що охоплює трьох викладачів, не може зачепити інших тридцятьох.

Перед записом вам повідомляється, скільки обмежень буде видалено, скільки буде записано та скільки викладачів залишаться без змін. Скасувати дію неможливо, тому спочатку зробіть резервну копію, якщо розклад має значення.

Викладач, чиє ім'я ще не вказано в розкладі, пропускається, а не створюється — цей файл коригує існуючих людей, він не додає нових.

Позначка може бути перевагою, а не блокуванням

Клітинки в цьому файлі — це не галочки — кожна з них має вагу від 0 до 100, і вага змінює значення позначки.

100 означає "не може". Це звичайний випадок, і він стає простим правилом викладач недоступний.

Менше 100 означає "краще б ні". Правило "недоступний" не має слабшого налаштування — воно є абсолютним або нічим — тому зважена позначка записується навпаки: як бажані часові слоти, що перелічують усі місця, куди можуть потрапити заняття викладача, з цією вагою. Це те саме обмеження, висловлене позитивно.

FET не має режиму імпорту для цього. Власна довідка FET радить використовувати бажаний час, коли вам потрібна вага менше 100. Цей імпортер виконує цей крок за вас.

Ви не обираєте між ними, і немає налаштування, яке можна було б неправильно встановити. Якщо файл містить будь-які зважені клітинки, імпорт повідомить вам про це перед записом і назве знайдені ваги.

Імпортуйте студентів перед заняттями

Це єдине правило, якого варто дотримуватися точно.

Якщо заняття називає набір студентів, який ще не існує, набір створюється плоским — і він ніколи не оновлюється до належної структури потік-група-підгрупа згодом.

Спочатку імпортуйте файл студентів, і ієрархія буде правильною. Імпортуйте заняття спочатку, і ви отримаєте купу плоских груп, які виглядають правильно у списку, але поводяться неправильно скрізь, де важлива структура. Виправлення цього згодом означає їх видалення та повторне створення.

Те саме автоматичне створення застосовується до викладачів, дисциплін та видів занять, названих рядком заняття. Для них це нешкідливо — викладач є викладачем — саме тому випадок зі студентами збиває з пантелику.

Попередній перегляд перед підтвердженням

Choosing a file does not import it: the columns it recognised, what it would add, what it would skip because it is already there, and the row it could not use.
Choosing a file does not import it: the columns it recognised, what it would add, what it would skip because it is already there, and the row it could not use.

Вибір файлу не імпортує його. Спочатку файл зчитується, і ви отримуєте підсумок того, що відбудеться: скільки рядків було зрозуміло, що буде створено, та будь-які попередження про рядки, які не вдалося використати. Рядки без назви повідомляються та пропускаються, а не створюються порожніми мовчки.

Лише після підтвердження щось записується.

Речі про формат, які варто знати

Вам взагалі не потрібно готувати власні експорти FET — вони зчитуються такими, якими є. Це важливо, коли ви створюєте файл вручну або редагуєте його в електронній таблиці.

  • Імена файлів збігаються за суфіксом. FET додає префікси до експортів з назвою розкладу, тому myschool_teachers.csv розпізнається як файл викладачів. Зберігайте суфікс, а префікс може бути будь-яким.
  • Очікується маркер порядку байтів. FET записує його, і він видаляється під час читання. Файл, збережений без нього, також підходить.
  • Роздільник виявляється для кожного файлу, а не припускається, тому експорт, розділений крапкою з комою, працює так само добре, як і розділений комою.
  • Клітинки ресурсів вкладаються. Символ | розділяє один розділений компонент від наступного, а + розділяє елементи всередині компонента — тому клітинка може називати кількох викладачів для одного заняття або різних викладачів для кожного компонента.
  • Назви дисциплін не розділяються за +. Дисципліна може законно містити знак плюса у своїй назві, тому розділення її призведе до скорочення назви. Якщо ви розміщували кілька дисциплін в одній клітинці, це не підтримується форматом.
  • Порожня числова клітинка означає "без обмеження", а не нуль. Залишення порожньою клітинки мінімальної кількості днів не встановлює мінімум нічого — це означає, що обмеження відсутнє.

Що ви отримуєте після цього

Розклад, побудований з цих файлів, містить реальний список занять, тому він поводиться як проєкт, а не як його зображення: тривалість та розділені компоненти присутні, і те, що ви завантажуєте, побудовано на основі фактичних даних.

Куди рухатися далі