Home Assistant Unofficial Reference 2024.12.1
fetch_data.py
Go to the documentation of this file.
1 """Support for fetching Vulcan data."""
2 
3 
4 async def get_lessons(client, date_from=None, date_to=None):
5  """Support for fetching Vulcan lessons."""
6  changes = {}
7  list_ans = []
8  async for lesson in await client.data.get_changed_lessons(
9  date_from=date_from, date_to=date_to
10  ):
11  temp_dict = {}
12  _id = str(lesson.id)
13  temp_dict["id"] = lesson.id
14  temp_dict["number"] = lesson.time.position if lesson.time is not None else None
15  temp_dict["lesson"] = (
16  lesson.subject.name if lesson.subject is not None else None
17  )
18  temp_dict["room"] = lesson.room.code if lesson.room is not None else None
19  temp_dict["changes"] = lesson.changes
20  temp_dict["note"] = lesson.note
21  temp_dict["reason"] = lesson.reason
22  temp_dict["event"] = lesson.event
23  temp_dict["group"] = lesson.group
24  temp_dict["teacher"] = (
25  lesson.teacher.display_name if lesson.teacher is not None else None
26  )
27  temp_dict["from_to"] = (
28  lesson.time.displayed_time if lesson.time is not None else None
29  )
30 
31  changes[str(_id)] = temp_dict
32 
33  async for lesson in await client.data.get_lessons(
34  date_from=date_from, date_to=date_to
35  ):
36  temp_dict = {}
37  temp_dict["id"] = lesson.id
38  temp_dict["number"] = lesson.time.position
39  temp_dict["time"] = lesson.time
40  temp_dict["date"] = lesson.date.date
41  temp_dict["lesson"] = (
42  lesson.subject.name if lesson.subject is not None else None
43  )
44  if lesson.room is not None:
45  temp_dict["room"] = lesson.room.code
46  else:
47  temp_dict["room"] = "-"
48  temp_dict["visible"] = lesson.visible
49  temp_dict["changes"] = lesson.changes
50  temp_dict["group"] = lesson.group
51  temp_dict["reason"] = None
52  temp_dict["teacher"] = (
53  lesson.teacher.display_name if lesson.teacher is not None else None
54  )
55  temp_dict["from_to"] = (
56  lesson.time.displayed_time if lesson.time is not None else None
57  )
58  if temp_dict["changes"] is None:
59  temp_dict["changes"] = ""
60  elif temp_dict["changes"].type == 1:
61  temp_dict["lesson"] = f"Lekcja odwołana ({temp_dict['lesson']})"
62  temp_dict["changes_info"] = f"Lekcja odwołana ({temp_dict['lesson']})"
63  if str(temp_dict["changes"].id) in changes:
64  temp_dict["reason"] = changes[str(temp_dict["changes"].id)]["reason"]
65  elif temp_dict["changes"].type == 2:
66  temp_dict["lesson"] = f"{temp_dict['lesson']} (Zastępstwo)"
67  temp_dict["teacher"] = changes[str(temp_dict["changes"].id)]["teacher"]
68  if str(temp_dict["changes"].id) in changes:
69  temp_dict["teacher"] = changes[str(temp_dict["changes"].id)]["teacher"]
70  temp_dict["reason"] = changes[str(temp_dict["changes"].id)]["reason"]
71  elif temp_dict["changes"].type == 4:
72  temp_dict["lesson"] = f"Lekcja odwołana ({temp_dict['lesson']})"
73  if str(temp_dict["changes"].id) in changes:
74  temp_dict["reason"] = changes[str(temp_dict["changes"].id)]["reason"]
75  if temp_dict["visible"]:
76  list_ans.append(temp_dict)
77 
78  return list_ans
79 
80 
81 async def get_student_info(client, student_id):
82  """Support for fetching Student info by student id."""
83  student_info = {}
84  for student in await client.get_students():
85  if str(student.pupil.id) == str(student_id):
86  student_info["first_name"] = student.pupil.first_name
87  if student.pupil.second_name:
88  student_info["second_name"] = student.pupil.second_name
89  student_info["last_name"] = student.pupil.last_name
90  student_info["full_name"] = (
91  f"{student.pupil.first_name} {student.pupil.last_name}"
92  )
93  student_info["id"] = student.pupil.id
94  student_info["class"] = student.class_
95  student_info["school"] = student.school.name
96  student_info["symbol"] = student.symbol
97  break
98  return student_info
def get_student_info(client, student_id)
Definition: fetch_data.py:81
def get_lessons(client, date_from=None, date_to=None)
Definition: fetch_data.py:4