Skip to content

Commit

Permalink
Brought grades back!
Browse files Browse the repository at this point in the history
  • Loading branch information
KimihikoAkayasaki committed Jun 14, 2024
1 parent e52a63d commit 230d146
Show file tree
Hide file tree
Showing 5 changed files with 65 additions and 58 deletions.
4 changes: 2 additions & 2 deletions lib/interface/cupertino/pages/grades.dart
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ class _GradesPageState extends State<GradesPage> {
.orderBy((x) => x.name)
.toList();

var hasSecondSemester = subjectsToDisplay.any((x) => x.grades.any((y) => y.semester == 2));
var hasSecondSemester = subjectsToDisplay.any((x) => x.allGrades.any((y) => y.semester == 2));
var subjectsWidget = CupertinoListSection.insetGrouped(
margin: EdgeInsets.only(left: 15, right: 15, bottom: 10),
additionalDividerMargin: 5,
Expand All @@ -84,7 +84,7 @@ class _GradesPageState extends State<GradesPage> {
]
// Bindable messages layout
: subjectsToDisplay.select((x, index) {
var grades = x.grades.where((x) => x.semester == 2).appendAllIfEmpty(x.grades);
var grades = x.allGrades.where((x) => x.semester == 2).appendAllIfEmpty(x.allGrades);

return Builder(
builder: (context) => CupertinoListTile(
Expand Down
6 changes: 3 additions & 3 deletions lib/interface/cupertino/pages/home.dart
Original file line number Diff line number Diff line change
Expand Up @@ -100,10 +100,10 @@ class _HomePageState extends VisibilityAwareState<HomePage> {

// Event list for the next week (7 days), exc homeworks and teacher absences
var gradesWeek = Share.session.data.student.subjects
.where((x) => x.grades.isNotEmpty)
.where((x) => x.allGrades.isNotEmpty)
.select((x, index) => (
lesson: x,
grades: x.grades.where((y) => y.addDate.isAfter(DateTime.now().subtract(Duration(days: 7)).asDate())).toList()
grades: x.allGrades.where((y) => y.addDate.isAfter(DateTime.now().subtract(Duration(days: 7)).asDate())).toList()
))
.where((x) => x.grades.isNotEmpty)
.orderByDescending((x) => x.grades.orderByDescending((y) => y.addDate).first.addDate)
Expand Down Expand Up @@ -1097,7 +1097,7 @@ class _HomePageState extends VisibilityAwareState<HomePage> {
title: y.value.asGrade(context, setState,
markModified: y.type == RegisterChangeTypes.changed, onTap: () {
var lesson = Share.session.data.student.subjects
.firstWhereOrDefault((value) => value.grades.contains(y.value));
.firstWhereOrDefault((value) => value.allGrades.contains(y.value));
if (lesson == null) return;
Share.tabsNavigatePage.broadcast(Value(1));
Future.delayed(Duration(milliseconds: 250))
Expand Down
80 changes: 41 additions & 39 deletions lib/interface/cupertino/views/grades_detailed.dart
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,9 @@ class _GradesDetailedPageState extends State<GradesDetailedPage> {

@override
Widget build(BuildContext context) {
var gradesToDisplay = widget.lesson.grades
var gradesToDisplay = widget.lesson.allGrades
.where((x) => x.semester == 2)
.appendAllIfEmpty(widget.lesson.grades)
.appendAllIfEmpty(widget.lesson.allGrades)
.where((x) => !x.major)
.where((x) =>
x.name.contains(RegExp(searchQuery, caseSensitive: false)) ||
Expand All @@ -46,7 +46,7 @@ class _GradesDetailedPageState extends State<GradesDetailedPage> {
.distinct((x) => mapPropsToHashCode([x.resitPart ? 0 : UniqueKey(), x.name]))
.toList();

var secondSemester = widget.lesson.grades.any((x) => x.semester == 2 || x.isFinal || x.isFinalProposition);
var secondSemester = widget.lesson.allGrades.any((x) => x.semester == 2 || x.isFinal || x.isFinalProposition);
var gradesWidget = CupertinoListSection.insetGrouped(
margin: EdgeInsets.only(left: 15, right: 15, bottom: 10),
additionalDividerMargin: 5,
Expand All @@ -68,7 +68,7 @@ class _GradesDetailedPageState extends State<GradesDetailedPage> {
return CupertinoListTile(
padding: EdgeInsets.all(0),
title: x.asGrade(context, setState,
corrected: widget.lesson.grades.firstWhereOrDefault(
corrected: widget.lesson.allGrades.firstWhereOrDefault(
(y) => x.resitPart && y.resitPart && y.name == x.name && x != y,
defaultValue: null)));
}).toList(),
Expand Down Expand Up @@ -210,7 +210,7 @@ class _GradesDetailedPageState extends State<GradesDetailedPage> {
];

// Proposed grade (2nd semester / year)
if (widget.lesson.grades
if (widget.lesson.allGrades
.firstWhereOrDefault((x) => x.isFinalProposition || (x.isSemesterProposition && x.semester == 2))
?.value !=
null) {
Expand All @@ -222,7 +222,7 @@ class _GradesDetailedPageState extends State<GradesDetailedPage> {
CupertinoContextMenuAction(
onPressed: () {
sharing.Share.share(
'I got a ${widget.lesson.grades.firstWhereOrDefault((x) => x.isFinalProposition || (x.semester == 2 && x.isSemesterProposition))?.value} proposition from ${widget.lesson.name}!');
'I got a ${widget.lesson.allGrades.firstWhereOrDefault((x) => x.isFinalProposition || (x.semester == 2 && x.isSemesterProposition))?.value} proposition from ${widget.lesson.name}!');
Navigator.of(context, rootNavigator: true).pop();
},
trailingIcon: CupertinoIcons.share,
Expand Down Expand Up @@ -267,10 +267,10 @@ class _GradesDetailedPageState extends State<GradesDetailedPage> {
crossAxisAlignment: CrossAxisAlignment.center,
children: [
UnreadDot(
unseen: () => widget.lesson.grades.any((x) =>
unseen: () => widget.lesson.allGrades.any((x) =>
(x.isFinalProposition || (x.semester == 2 && x.isSemesterProposition)) &&
x.unseen),
markAsSeen: () => widget.lesson.grades
markAsSeen: () => widget.lesson.allGrades
.where(
(x) => x.isFinalProposition || (x.semester == 2 && x.isSemesterProposition))
.forEach((x) => x.markAsSeen()),
Expand All @@ -281,7 +281,7 @@ class _GradesDetailedPageState extends State<GradesDetailedPage> {
),
]),
Text(
widget.lesson.grades
widget.lesson.allGrades
.firstWhereOrDefault(
(x) => x.isFinalProposition || (x.semester == 2 && x.isSemesterProposition))
?.value
Expand All @@ -294,7 +294,7 @@ class _GradesDetailedPageState extends State<GradesDetailedPage> {
}

// Proposed grade (1st semester)
if (widget.lesson.grades.firstWhereOrDefault((x) => x.isSemesterProposition && x.semester == 1)?.value != null) {
if (widget.lesson.allGrades.firstWhereOrDefault((x) => x.isSemesterProposition && x.semester == 1)?.value != null) {
gradesSemesterBottomWidgets.add(CupertinoListTile(
padding: EdgeInsets.all(0),
title: CupertinoContextMenu.builder(
Expand All @@ -303,7 +303,7 @@ class _GradesDetailedPageState extends State<GradesDetailedPage> {
CupertinoContextMenuAction(
onPressed: () {
sharing.Share.share(
'I got a ${widget.lesson.grades.firstWhereOrDefault((x) => x.isSemesterProposition && x.semester == 1)?.value} semester proposition from ${widget.lesson.name}!');
'I got a ${widget.lesson.allGrades.firstWhereOrDefault((x) => x.isSemesterProposition && x.semester == 1)?.value} semester proposition from ${widget.lesson.name}!');
Navigator.of(context, rootNavigator: true).pop();
},
trailingIcon: CupertinoIcons.share,
Expand Down Expand Up @@ -348,9 +348,9 @@ class _GradesDetailedPageState extends State<GradesDetailedPage> {
crossAxisAlignment: CrossAxisAlignment.center,
children: [
UnreadDot(
unseen: () => widget.lesson.grades
unseen: () => widget.lesson.allGrades
.any((x) => (x.isSemesterProposition && x.semester == 1) && x.unseen),
markAsSeen: () => widget.lesson.grades
markAsSeen: () => widget.lesson.allGrades
.where((x) => x.isSemesterProposition && x.semester == 1)
.forEach((x) => x.markAsSeen()),
margin: EdgeInsets.only(right: 8)),
Expand All @@ -360,7 +360,7 @@ class _GradesDetailedPageState extends State<GradesDetailedPage> {
),
]),
Text(
widget.lesson.grades
widget.lesson.allGrades
.firstWhereOrDefault((x) => x.isSemesterProposition && x.semester == 1)
?.value
.toString() ??
Expand All @@ -372,7 +372,7 @@ class _GradesDetailedPageState extends State<GradesDetailedPage> {
}

// Final grade (2nd semester / year)
if (widget.lesson.grades.firstWhereOrDefault((x) => x.isFinal || (x.isSemester && x.semester == 2))?.value != null) {
if (widget.lesson.allGrades.firstWhereOrDefault((x) => x.isFinal || (x.isSemester && x.semester == 2))?.value != null) {
gradesBottomWidgets.add(CupertinoListTile(
padding: EdgeInsets.all(0),
title: CupertinoContextMenu.builder(
Expand All @@ -381,7 +381,7 @@ class _GradesDetailedPageState extends State<GradesDetailedPage> {
CupertinoContextMenuAction(
onPressed: () {
sharing.Share.share(
'I got a ${widget.lesson.grades.firstWhereOrDefault((x) => x.isFinal || (x.semester == 2 && x.isSemester))?.value} final from ${widget.lesson.name}!');
'I got a ${widget.lesson.allGrades.firstWhereOrDefault((x) => x.isFinal || (x.semester == 2 && x.isSemester))?.value} final from ${widget.lesson.name}!');
Navigator.of(context, rootNavigator: true).pop();
},
trailingIcon: CupertinoIcons.share,
Expand Down Expand Up @@ -426,9 +426,9 @@ class _GradesDetailedPageState extends State<GradesDetailedPage> {
crossAxisAlignment: CrossAxisAlignment.center,
children: [
UnreadDot(
unseen: () => widget.lesson.grades
unseen: () => widget.lesson.allGrades
.any((x) => (x.isFinal || (x.semester == 2 && x.isSemester)) && x.unseen),
markAsSeen: () => widget.lesson.grades
markAsSeen: () => widget.lesson.allGrades
.where((x) => x.isFinal || (x.semester == 2 && x.isSemester))
.forEach((x) => x.markAsSeen()),
margin: EdgeInsets.only(right: 8)),
Expand All @@ -438,7 +438,7 @@ class _GradesDetailedPageState extends State<GradesDetailedPage> {
),
]),
Text(
widget.lesson.grades
widget.lesson.allGrades
.firstWhereOrDefault((x) => x.isFinal || (x.semester == 2 && x.isSemester))
?.value
.toString() ??
Expand All @@ -450,7 +450,7 @@ class _GradesDetailedPageState extends State<GradesDetailedPage> {
}

// Final grade (1st semester)
if (widget.lesson.grades.firstWhereOrDefault((x) => x.isSemester && x.semester == 1)?.value != null) {
if (widget.lesson.allGrades.firstWhereOrDefault((x) => x.isSemester && x.semester == 1)?.value != null) {
gradesSemesterBottomWidgets.add(CupertinoListTile(
padding: EdgeInsets.all(0),
title: CupertinoContextMenu.builder(
Expand All @@ -459,7 +459,7 @@ class _GradesDetailedPageState extends State<GradesDetailedPage> {
CupertinoContextMenuAction(
onPressed: () {
sharing.Share.share(
'I got a ${widget.lesson.grades.firstWhereOrDefault((x) => x.isSemester && x.semester == 1)?.value} semester from ${widget.lesson.name}!');
'I got a ${widget.lesson.allGrades.firstWhereOrDefault((x) => x.isSemester && x.semester == 1)?.value} semester from ${widget.lesson.name}!');
Navigator.of(context, rootNavigator: true).pop();
},
trailingIcon: CupertinoIcons.share,
Expand Down Expand Up @@ -505,8 +505,8 @@ class _GradesDetailedPageState extends State<GradesDetailedPage> {
children: [
UnreadDot(
unseen: () =>
widget.lesson.grades.any((x) => (x.isSemester && x.semester == 1) && x.unseen),
markAsSeen: () => widget.lesson.grades
widget.lesson.allGrades.any((x) => (x.isSemester && x.semester == 1) && x.unseen),
markAsSeen: () => widget.lesson.allGrades
.where((x) => x.isSemester && x.semester == 1)
.forEach((x) => x.markAsSeen()),
margin: EdgeInsets.only(right: 8)),
Expand All @@ -516,7 +516,7 @@ class _GradesDetailedPageState extends State<GradesDetailedPage> {
),
]),
Text(
widget.lesson.grades
widget.lesson.allGrades
.firstWhereOrDefault((x) => x.isSemester && x.semester == 1)
?.value
.toString() ??
Expand Down Expand Up @@ -604,21 +604,23 @@ extension GradeBodyExtension on Grade {
},
),
isOwnGrade)
.append(CupertinoContextMenuAction(
isDestructiveAction: true,
trailingIcon: CupertinoIcons.chat_bubble_2,
child: const Text('Inquiry'),
onPressed: () {
Navigator.of(context, rootNavigator: true).pop();
showCupertinoModalBottomSheet(
context: context,
builder: (context) => MessageComposePage(
receivers: [addedBy],
subject: 'Pytanie o ocenę $value z dnia ${DateFormat("y.M.d").format(addDate)}',
signature:
'${Share.session.data.student.account.name}, ${Share.session.data.student.mainClass.name}'));
},
))
.appendIf(
CupertinoContextMenuAction(
isDestructiveAction: true,
trailingIcon: CupertinoIcons.chat_bubble_2,
child: const Text('Inquiry'),
onPressed: () {
Navigator.of(context, rootNavigator: true).pop();
showCupertinoModalBottomSheet(
context: context,
builder: (context) => MessageComposePage(
receivers: [addedBy],
subject: 'Pytanie o ocenę $value z dnia ${DateFormat("y.M.d").format(addDate)}',
signature:
'${Share.session.data.student.account.name}, ${Share.session.data.student.mainClass.name}'));
},
),
!isOwnGrade)
.appendIf(
CupertinoContextMenuAction(
isDestructiveAction: true,
Expand Down
Loading

0 comments on commit 230d146

Please sign in to comment.