Skip to content
This repository was archived by the owner on Sep 2, 2024. It is now read-only.

Commit ce65109

Browse files
committed
[skip ci] še eno orodje za nadomeščanja
1 parent 6258b78 commit ce65109

File tree

1 file changed

+80
-0
lines changed

1 file changed

+80
-0
lines changed

class_in_classroom.py

+80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
import asyncio
2+
import csv
3+
import datetime
4+
import os
5+
import re
6+
from math import floor
7+
8+
import aiofiles
9+
10+
11+
class Class:
12+
def __init__(self, name: str, teacher: str, group: str, classroom: str):
13+
self.name = name
14+
self.teacher = teacher
15+
self.group = group
16+
self.classroom = classroom
17+
self.repetitions = 0
18+
19+
20+
async def main():
21+
d = 4
22+
hour = 4
23+
while True:
24+
ucilnica = input("Vpišite učilnico: ")
25+
if ucilnica == "":
26+
print("Nasvidenje!")
27+
break
28+
start = datetime.date(day=1, month=9, year=2023)
29+
now = datetime.date.today() + datetime.timedelta(weeks=1)
30+
if start.weekday() != d:
31+
start += datetime.timedelta(days=7 - start.weekday()) # damo na ponedeljek
32+
start += datetime.timedelta(days=d) # damo na dan
33+
start += datetime.timedelta(weeks=-1) # premaknemo za en teden nazaj
34+
35+
classes: dict[str, dict[str, Class]] = {}
36+
37+
while start <= now:
38+
day = f"{start.day}.{start.month}"
39+
sharepoint_filenames = [
40+
f"substitutions/nadomeščanje_{day}.csv",
41+
f"substitutions/nadomescanje_{day}.csv",
42+
f"substitutions/nadomeščenje_{day}.csv",
43+
f"substitutions/nadomescenje_{day}.csv",
44+
]
45+
46+
for sharepoint_filename in sharepoint_filenames:
47+
if not os.path.exists(sharepoint_filename):
48+
continue
49+
async with aiofiles.open(sharepoint_filename, "r") as f:
50+
ls = await f.readlines()
51+
lines = csv.reader(ls, delimiter=',')
52+
53+
for csv_values in lines:
54+
uc = csv_values[4]
55+
if not (uc in ucilnica or ucilnica in uc):
56+
continue
57+
if csv_values[0] != str(hour):
58+
continue
59+
60+
razred = csv_values[1]
61+
predmet = csv_values[6]
62+
63+
if classes.get(razred) is None:
64+
classes[razred] = {}
65+
if classes[razred].get(predmet) is None:
66+
c = Class(name=predmet, teacher=csv_values[2], group=razred, classroom=uc)
67+
classes[razred][predmet] = c
68+
classes[razred][predmet].repetitions += 1
69+
break
70+
71+
start += datetime.timedelta(weeks=1)
72+
73+
for razred, v in classes.items():
74+
for predmet, l in v.items():
75+
l: Class = l
76+
print(f"Najdenih {l.repetitions} ponovitev za {hour}. uro dne {d}. Učilnica {l.classroom}, skupina {l.group}, učitelj {l.teacher}, predmet {l.name}.")
77+
print("------------------------------")
78+
79+
80+
asyncio.run(main())

0 commit comments

Comments
 (0)