diff options
| author | Furkan Sahin <furkan-dev@proton.me> | 2022-08-16 22:37:28 -0500 |
|---|---|---|
| committer | Furkan Sahin <furkan-dev@proton.me> | 2022-08-16 22:37:28 -0500 |
| commit | a4bd240abc1675ae22c431ed298a01ac6b231f53 (patch) | |
| tree | 05cce54917edba050bfd7e2655cdda61b28944cf | |
| parent | c693728191f572d059ca0bbfceb40a1f2c8bdfc1 (diff) | |
`feat`: Display PT's courses
Add func to output a map of `courses_can_teach : assigned_labs[]`
| -rw-r--r-- | src/components/TamuOutput.svelte | 21 | ||||
| -rw-r--r-- | src/models/PeerTeacher.ts | 26 |
2 files changed, 27 insertions, 20 deletions
diff --git a/src/components/TamuOutput.svelte b/src/components/TamuOutput.svelte index 2ce93e6..1d2d26d 100644 --- a/src/components/TamuOutput.svelte +++ b/src/components/TamuOutput.svelte @@ -7,25 +7,6 @@ ? a.firstname.toUpperCase().localeCompare(b.firstname.toUpperCase()) : a.lastname.toUpperCase().localeCompare(b.lastname.toUpperCase()) ); - - function getCourses(pt: PeerTeacher) { - const courses = new Map<number, number[]>(); - const getCourse = (x: number) => Math.floor(x / 1000); - pt.labs.forEach((lab_id) => { - const key = getCourse(lab_id); - const sec = lab_id % 1000; - if (courses.has(key)) { - courses.get(key).push(sec); - } else { - courses.set(key, [sec]); - } - }); - pt.can_teach.forEach((course) => { - if (course == null || course == undefined) return; - if (!courses.has(course)) courses.set(course, []); - }); - return courses; - } </script> <div @@ -59,7 +40,7 @@ <strong class="text-lg">Courses:</strong> </p> <ul class="text-lg"> - {#each Array.from(getCourses(pt)) as lab} + {#each Array.from(pt.coursesAndLabs()) as lab} <li> CSCE {lab[0]} - {lab[1]} </li> diff --git a/src/models/PeerTeacher.ts b/src/models/PeerTeacher.ts index 3ba5c79..4cb36dd 100644 --- a/src/models/PeerTeacher.ts +++ b/src/models/PeerTeacher.ts @@ -120,4 +120,30 @@ export default class PeerTeacher { return `${this?.phone_number.substring(0, 3)}-${this?.phone_number.substring(3, 6)}-${this?.phone_number.substring(6, 10)}`; } + get office_hours_hours(): number { + let hours = 0; + this.office_hours.forEach((e) => { + hours += e.duration_mins / 60; + }) + return hours; + } + + coursesAndLabs() { + const courses = new Map<number, number[]>(); + const getCourse = (x: number) => Math.floor(x / 1000); + this.labs.forEach((lab_id) => { + const key = getCourse(lab_id); + const sec = lab_id % 1000; + if (courses.has(key)) { + courses.get(key).push(sec); + } else { + courses.set(key, [sec]); + } + }); + this.can_teach.forEach((course) => { + if (course == null || course == undefined) return; + if (!courses.has(course)) courses.set(course, []); + }); + return courses; + } }
\ No newline at end of file |
