예제 #1
0
    def list_exercises_for_instructors(self):
        with sqlite3.connect(self.db_path) as conn:
            db_cursor = conn.cursor()

            db_cursor.execute("""
                    SELECT i.id, i.first_name, i.last_name, i.slack_handle, i.specialty, c.name, e.name
                    FROM Instructor i
                    JOIN AssignedExercise ae
                    ON i.id = ae.instructor_id 
                    JOIN Exercise e
                    ON ae.exercise_id = e.id
                    JOIN Cohort c
                    ON i.cohort_id = c.id;
            """)

            instructor_results = db_cursor.fetchall()
            instructor_dict = dict()

            for instructor in instructor_results:
                instructor_id = instructor[0]
                first_name = instructor[1]
                last_name = instructor[2]
                slack_handle = instructor[3]
                specialty = instructor[4]
                cohort = instructor[5]
                exercise = instructor[6]

                if instructor_id not in instructor_dict:
                    instructor_dict[instructor_id] = Instructor(
                        first_name, last_name, slack_handle, cohort, specialty)
                exercise_set = set(
                    instructor_dict[instructor_id].assigned_exercises)
                exercise_set.add(exercise)
                instructor_dict[instructor_id].assigned_exercises = list(
                    exercise_set)

            for instructor_id, instructor in instructor_dict.items():
                print(
                    f"{instructor.first_name} {instructor.last_name} has assigned:"
                )
                [
                    print(f"  * {exercise}")
                    for exercise in instructor.assigned_exercises
                ]