Compare commits
2 Commits
b6bfef7715
...
f953dbd49f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f953dbd49f | ||
|
|
01e7e559ba |
@@ -1,10 +1,17 @@
|
||||
import 'package:kreta_api/kreta_api.dart';
|
||||
|
||||
bool _isPercentageGrade(Grade grade) {
|
||||
final name = grade.valueType.name?.toLowerCase() ?? '';
|
||||
return name.contains('szazalek') || name.contains('percent');
|
||||
}
|
||||
|
||||
double calculateAverage(List<Grade> sortedGrades) {
|
||||
double totalWeight = 0.0;
|
||||
double weightedSum = 0.0;
|
||||
|
||||
for (final grade in sortedGrades) {
|
||||
if (_isPercentageGrade(grade)) continue;
|
||||
|
||||
final value = grade.numericValue;
|
||||
final weight = grade.weightPercentage;
|
||||
|
||||
|
||||
@@ -322,6 +322,11 @@ class WidgetCacheHelper {
|
||||
var sum = 0.0;
|
||||
|
||||
for (var grade in grades) {
|
||||
final name = grade.valueType.name?.toLowerCase() ?? '';
|
||||
final isPercentage =
|
||||
name.contains('szazalek') || name.contains('percent');
|
||||
if (isPercentage) continue;
|
||||
|
||||
if (grade.numericValue != null) {
|
||||
var weight = (grade.weightPercentage ?? 100) / 100.0;
|
||||
weightTotal += weight;
|
||||
|
||||
@@ -146,18 +146,6 @@ class _HomeGradesScreen extends FirkaState<HomeGradesScreen> {
|
||||
|
||||
double avg = double.nan;
|
||||
if (subjectGrades.isNotEmpty) {
|
||||
for (var grade in subjectGrades) {
|
||||
if (grade.valueType.name == "Szazalekos") {
|
||||
grade.valueType = NameUidDesc(
|
||||
uid: "1,Osztalyzat",
|
||||
name: "Osztalyzat",
|
||||
description: "",
|
||||
);
|
||||
if (grade.numericValue != null) {
|
||||
grade.numericValue = percentageToGrade(grade.numericValue!);
|
||||
}
|
||||
}
|
||||
}
|
||||
avg = grades!.response!.getAverageBySubject(subject);
|
||||
}
|
||||
|
||||
|
||||
@@ -33,6 +33,10 @@ class _GradeChartState extends State<GradeChart> {
|
||||
double totalWeight = 0;
|
||||
for (final g in grades) {
|
||||
if (g.subject.uid != subjectUid) continue;
|
||||
final name = g.valueType.name?.toLowerCase() ?? '';
|
||||
final isPercentage =
|
||||
name.contains('szazalek') || name.contains('percent');
|
||||
if (isPercentage) continue;
|
||||
final v = g.numericValue;
|
||||
final w = g.weightPercentage;
|
||||
if (v != null && w != null) {
|
||||
|
||||
@@ -86,6 +86,14 @@ extension GradeListExtension on List<Grade> {
|
||||
|
||||
for (var grade in this) {
|
||||
if (grade.subject.uid == subject.uid) {
|
||||
final name = grade.valueType.name?.toLowerCase() ?? '';
|
||||
final isPercentage =
|
||||
name.contains('szazalek') || name.contains('percent');
|
||||
|
||||
if (isPercentage) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (grade.numericValue != null) {
|
||||
var weight = (grade.weightPercentage ?? 100) / 100.0;
|
||||
weightTotal += weight;
|
||||
@@ -95,6 +103,10 @@ extension GradeListExtension on List<Grade> {
|
||||
}
|
||||
}
|
||||
|
||||
if (weightTotal == 0) {
|
||||
return double.nan;
|
||||
}
|
||||
|
||||
return sum / weightTotal;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user