From b3b40a51063bd259c4c641bed08cac59fcf2ea7a Mon Sep 17 00:00:00 2001 From: Kiara <68660034+DragonCat4012@users.noreply.github.com> Date: Tue, 5 Sep 2023 16:47:01 +0200 Subject: [PATCH] fix #51 --- Calq/Screens/OverviewScreen/OverviewVM.swift | 15 ++----- Calq/Screens/SubjectList/SubjectListVM.swift | 42 ++++++++++---------- Calq/lib/Charts/BarChart.swift | 7 ++++ 3 files changed, 32 insertions(+), 32 deletions(-) diff --git a/Calq/Screens/OverviewScreen/OverviewVM.swift b/Calq/Screens/OverviewScreen/OverviewVM.swift index 43c6f84..c1f2b75 100644 --- a/Calq/Screens/OverviewScreen/OverviewVM.swift +++ b/Calq/Screens/OverviewScreen/OverviewVM.swift @@ -15,9 +15,9 @@ class OverViewViewModel: ObservableObject { @Published var gradeText = "" @Published var blockCircleText = "" - @Published var subjectValues: [BarChartEntry] = [] - @Published var halfyears: [BarChartEntry] = [] - @Published var lineChartEntries: [[LineChartEntry]] = [] + @Published var subjectValues: [BarChartEntry] = createSubjectBarData() + @Published var halfyears: [BarChartEntry] = createHalfYearBarChartData() + @Published var lineChartEntries: [[LineChartEntry]] = lineChartData() @Published var averageText: String = "" @Published var averagePercent: Double = 0.0 @@ -33,7 +33,7 @@ class OverViewViewModel: ObservableObject { blockCircleText = getGradeData() subjectValues = createSubjectBarData() - halfyears = getHalfyears() + halfyears = createHalfYearBarChartData() lineChartEntries = lineChartData() averageText = String(format: "%.2f", Util.generalAverage()) @@ -54,11 +54,4 @@ class OverViewViewModel: ObservableObject { let blockGrade = Util.grade(number: Double(blockPoints * 15 / 900)) return String(format: "%.2f", blockGrade) } - - func getHalfyears() -> [BarChartEntry] { - return [BarChartEntry(value: Util.generalAverage(1)), - BarChartEntry(value: Util.generalAverage(2)), - BarChartEntry(value: Util.generalAverage(3)), - BarChartEntry(value: Util.generalAverage(4))] - } } diff --git a/Calq/Screens/SubjectList/SubjectListVM.swift b/Calq/Screens/SubjectList/SubjectListVM.swift index 010475e..2154fe7 100644 --- a/Calq/Screens/SubjectList/SubjectListVM.swift +++ b/Calq/Screens/SubjectList/SubjectListVM.swift @@ -15,8 +15,8 @@ struct SubjectlistData: Hashable { } class SubjectListVM: ObservableObject { - @Published var data: [SubjectlistData] = [] - @Published var subjects: [UserSubject] = [] + @Published var data: [SubjectlistData] = Util.getAllSubjects().map {SubjectlistData(subject: $0, yearString: setAverages(subject: $0), colors: getcolorArr(subject: $0))} + @Published var subjects: [UserSubject] = Util.getAllSubjects() @Published var selectedSubejct: UserSubject? @Published var inactiveCount = 0 @@ -37,25 +37,6 @@ class SubjectListVM: ObservableObject { } } - func getcolorArr(subject: UserSubject) -> [Color] { - var arr = [Color.gray, Color.gray, Color.gray, Color.gray, Color.gray] - let inactiveYears = Util.getinactiveYears(subject) - - inactiveYears.forEach { year in - if year.isEmpty {return} - arr[Int(year)! - 1] = Color.red - } - return arr - } - - func setAverages(subject: UserSubject) -> [String] { - var arr = ["-", "-", "-", "-"] - for i in 0...3 { - arr[i] = String(format: "%.0f", Util.getSubjectAverage(subject, year: i+1, filterinactve: false)) - } - return arr - } - func calcInactiveYearsCount() -> Int { if subjects.count == 0 { return 0 } var count: Int = 0 @@ -70,3 +51,22 @@ class SubjectListVM: ObservableObject { return count } } + +private func getcolorArr(subject: UserSubject) -> [Color] { + var arr = [Color.gray, Color.gray, Color.gray, Color.gray, Color.gray] + let inactiveYears = Util.getinactiveYears(subject) + + inactiveYears.forEach { year in + if year.isEmpty {return} + arr[Int(year)! - 1] = Color.red + } + return arr +} + +private func setAverages(subject: UserSubject) -> [String] { + var arr = ["-", "-", "-", "-"] + for i in 0...3 { + arr[i] = String(format: "%.0f", Util.getSubjectAverage(subject, year: i+1, filterinactve: false)) + } + return arr +} diff --git a/Calq/lib/Charts/BarChart.swift b/Calq/lib/Charts/BarChart.swift index cdeb70f..356c586 100644 --- a/Calq/lib/Charts/BarChart.swift +++ b/Calq/lib/Charts/BarChart.swift @@ -79,6 +79,13 @@ func createSubjectBarData() -> [BarChartEntry] { return arr } +func createHalfYearBarChartData() -> [BarChartEntry] { + return [BarChartEntry(value: Util.generalAverage(1)), + BarChartEntry(value: Util.generalAverage(2)), + BarChartEntry(value: Util.generalAverage(3)), + BarChartEntry(value: Util.generalAverage(4))] +} + struct BarChartEntry: Hashable { var color: Color = .accentColor var value: Double = 0.5