1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
import time
import json
with open("subjects.json", 'r') as f:
subjects = json.load(f);
with open("teachers.json", 'r') as f:
teachers=json.load(f);
with open("timetables.json", 'r') as f:
timetables=json.load(f);
allteachers = teachers["teachers"];
myteachers = [];
for teacher in allteachers:
fullname = teacher["teacher"]["displayName"];
try:
[surname, firstname] = fullname.split();
except ValueError:
surname = "";
firstname = "";
faculty = teacher["departments"][0]["shortName"] if teacher["departments"] else "";
myteachers.append({"fullname": fullname,
"surname": surname,
"firstname": firstname,
"faculty": faculty});
with open("myteachers.json", 'w') as f:
json.dump(myteachers, f);
myfaculties=[];
allfaculties = teachers["departments"];
for faculty in allfaculties:
shortname = faculty["shortName"];
longname = faculty["displayName"];
myfaculties.append({"shortname": shortname, "longname": longname});
with open("myfaculties.json", 'w') as f:
json.dump(myfaculties, f);
myrealteachers=set();
mytimetable={};
myrooms={};
mycourses=[];
for course in timetables:
melpomeid = course.get("id", course.get("melpomeid"));
shortname = course["shortname"];
longname = course["longname"];
timetable = course["timetable"];
days=timetable["days"];
courseteachers=set();
courserooms=set();
courseklassen=set();
courseslots=[];
for day in days:
grids=day["gridEntries"];
for grid in grids:
if grid["position1"]:
for klasse in grid["position1"]:
if not klasse.get("current"):
continue;
klassenname=klasse["current"]["displayName"];
courseklassen.add(klassenname)
if grid["position2"]:
for room in grid["position2"]:
if not room.get("current"):
continue;
roomname=room["current"]["displayName"];
roomlongname=room["current"]["longName"];
myrooms[roomname] = roomlongname;
courserooms.add(roomname);
cteachers=grid["position3"];
if cteachers :
for teacher in cteachers:
if not teacher.get("current"):
continue;
teachername=teacher["current"]["displayName"];
print(teachername);
myrealteachers.add(teachername);
courseteachers.add(teachername);
duration=grid["duration"];
courseslots.append({"teachers": list(courseteachers),
"rooms": list(courserooms),
"klassen": list(courseklassen),
"info": grid["lessonInfo"],
"time": duration});
mycourses.append({"melpomeid": melpomeid,
"shortname": shortname,
"longname": longname,
# "timetable": timetable,
"slots": courseslots});
#print(mycourses);
with open("mycourses.json", 'w') as f:
json.dump(mycourses, f);
myrealcourses=[];
for c in mycourses:
if len(c["slots"]) > 0 :
myrealcourses.append(c);
with open("myrealcourses.json", 'w') as f:
json.dump(myrealcourses, f);
myrealteachers_upper = {name.upper() for name in myrealteachers};
myteachersincourses=[];
for teacher in myteachers:
fullname = teacher["fullname"];
if fullname.upper() in myrealteachers_upper :
myteachersincourses.append(teacher);
with open("myrealteachers.json", 'w') as f:
json.dump(myteachersincourses, f);
print("Total number of courses: " + str(len(mycourses)));
print("Courses in timetable: " + str(len(myrealcourses)));
print("Total number of teachers: " + str(len(myteachers)));
print("Teachers in timetable: " + str(len(myteachersincourses)));
|