99 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Python
		
	
	
"""Support for fetching Vulcan data."""
 | 
						|
 | 
						|
 | 
						|
async def get_lessons(client, date_from=None, date_to=None):
 | 
						|
    """Support for fetching Vulcan lessons."""
 | 
						|
    changes = {}
 | 
						|
    list_ans = []
 | 
						|
    async for lesson in await client.data.get_changed_lessons(
 | 
						|
        date_from=date_from, date_to=date_to
 | 
						|
    ):
 | 
						|
        temp_dict = {}
 | 
						|
        _id = str(lesson.id)
 | 
						|
        temp_dict["id"] = lesson.id
 | 
						|
        temp_dict["number"] = lesson.time.position if lesson.time is not None else None
 | 
						|
        temp_dict["lesson"] = (
 | 
						|
            lesson.subject.name if lesson.subject is not None else None
 | 
						|
        )
 | 
						|
        temp_dict["room"] = lesson.room.code if lesson.room is not None else None
 | 
						|
        temp_dict["changes"] = lesson.changes
 | 
						|
        temp_dict["note"] = lesson.note
 | 
						|
        temp_dict["reason"] = lesson.reason
 | 
						|
        temp_dict["event"] = lesson.event
 | 
						|
        temp_dict["group"] = lesson.group
 | 
						|
        temp_dict["teacher"] = (
 | 
						|
            lesson.teacher.display_name if lesson.teacher is not None else None
 | 
						|
        )
 | 
						|
        temp_dict["from_to"] = (
 | 
						|
            lesson.time.displayed_time if lesson.time is not None else None
 | 
						|
        )
 | 
						|
 | 
						|
        changes[str(_id)] = temp_dict
 | 
						|
 | 
						|
    async for lesson in await client.data.get_lessons(
 | 
						|
        date_from=date_from, date_to=date_to
 | 
						|
    ):
 | 
						|
        temp_dict = {}
 | 
						|
        temp_dict["id"] = lesson.id
 | 
						|
        temp_dict["number"] = lesson.time.position
 | 
						|
        temp_dict["time"] = lesson.time
 | 
						|
        temp_dict["date"] = lesson.date.date
 | 
						|
        temp_dict["lesson"] = (
 | 
						|
            lesson.subject.name if lesson.subject is not None else None
 | 
						|
        )
 | 
						|
        if lesson.room is not None:
 | 
						|
            temp_dict["room"] = lesson.room.code
 | 
						|
        else:
 | 
						|
            temp_dict["room"] = "-"
 | 
						|
        temp_dict["visible"] = lesson.visible
 | 
						|
        temp_dict["changes"] = lesson.changes
 | 
						|
        temp_dict["group"] = lesson.group
 | 
						|
        temp_dict["reason"] = None
 | 
						|
        temp_dict["teacher"] = (
 | 
						|
            lesson.teacher.display_name if lesson.teacher is not None else None
 | 
						|
        )
 | 
						|
        temp_dict["from_to"] = (
 | 
						|
            lesson.time.displayed_time if lesson.time is not None else None
 | 
						|
        )
 | 
						|
        if temp_dict["changes"] is None:
 | 
						|
            temp_dict["changes"] = ""
 | 
						|
        elif temp_dict["changes"].type == 1:
 | 
						|
            temp_dict["lesson"] = f"Lekcja odwołana ({temp_dict['lesson']})"
 | 
						|
            temp_dict["changes_info"] = f"Lekcja odwołana ({temp_dict['lesson']})"
 | 
						|
            if str(temp_dict["changes"].id) in changes:
 | 
						|
                temp_dict["reason"] = changes[str(temp_dict["changes"].id)]["reason"]
 | 
						|
        elif temp_dict["changes"].type == 2:
 | 
						|
            temp_dict["lesson"] = f"{temp_dict['lesson']} (Zastępstwo)"
 | 
						|
            temp_dict["teacher"] = changes[str(temp_dict["changes"].id)]["teacher"]
 | 
						|
            if str(temp_dict["changes"].id) in changes:
 | 
						|
                temp_dict["teacher"] = changes[str(temp_dict["changes"].id)]["teacher"]
 | 
						|
                temp_dict["reason"] = changes[str(temp_dict["changes"].id)]["reason"]
 | 
						|
        elif temp_dict["changes"].type == 4:
 | 
						|
            temp_dict["lesson"] = f"Lekcja odwołana ({temp_dict['lesson']})"
 | 
						|
            if str(temp_dict["changes"].id) in changes:
 | 
						|
                temp_dict["reason"] = changes[str(temp_dict["changes"].id)]["reason"]
 | 
						|
        if temp_dict["visible"]:
 | 
						|
            list_ans.append(temp_dict)
 | 
						|
 | 
						|
    return list_ans
 | 
						|
 | 
						|
 | 
						|
async def get_student_info(client, student_id):
 | 
						|
    """Support for fetching Student info by student id."""
 | 
						|
    student_info = {}
 | 
						|
    for student in await client.get_students():
 | 
						|
        if str(student.pupil.id) == str(student_id):
 | 
						|
            student_info["first_name"] = student.pupil.first_name
 | 
						|
            if student.pupil.second_name:
 | 
						|
                student_info["second_name"] = student.pupil.second_name
 | 
						|
            student_info["last_name"] = student.pupil.last_name
 | 
						|
            student_info[
 | 
						|
                "full_name"
 | 
						|
            ] = f"{student.pupil.first_name} {student.pupil.last_name}"
 | 
						|
            student_info["id"] = student.pupil.id
 | 
						|
            student_info["class"] = student.class_
 | 
						|
            student_info["school"] = student.school.name
 | 
						|
            student_info["symbol"] = student.symbol
 | 
						|
            break
 | 
						|
    return student_info
 |