-
Notifications
You must be signed in to change notification settings - Fork 10
Importowanie planu zajęć z pliku
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.
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.
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.
Skrypt uruchamia się poleceniem:
python manage.py runscript scheduleimport