changed old subject type to gradesubject
This commit is contained in:
@@ -35,12 +35,12 @@ class _PersonalityCardState extends State<PersonalityCard> {
|
||||
late SettingsProvider settings;
|
||||
|
||||
late List<int> subjectAvgsList = [];
|
||||
late Map<Subject, double> subjectAvgs = {};
|
||||
late Map<GradeSubject, double> subjectAvgs = {};
|
||||
late double subjectAvg;
|
||||
late List<Grade> classWorkGrades;
|
||||
late Map<int, int> mostCommonGrade;
|
||||
late List<Absence> absences = [];
|
||||
final Map<Subject, Lesson> _lessonCount = {};
|
||||
final Map<GradeSubject, Lesson> _lessonCount = {};
|
||||
late int totalDelays;
|
||||
late int unexcusedAbsences;
|
||||
|
||||
@@ -48,14 +48,15 @@ class _PersonalityCardState extends State<PersonalityCard> {
|
||||
|
||||
bool hold = false;
|
||||
|
||||
List<Grade> getSubjectGrades(Subject subject, {int days = 0}) => gradeProvider
|
||||
.grades
|
||||
.where((e) =>
|
||||
e.subject == subject &&
|
||||
e.type == GradeType.midYear &&
|
||||
(days == 0 ||
|
||||
e.date.isBefore(DateTime.now().subtract(Duration(days: days)))))
|
||||
.toList();
|
||||
List<Grade> getSubjectGrades(GradeSubject subject, {int days = 0}) =>
|
||||
gradeProvider.grades
|
||||
.where((e) =>
|
||||
e.subject == subject &&
|
||||
e.type == GradeType.midYear &&
|
||||
(days == 0 ||
|
||||
e.date
|
||||
.isBefore(DateTime.now().subtract(Duration(days: days)))))
|
||||
.toList();
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
@@ -89,13 +90,13 @@ class _PersonalityCardState extends State<PersonalityCard> {
|
||||
}
|
||||
|
||||
void getGrades() {
|
||||
List<Subject> subjects = gradeProvider.grades
|
||||
List<GradeSubject> subjects = gradeProvider.grades
|
||||
.map((e) => e.subject)
|
||||
.toSet()
|
||||
.toList()
|
||||
..sort((a, b) => a.name.compareTo(b.name));
|
||||
|
||||
for (Subject subject in subjects) {
|
||||
for (GradeSubject subject in subjects) {
|
||||
List<Grade> subjectGrades = getSubjectGrades(subject);
|
||||
|
||||
double avg = AverageHelper.averageEvals(subjectGrades);
|
||||
|
||||
@@ -8,10 +8,16 @@ import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class AbsenceSubjectTile extends StatelessWidget {
|
||||
const AbsenceSubjectTile(this.subject, {Key? key, this.percentage = 0.0, this.excused = 0, this.unexcused = 0, this.pending = 0, this.onTap})
|
||||
const AbsenceSubjectTile(this.subject,
|
||||
{Key? key,
|
||||
this.percentage = 0.0,
|
||||
this.excused = 0,
|
||||
this.unexcused = 0,
|
||||
this.pending = 0,
|
||||
this.onTap})
|
||||
: super(key: key);
|
||||
|
||||
final Subject subject;
|
||||
final GradeSubject subject;
|
||||
final void Function()? onTap;
|
||||
final double percentage;
|
||||
|
||||
@@ -31,12 +37,20 @@ class AbsenceSubjectTile extends StatelessWidget {
|
||||
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8.0)),
|
||||
visualDensity: VisualDensity.compact,
|
||||
onTap: onTap,
|
||||
leading: Icon(SubjectIcon.resolveVariant(subject: subject, context: context), size: 32.0),
|
||||
leading: Icon(
|
||||
SubjectIcon.resolveVariant(subject: subject, context: context),
|
||||
size: 32.0),
|
||||
title: Text(
|
||||
subject.renamedTo ?? subject.name.capital(),
|
||||
maxLines: 2,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: TextStyle(fontWeight: FontWeight.w600, fontSize: 15.0, fontStyle: subject.isRenamed && settingsProvider.renamedSubjectsItalics ? FontStyle.italic : null),
|
||||
style: TextStyle(
|
||||
fontWeight: FontWeight.w600,
|
||||
fontSize: 15.0,
|
||||
fontStyle:
|
||||
subject.isRenamed && settingsProvider.renamedSubjectsItalics
|
||||
? FontStyle.italic
|
||||
: null),
|
||||
),
|
||||
subtitle: AbsenceDisplay(excused, unexcused, pending),
|
||||
trailing: Row(
|
||||
@@ -47,7 +61,10 @@ class AbsenceSubjectTile extends StatelessWidget {
|
||||
Stack(
|
||||
alignment: Alignment.centerRight,
|
||||
children: [
|
||||
const Opacity(child: Text("100%", style: TextStyle(fontFamily: "monospace")), opacity: 0),
|
||||
const Opacity(
|
||||
child: Text("100%",
|
||||
style: TextStyle(fontFamily: "monospace")),
|
||||
opacity: 0),
|
||||
Text(
|
||||
percentage.round().toString() + "%",
|
||||
style: TextStyle(
|
||||
|
||||
@@ -16,7 +16,7 @@ class GradeSubjectTile extends StatelessWidget {
|
||||
this.averageBefore = 0.0})
|
||||
: super(key: key);
|
||||
|
||||
final Subject subject;
|
||||
final GradeSubject subject;
|
||||
final void Function()? onTap;
|
||||
final double average;
|
||||
final double groupAverage;
|
||||
@@ -56,7 +56,10 @@ class GradeSubjectTile extends StatelessWidget {
|
||||
fontWeight: FontWeight.w600,
|
||||
fontSize: 14.0,
|
||||
color: textColor,
|
||||
fontStyle: settingsProvider.renamedSubjectsItalics && subject.isRenamed ? FontStyle.italic : null),
|
||||
fontStyle:
|
||||
settingsProvider.renamedSubjectsItalics && subject.isRenamed
|
||||
? FontStyle.italic
|
||||
: null),
|
||||
),
|
||||
trailing: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
|
||||
@@ -22,10 +22,10 @@ class AbsenceSubjectView extends StatelessWidget {
|
||||
const AbsenceSubjectView(this.subject, {Key? key, this.absences = const []})
|
||||
: super(key: key);
|
||||
|
||||
final Subject subject;
|
||||
final GradeSubject subject;
|
||||
final List<Absence> absences;
|
||||
|
||||
static void show(Subject subject, List<Absence> absences,
|
||||
static void show(GradeSubject subject, List<Absence> absences,
|
||||
{required BuildContext context}) {
|
||||
Navigator.of(context, rootNavigator: true)
|
||||
.push<Absence>(CupertinoPageRoute(
|
||||
|
||||
@@ -33,7 +33,7 @@ import 'absences_page.i18n.dart';
|
||||
enum AbsenceFilter { absences, delays, misses }
|
||||
|
||||
class SubjectAbsence {
|
||||
Subject subject;
|
||||
GradeSubject subject;
|
||||
List<Absence> absences;
|
||||
double percentage;
|
||||
|
||||
@@ -58,7 +58,7 @@ class _AbsencesPageState extends State<AbsencesPage>
|
||||
late String firstName;
|
||||
late TabController _tabController;
|
||||
late List<SubjectAbsence> absences = [];
|
||||
final Map<Subject, Lesson> _lessonCount = {};
|
||||
final Map<GradeSubject, Lesson> _lessonCount = {};
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
@@ -90,7 +90,7 @@ class _AbsencesPageState extends State<AbsencesPage>
|
||||
}
|
||||
|
||||
void buildSubjectAbsences() {
|
||||
Map<Subject, SubjectAbsence> _absences = {};
|
||||
Map<GradeSubject, SubjectAbsence> _absences = {};
|
||||
|
||||
for (final absence in absenceProvider.absences) {
|
||||
if (absence.delay != 0) continue;
|
||||
|
||||
@@ -16,7 +16,7 @@ import 'grade_calculator.i18n.dart';
|
||||
class GradeCalculator extends StatefulWidget {
|
||||
const GradeCalculator(this.subject, {Key? key}) : super(key: key);
|
||||
|
||||
final Subject subject;
|
||||
final GradeSubject subject;
|
||||
|
||||
@override
|
||||
_GradeCalculatorState createState() => _GradeCalculatorState();
|
||||
|
||||
@@ -7,7 +7,7 @@ import 'grades_page.i18n.dart';
|
||||
class FailWarning extends StatelessWidget {
|
||||
const FailWarning({Key? key, required this.subjectAvgs}) : super(key: key);
|
||||
|
||||
final Map<Subject, double> subjectAvgs;
|
||||
final Map<GradeSubject, double> subjectAvgs;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
||||
@@ -42,7 +42,7 @@ class GradeSubjectView extends StatefulWidget {
|
||||
const GradeSubjectView(this.subject, {Key? key, this.groupAverage = 0.0})
|
||||
: super(key: key);
|
||||
|
||||
final Subject subject;
|
||||
final GradeSubject subject;
|
||||
final double groupAverage;
|
||||
|
||||
void push(BuildContext context, {bool root = false}) {
|
||||
@@ -77,7 +77,7 @@ class _GradeSubjectViewState extends State<GradeSubjectView> {
|
||||
|
||||
String plan = '';
|
||||
|
||||
List<Grade> getSubjectGrades(Subject subject) => !gradeCalcMode
|
||||
List<Grade> getSubjectGrades(GradeSubject subject) => !gradeCalcMode
|
||||
? gradeProvider.grades.where((e) => e.subject == subject).toList()
|
||||
: calculatorProvider.grades.where((e) => e.subject == subject).toList();
|
||||
|
||||
|
||||
@@ -48,24 +48,25 @@ class _GradesPageState extends State<GradesPage> {
|
||||
|
||||
int avgDropValue = 0;
|
||||
|
||||
List<Grade> getSubjectGrades(Subject subject, {int days = 0}) => gradeProvider
|
||||
.grades
|
||||
.where((e) =>
|
||||
e.subject == subject &&
|
||||
e.type == GradeType.midYear &&
|
||||
(days == 0 ||
|
||||
e.date.isBefore(DateTime.now().subtract(Duration(days: days)))))
|
||||
.toList();
|
||||
List<Grade> getSubjectGrades(GradeSubject subject, {int days = 0}) =>
|
||||
gradeProvider.grades
|
||||
.where((e) =>
|
||||
e.subject == subject &&
|
||||
e.type == GradeType.midYear &&
|
||||
(days == 0 ||
|
||||
e.date
|
||||
.isBefore(DateTime.now().subtract(Duration(days: days)))))
|
||||
.toList();
|
||||
|
||||
void generateTiles() {
|
||||
List<Subject> subjects = gradeProvider.grades
|
||||
List<GradeSubject> subjects = gradeProvider.grades
|
||||
.map((e) => e.subject)
|
||||
.toSet()
|
||||
.toList()
|
||||
..sort((a, b) => a.name.compareTo(b.name));
|
||||
List<Widget> tiles = [];
|
||||
|
||||
Map<Subject, double> subjectAvgs = {};
|
||||
Map<GradeSubject, double> subjectAvgs = {};
|
||||
|
||||
tiles.addAll(subjects.map((subject) {
|
||||
List<Grade> subjectGrades = getSubjectGrades(subject);
|
||||
|
||||
@@ -30,7 +30,7 @@ class _AllSumBodyState extends State<AllSumBody> {
|
||||
int avgDropValue = 0;
|
||||
bool animation = false;
|
||||
|
||||
List<Grade> getSubjectGrades(Subject subject, {int days = 0}) => gradeProvider
|
||||
List<Grade> getSubjectGrades(GradeSubject subject, {int days = 0}) => gradeProvider
|
||||
.grades
|
||||
.where((e) =>
|
||||
e.subject == subject &&
|
||||
|
||||
@@ -50,14 +50,15 @@ class _GradesBodyState extends State<GradesBody> {
|
||||
int avgDropValue = 0;
|
||||
bool animation = false;
|
||||
|
||||
List<Grade> getSubjectGrades(Subject subject, {int days = 0}) => gradeProvider
|
||||
.grades
|
||||
.where((e) =>
|
||||
e.subject == subject &&
|
||||
e.type == GradeType.midYear &&
|
||||
(days == 0 ||
|
||||
e.date.isBefore(DateTime.now().subtract(Duration(days: days)))))
|
||||
.toList();
|
||||
List<Grade> getSubjectGrades(GradeSubject subject, {int days = 0}) =>
|
||||
gradeProvider.grades
|
||||
.where((e) =>
|
||||
e.subject == subject &&
|
||||
e.type == GradeType.midYear &&
|
||||
(days == 0 ||
|
||||
e.date
|
||||
.isBefore(DateTime.now().subtract(Duration(days: days)))))
|
||||
.toList();
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
@@ -74,18 +75,18 @@ class _GradesBodyState extends State<GradesBody> {
|
||||
}
|
||||
|
||||
void generateTiles({required int filter}) {
|
||||
List<Subject> subjects = gradeProvider.grades
|
||||
List<GradeSubject> subjects = gradeProvider.grades
|
||||
.map((e) => e.subject)
|
||||
.toSet()
|
||||
.toList()
|
||||
..sort((a, b) => a.name.compareTo(b.name));
|
||||
List<Widget> tiles = [];
|
||||
|
||||
Map<Subject, double> subjectAvgs = {};
|
||||
Map<GradeSubject, double> subjectAvgs = {};
|
||||
|
||||
var count = 1;
|
||||
|
||||
for (Subject subject in subjects) {
|
||||
for (GradeSubject subject in subjects) {
|
||||
List<Grade> subjectGrades = getSubjectGrades(subject);
|
||||
|
||||
double avg = AverageHelper.averageEvals(subjectGrades);
|
||||
|
||||
@@ -28,7 +28,7 @@ List<String> faces = [
|
||||
];
|
||||
|
||||
class SubjectAbsence {
|
||||
Subject subject;
|
||||
GradeSubject subject;
|
||||
List<Absence> absences;
|
||||
double percentage;
|
||||
|
||||
@@ -52,7 +52,7 @@ class _LessonsBodyState extends State<LessonsBody> {
|
||||
late List<SubjectAbsence> absences = [];
|
||||
late List<Widget> lessons = [];
|
||||
late List<Absence> delays = [];
|
||||
final Map<Subject, Lesson> _lessonCount = {};
|
||||
final Map<GradeSubject, Lesson> _lessonCount = {};
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
@@ -85,7 +85,7 @@ class _LessonsBodyState extends State<LessonsBody> {
|
||||
}
|
||||
|
||||
void buildSubjectAbsences() {
|
||||
Map<Subject, SubjectAbsence> _absences = {};
|
||||
Map<GradeSubject, SubjectAbsence> _absences = {};
|
||||
|
||||
for (final absence in absenceProvider.absences) {
|
||||
if (absence.delay != 0) continue;
|
||||
|
||||
Reference in New Issue
Block a user