Importowanie planu zajęć z pliku - iiuni/projektzapisy GitHub Wiki

Wstęp

Do importowania nowego planu w Systemie Zapisów używany jest skrypt scheduleimport.py, zlokalizowany w folderze scripts w katalogu głównym aplikacji. Dodaje on do bazy danych grupy wraz z terminami dla kursów nowego semestru, czytając i parsując odpowiednio sformatowany plik tekstowy z planem.

Przygotowanie pliku z planem

Plik tekstowy powinien zawierać wyłącznie kursy z jednego (nowego) semestru. Plik składa się z kolejnych nazw kursów poprzedzonych pojedynczą spacją. Pod każdą taką nazwą znajdować powinny się linie poprzedzone dwiema spacjami, dokładnie opisujące kolejne grupy danego kursu. Pojedyncza linia musi składać się z (kolejność informacji ma znaczenie): terminu zajęć, ich typu (wyklad/repetytorium/cwiczenia/pracownia/cwicz+pracownia/seminarium), imienia i nazwiska prowadzącego oraz numerów sal. Poniżej znajduje się przykład dla dwóch wybranych kursów:

 ALGEBRA
  pn  12-14  (cwiczenia) ANTONI KOsCIELSKI, sala 103
  wt  9-12   (wyklad) ARTUR JEz, sala 25
  wt  14-16  (cwiczenia) EMANUEL KIEROnSKI, sala 105
  sr  8-10   (cwiczenia) ARTUR JEz, sala 103
  sr  16-18  (cwiczenia) PAWEl LASKOs-GRABOWSKI, sala 103
  czw 8-10   (repetytorium) EMANUEL KIEROnSKI, sala 25
  czw 10-12  (cwiczenia) KATARZYNA PALUCH, sala 140

 XML I BAZY DANYCH
  sr  10-12  (wyklad) PIOTR WIECZOREK, sala 140
  sr  12-14  (cwicz+pracownia) PIOTR WIECZOREK, sale 5,7
  pi  10-12  (cwicz+pracownia) PIOTR WIECZOREK, sale 139,110

Wpisane imiona i nazwiska prowadzących (należy je pisać dużymi literami, bez polskich znaków) muszą być dokładnie takie same, jak w słowniku TECH w skrypcie scheduleimport.py. Dodatkowo sam plik powinien znajdować się w katalogu głównym aplikacji, a jego nazwa być taka sama, jak zawartość zmiennej SCHEDULE_FILE w skrypcie.

Przygotowanie skryptu

Jedyne obiekty jakie skrypt tworzy w bazie danych to grupa i termin grupy. Dlatego przed uruchomieniem skryptu należy upewnić się, że nowy semestr oraz wszystkie kursy (czyli edycje przedmiotów w nowym semestrze) dla których dodajemy grupy zostały już utworzone w bazie danych. Następnie trzeba zmienić słownik przedmioty w skrypcie na aktualny - każdej nazwie kursu z pliku tekstowego musi odpowiadać ID tego kursu w bazie danych.

Uruchamianie skryptu

Skrypt uruchamia się poleceniem:
python manage.py runscript scheduleimport