diff --git a/src/utils/deprecated.txt b/src/utils/deprecated.txt new file mode 100644 index 0000000..fe540d1 --- /dev/null +++ b/src/utils/deprecated.txt @@ -0,0 +1,100 @@ + // Initialize course specific variables + let courseScores: {[index: string]: any} = {}; + let courseMaxScores: {[index: string]: any} = {}; + let courseIndexes: {[index: string]: any} = {}; + courses.forEach(course => + { + courseScores[course.name] = 0; + courseMaxScores[course.name] = 0; + courseIndexes[course.name] = course.assignments.length - 1; + }); + + // Compute the rows data + let rows: {[index: string]: any}[] = []; + dates.forEach(date => + { + // Define row object + let row: {[index: string]:any} = {'date': date.toLocaleDateString('en-US')}; + + // Loop through courses + courses.forEach(course => + { + // Reversed loop through the assignments + for (let r = courseIndexes[course.name]; r >= 0; r--) + { + let assignment = course.assignments[r]; + + // If assignment should be displayed + if (assignment.complete != 'Complete') continue; + + // Date is being looked at + let assignmentDate = new Date(assignment.date); + if (assignmentDate.getTime() == date.getTime()) + { + // Detect grading method and record scores + if (course.grading.method == 'TOTAL_MEAN') + { + courseScores[course.name] += assignment.score; + courseMaxScores[course.name] += assignment.scoreMax; + } + else if (course.grading.method == 'PERCENT_TYPE') + { + let scale = course.grading.weightingMap[assignment.type]; + courseScores[course.name] += assignment.score * scale; + courseMaxScores[course.name] += assignment.scoreMax * scale; + } + } + + // Not now + else if (assignmentDate > date) + { + courseIndexes[course.name] = r; + break; + } + } + + // Add average to the row + row[course.name] = courseScores[course.name] / courseMaxScores[course.name] * 100; + }); + + // Add it to the array + rows.push(row); + }); + + + else if (course.grading.method == 'PERCENT_TYPE') + { + let typeScores: {[index: string]: any} = {}; + let typeCounts: {[index: string]: any} = {}; + + // Loop through assignments + course.assignments.forEach(assignment => + { + // If assignment should be displayed + if (assignment.complete != 'Complete') return; + + // Date is being looked at + let assignmentDate = new Date(assignment.date); + if (assignmentDate.getTime() < date.getTime()) + { + // Record scores + if (typeScores[assignment.type] == undefined) typeScores[assignment.type] = 0; + typeScores[assignment.type] += assignment.score / assignment.scoreMax; + + if (typeCounts[assignment.type] == undefined) typeCounts[assignment.type] = 0; + typeCounts[assignment.type] ++; + } + }); + + let score = 0; + + // Count + for (let type in typeScores) + { + score += typeScores[type] * course.grading.weightingMap[type] / typeCounts[type]; + console.log(type); + } + + // Add average to the row + row[course.name] = score * 100; + }