Skip to content

Commit eb60a65

Browse files
committed
fix issue with cumulative GPA calculation and changing weights of new assignments
Signed-off-by: Anvay Mathur <[email protected]>
1 parent a92bd81 commit eb60a65

File tree

4 files changed

+29
-25
lines changed

4 files changed

+29
-25
lines changed

src/content_script/scores/index.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,12 +70,12 @@ function waitForElm(selector: string): Promise<Element | null> {
7070
});
7171
}
7272

73-
console.log(document.getElementById("pes-fp"));
73+
// console.log(document.getElementById("pes-fp"));
7474
if (document.getElementById("pes-fp") || document.getElementById("pes-st")) {
7575
document.getElementById("pes-fp")?.remove();
7676
document.getElementById("pes-st")?.remove();
7777
}
78-
console.log(document.getElementById("pes-fp"));
78+
// console.log(document.getElementById("pes-fp"));
7979
let gradeManagerO = new GradeManager([], []);
8080

8181
const doScoreTools = async () => {
@@ -86,7 +86,8 @@ const doScoreTools = async () => {
8686
for (let i = 0; i < rowEles.length; i++) {
8787
let rowEle = rowEles[i];
8888
if (rowEle.querySelector("td.codeCol > div.tt-excluded") != null) {
89-
console.log(rowEle); continue;
89+
// console.log(rowEle);
90+
continue;
9091
};
9192

9293
let gradeEle = rowEle.querySelector("td.ng-binding.ng-scope");
@@ -108,7 +109,8 @@ const doScoreTools = async () => {
108109
}
109110
}
110111
if (!validGrade) {
111-
console.log(rowEle); continue;
112+
// console.log(rowEle);
113+
continue;
112114
}
113115
let category = gradeManager.getCategoryByName(categoryEle.textContent.trim());
114116
if (!category) {
@@ -158,7 +160,7 @@ const doScoreTools = async () => {
158160
}
159161

160162

161-
console.log(gradeManager);
163+
// console.log(gradeManager);
162164
gradeManagerO = gradeManager;
163165
new ScoreTools({
164166
target: target as Element,

src/content_script/termgrades/index.ts

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -176,21 +176,24 @@ Promise.allSettled(fetches).then(async (res) => {
176176
homeClasses.push(new Class(name, { s1: s1Grade as Grade, s2: s2Grade as Grade }, null, "Now"));
177177
}
178178

179-
let allSame = true;
179+
let same = 0;
180180
for (let homeClass of homeClasses) {
181-
if (!arr.find(c => c.name === homeClass.name)) {
182-
allSame = false;
181+
let idx = arr.findIndex(c => c.name === homeClass.name);
182+
if (idx !== -1) {
183+
arr[idx].grade = homeClass.grade;
184+
} else {
185+
arr.unshift(homeClass);
183186
}
184187
}
185188

186-
if (!allSame) {
187-
arr.push(...homeClasses);
188-
} else {
189-
for (let homeClass of homeClasses) {
190-
let cor = arr.findIndex(c => c.name === homeClass.name);
191-
arr[cor].grade = homeClass.grade;
192-
}
193-
}
189+
// if (same <= 2) {
190+
// arr.push(...homeClasses);
191+
// } else {
192+
// for (let homeClass of homeClasses) {
193+
// let cor = arr.findIndex(c => c.name === homeClass.name);
194+
// arr[cor].grade = homeClass.grade;
195+
// }
196+
// }
194197

195198
let cumManager = new ClassManager(arr);
196199

@@ -201,5 +204,4 @@ Promise.allSettled(fetches).then(async (res) => {
201204

202205
new Cumulative({ target: target as Element, props: { classManager: cumManager, hideGPA } });
203206

204-
});
205-
207+
});

src/models/classes.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,12 @@ export class ClassManager {
5757
let totalCredits = this.getTotalCredits(1) + this.getTotalCredits(2);
5858
if (totalCredits === 0) return -1;
5959
for (const c of this.classes) {
60-
if (c.grade.s1 === "INC_NO_CLASS_CREDIT") {
61-
continue;
60+
if (c.grade.s1 !== "INC_NO_CLASS_CREDIT" && c.grade.s1 !== null) {
61+
gpa += (gradeToGPA[c.grade.s1] + (c.isBoosted ? 0.5 : 0)) * c.credits;
6262
}
63-
if (c.grade.s2 === "INC_NO_CLASS_CREDIT") {
64-
continue;
63+
if (c.grade.s2 !== "INC_NO_CLASS_CREDIT" && c.grade.s2 !== null) {
64+
gpa += (gradeToGPA[c.grade.s2] + (c.isBoosted ? 0.5 : 0)) * c.credits;
6565
}
66-
if (c.grade.s1 !== null) gpa += (gradeToGPA[c.grade.s1] + (c.isBoosted ? 0.5 : 0)) * c.credits;
67-
if (c.grade.s2 !== null) gpa += (gradeToGPA[c.grade.s2] + (c.isBoosted ? 0.5 : 0)) * c.credits;
6866
}
6967
return gpa / totalCredits;
7068
}

src/models/grades.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ function gcd(a: number, b: number): number {
109109
function findGCD(arr: number[]): number {
110110
let result = arr[0];
111111
for (let i = 1; i < arr.length; i++) {
112+
if (arr[i] == null || arr[i] == undefined) arr[i] = 0;
112113
result = gcd(arr[i], result);
113114

114115
if (result == 1) {
@@ -304,7 +305,8 @@ export class GradeManager {
304305

305306
let weights = categoryAssignments.map((a) => a.weight)
306307

307-
if (weights.includes(0)) return "";
308+
// @ts-expect-error if the text box is blank it turns null
309+
if (weights.includes(0) || weights.includes(null)) return "";
308310

309311
let sum = weights.reduce((a, b) => a + b, 0);
310312

0 commit comments

Comments
 (0)