aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFurkan Sahin <furkan-dev@proton.me>2022-08-16 22:37:28 -0500
committerFurkan Sahin <furkan-dev@proton.me>2022-08-16 22:37:28 -0500
commita4bd240abc1675ae22c431ed298a01ac6b231f53 (patch)
tree05cce54917edba050bfd7e2655cdda61b28944cf /src
parentc693728191f572d059ca0bbfceb40a1f2c8bdfc1 (diff)
`feat`: Display PT's courses
Add func to output a map of `courses_can_teach : assigned_labs[]`
Diffstat (limited to 'src')
-rw-r--r--src/components/TamuOutput.svelte21
-rw-r--r--src/models/PeerTeacher.ts26
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