[M] Move level detection to course

This commit is contained in:
Hykilpikonna
2019-11-06 18:22:35 -05:00
parent fbb9352546
commit 6eb7e421e0
3 changed files with 10 additions and 29 deletions
-3
View File
@@ -122,9 +122,6 @@ export default class App extends Vue
// Save courses // Save courses
this.courses = response.data.map((courseJson: any) => new Course(courseJson)); this.courses = response.data.map((courseJson: any) => new Course(courseJson));
// Post processing
CourseUtils.postProcess(this.courses);
// Load assignments // Load assignments
this.loadAssignments(); this.loadAssignments();
} }
+9 -2
View File
@@ -2,6 +2,7 @@ import {Assignment} from '@/components/app/app';
import JsonUtils from '@/utils/json-utils'; import JsonUtils from '@/utils/json-utils';
import Constants from '@/constants'; import Constants from '@/constants';
import {FormatUtils} from '@/utils/format-utils'; import {FormatUtils} from '@/utils/format-utils';
import {CourseUtils} from '@/utils/course-utils';
export default class Course export default class Course
{ {
@@ -46,8 +47,14 @@ export default class Course
this.letterGrade = courseJson.letterGrade; this.letterGrade = courseJson.letterGrade;
this.numericGrade = courseJson.numericGrade; this.numericGrade = courseJson.numericGrade;
this.level = courseJson.level; // Level and scaleUp
this.scaleUp = courseJson.scaleUp; let level = CourseUtils.detectLevel(this.name);
if (level != undefined)
{
this.level = level.level;
this.scaleUp = level.scaleUp;
}
else this.level = 'Unknown';
this.grading = courseJson.grading; this.grading = courseJson.grading;
} }
+1 -24
View File
@@ -63,35 +63,12 @@ export class CourseUtils
return `course/${course.id}/${course.name.toLowerCase().split(' ').join('-')}`; return `course/${course.id}/${course.name.toLowerCase().split(' ').join('-')}`;
} }
/**
* Post process course list
*
* @param courses Course list
*/
public static postProcess(courses: Course[])
{
for (let course of courses)
{
// Detect level
let level = this.detectLevel(course.name);
if (level != undefined)
{
course.level = level.level;
course.scaleUp = level.scaleUp;
}
else
{
course.level = 'Unknown';
}
}
}
/** /**
* Detect course level based on course name * Detect course level based on course name
* *
* @param name Course name * @param name Course name
*/ */
private static detectLevel(name: string) static detectLevel(name: string)
{ {
// Common ones // Common ones
if (name.startsWith('AP')) return LEVEL_AP; if (name.startsWith('AP')) return LEVEL_AP;