Skip to content

Commit

Permalink
Rename "Weightings" to "Weights" (#1822)
Browse files Browse the repository at this point in the history
  • Loading branch information
Jonas-Sander authored Feb 20, 2025
1 parent ac779d4 commit 83bcc72
Show file tree
Hide file tree
Showing 11 changed files with 58 additions and 70 deletions.
6 changes: 3 additions & 3 deletions app/lib/grades/grades_service/grades_service.dart
Original file line number Diff line number Diff line change
Expand Up @@ -604,7 +604,7 @@ class TermResult extends Equatable {
final bool isActiveTerm;
final String name;
final GradeType finalGradeType;
final IMap<GradeTypeId, Weight> gradeTypeWeightings;
final IMap<GradeTypeId, Weight> gradeTypeWeights;
final WeightDisplayType weightDisplayType;

SubjectResult subject(SubjectId id) {
Expand All @@ -620,7 +620,7 @@ class TermResult extends Equatable {
required this.subjects,
required this.isActiveTerm,
required this.finalGradeType,
required this.gradeTypeWeightings,
required this.gradeTypeWeights,
required this.weightDisplayType,
});

Expand All @@ -633,7 +633,7 @@ class TermResult extends Equatable {
isActiveTerm,
name,
finalGradeType,
gradeTypeWeightings,
gradeTypeWeights,
weightDisplayType,
];
}
Expand Down
10 changes: 5 additions & 5 deletions app/lib/grades/grades_service/src/grades_repository.dart
Original file line number Diff line number Diff line change
Expand Up @@ -283,7 +283,7 @@ class FirestoreGradesStateRepository extends GradesStateRepository {
createdOn: termSubject.createdOn?.toDate(),
isFinalGradeTypeOverridden:
termSubject.finalGradeType != subTerm.finalGradeTypeId,
gradeTypeWeightings:
gradeTypeWeights:
termSubject.gradeComposition.gradeTypeWeights
.map(
(key, value) => MapEntry(
Expand All @@ -292,7 +292,7 @@ class FirestoreGradesStateRepository extends GradesStateRepository {
),
)
.toIMap(),
gradeTypeWeightingsFromTerm:
gradeTypeWeightsFromTerm:
subTerm.gradeTypeWeights
.map(
(key, value) => MapEntry(
Expand Down Expand Up @@ -337,7 +337,7 @@ class FirestoreGradesStateRepository extends GradesStateRepository {
.toIList(),
name: dto.displayName,
// Change both to num
gradeTypeWeightings:
gradeTypeWeights:
dto.gradeTypeWeights
.map(
(key, value) => MapEntry(
Expand Down Expand Up @@ -515,7 +515,7 @@ class TermDto {
),
),
gradeTypeWeights:
term.gradeTypeWeightings
term.gradeTypeWeights
.map((gradeId, weight) => MapEntry(gradeId.value, weight.toDto()))
.unlock,
);
Expand Down Expand Up @@ -631,7 +631,7 @@ class SubjectGradeCompositionDto {
return SubjectGradeCompositionDto(
weightType: subject.weightType,
gradeTypeWeights:
subject.gradeTypeWeightings
subject.gradeTypeWeights
.map((gradeId, weight) => MapEntry(gradeId.value, weight.toDto()))
.unlock,
gradeWeights: Map.fromEntries(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ class _GradesServiceInternal {
term.tryGetTermGrade() != null
? term.gradingSystem.toGradeResult(term.tryGetTermGrade()!)
: null,
gradeTypeWeightings: term.gradeTypeWeightings,
gradeTypeWeights: term.gradeTypeWeights,
weightDisplayType: term.weightDisplayType,
subjects:
term.subjects
Expand All @@ -82,7 +82,7 @@ class _GradesServiceInternal {
)
: null,
weightType: subject.weightType,
gradeTypeWeights: subject.gradeTypeWeightings,
gradeTypeWeights: subject.gradeTypeWeights,
finalGradeTypeId: subject.finalGradeType,
weightingForTermGrade: subject.weightingForTermGrade,
grades:
Expand Down Expand Up @@ -132,7 +132,7 @@ class _GradesServiceInternal {
name: name,
finalGradeType: finalGradeType,
gradingSystem: gradingSystem.toGradingSystemModel(),
gradeTypeWeightings: gradeTypeWeights.map(
gradeTypeWeights: gradeTypeWeights.map(
(key, value) => MapEntry(key, value.toNonNegativeWeightOrThrow()),
),
),
Expand Down
62 changes: 28 additions & 34 deletions app/lib/grades/grades_service/src/term.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ class TermModel extends Equatable {
final TermId id;
final DateTime? createdOn;
final IList<SubjectModel> subjects;
final IMap<GradeTypeId, NonNegativeWeight> gradeTypeWeightings;
final IMap<GradeTypeId, NonNegativeWeight> gradeTypeWeights;
final GradingSystemModel gradingSystem;
final GradeTypeId finalGradeType;
final bool isActiveTerm;
Expand All @@ -27,7 +27,7 @@ class TermModel extends Equatable {
id,
createdOn,
subjects,
gradeTypeWeightings,
gradeTypeWeights,
weightDisplayType,
gradingSystem,
finalGradeType,
Expand All @@ -43,14 +43,14 @@ class TermModel extends Equatable {
required this.name,
this.createdOn,
this.subjects = const IListConst([]),
this.gradeTypeWeightings = const IMapConst({}),
this.gradeTypeWeights = const IMapConst({}),
this.weightDisplayType = WeightDisplayType.factor,
});

const TermModel.internal(
this.id,
this.subjects,
this.gradeTypeWeightings,
this.gradeTypeWeights,
this.weightDisplayType,
this.finalGradeType,
this.isActiveTerm,
Expand Down Expand Up @@ -79,7 +79,7 @@ class TermModel extends Equatable {
finalGradeType: finalGradeType,
connectedCourses: subject.connectedCourses,
weightType: WeightType.inheritFromTerm,
gradeTypeWeightingsFromTerm: gradeTypeWeightings,
gradeTypeWeightsFromTerm: gradeTypeWeights,
),
),
);
Expand All @@ -98,7 +98,7 @@ class TermModel extends Equatable {
TermModel _copyWith({
TermId? id,
IList<SubjectModel>? subjects,
IMap<GradeTypeId, NonNegativeWeight>? gradeTypeWeightings,
IMap<GradeTypeId, NonNegativeWeight>? gradeTypeWeights,
WeightDisplayType? weightDisplayType,
GradeTypeId? finalGradeType,
bool? isActiveTerm,
Expand All @@ -109,7 +109,7 @@ class TermModel extends Equatable {
return TermModel.internal(
id ?? this.id,
subjects ?? this.subjects,
gradeTypeWeightings ?? this.gradeTypeWeightings,
gradeTypeWeights ?? this.gradeTypeWeights,
weightDisplayType ?? this.weightDisplayType,
finalGradeType ?? this.finalGradeType,
isActiveTerm ?? this.isActiveTerm,
Expand Down Expand Up @@ -155,29 +155,25 @@ class TermModel extends Equatable {
GradeTypeId type, {
required NonNegativeWeight weight,
}) {
final newWeights = gradeTypeWeightings.add(type, weight);
final newWeights = gradeTypeWeights.add(type, weight);
final newSubjects =
subjects.map((s) {
final newSubject = s.copyWith(
gradeTypeWeightingsFromTerm: newWeights,
);
final newSubject = s.copyWith(gradeTypeWeightsFromTerm: newWeights);
return newSubject;
}).toIList();

return _copyWith(subjects: newSubjects, gradeTypeWeightings: newWeights);
return _copyWith(subjects: newSubjects, gradeTypeWeights: newWeights);
}

TermModel removeWeightingOfGradeType(GradeTypeId type) {
final newWeights = gradeTypeWeightings.remove(type);
final newWeights = gradeTypeWeights.remove(type);
final newSubjects =
subjects.map((s) {
final newSubject = s.copyWith(
gradeTypeWeightingsFromTerm: newWeights,
);
final newSubject = s.copyWith(gradeTypeWeightsFromTerm: newWeights);
return newSubject;
}).toIList();

return _copyWith(subjects: newSubjects, gradeTypeWeightings: newWeights);
return _copyWith(subjects: newSubjects, gradeTypeWeights: newWeights);
}

TermModel setFinalGradeType(GradeTypeId gradeType) {
Expand Down Expand Up @@ -364,8 +360,8 @@ class SubjectModel extends Equatable {
final GradeTypeId finalGradeType;
final bool isFinalGradeTypeOverridden;
final NonNegativeWeight weightingForTermGrade;
final IMap<GradeTypeId, NonNegativeWeight> gradeTypeWeightings;
final IMap<GradeTypeId, NonNegativeWeight> gradeTypeWeightingsFromTerm;
final IMap<GradeTypeId, NonNegativeWeight> gradeTypeWeights;
final IMap<GradeTypeId, NonNegativeWeight> gradeTypeWeightsFromTerm;
final WeightType weightType;
final String abbreviation;
final Design design;
Expand All @@ -384,8 +380,8 @@ class SubjectModel extends Equatable {
finalGradeType,
isFinalGradeTypeOverridden,
weightingForTermGrade,
gradeTypeWeightings,
gradeTypeWeightingsFromTerm,
gradeTypeWeights,
gradeTypeWeightsFromTerm,
weightType,
abbreviation,
design,
Expand All @@ -407,8 +403,8 @@ class SubjectModel extends Equatable {
this.isFinalGradeTypeOverridden = false,
this.grades = const IListConst([]),
NonNegativeWeight? weightingForTermGrade,
this.gradeTypeWeightings = const IMapConst({}),
this.gradeTypeWeightingsFromTerm = const IMapConst({}),
this.gradeTypeWeights = const IMapConst({}),
this.gradeTypeWeightsFromTerm = const IMapConst({}),
}) : weightingForTermGrade =
weightingForTermGrade ?? NonNegativeWeight.factor(1) {
gradeVal = _getGradeVal();
Expand Down Expand Up @@ -437,9 +433,9 @@ class SubjectModel extends Equatable {
return switch (weightType) {
WeightType.perGrade => grade.weight,
WeightType.perGradeType =>
gradeTypeWeightings[grade.gradeType] ?? const Weight.factor(1),
gradeTypeWeights[grade.gradeType] ?? const Weight.factor(1),
WeightType.inheritFromTerm =>
gradeTypeWeightingsFromTerm[grade.gradeType] ?? const Weight.factor(1),
gradeTypeWeightsFromTerm[grade.gradeType] ?? const Weight.factor(1),
};
}

Expand All @@ -459,13 +455,11 @@ class SubjectModel extends Equatable {
GradeTypeId gradeType, {
required NonNegativeWeight weight,
}) {
return copyWith(
gradeTypeWeightings: gradeTypeWeightings.add(gradeType, weight),
);
return copyWith(gradeTypeWeights: gradeTypeWeights.add(gradeType, weight));
}

SubjectModel removeGradeTypeWeight(GradeTypeId gradeType) {
return copyWith(gradeTypeWeightings: gradeTypeWeightings.remove(gradeType));
return copyWith(gradeTypeWeights: gradeTypeWeights.remove(gradeType));
}

SubjectModel overrideFinalGradeType(GradeTypeId gradeType) {
Expand Down Expand Up @@ -498,8 +492,8 @@ class SubjectModel extends Equatable {
bool? isFinalGradeTypeOverridden,
NonNegativeWeight? weightingForTermGrade,
GradingSystemModel? gradingSystem,
IMap<GradeTypeId, NonNegativeWeight>? gradeTypeWeightings,
IMap<GradeTypeId, NonNegativeWeight>? gradeTypeWeightingsFromTerm,
IMap<GradeTypeId, NonNegativeWeight>? gradeTypeWeights,
IMap<GradeTypeId, NonNegativeWeight>? gradeTypeWeightsFromTerm,
WeightType? weightType,
IList<ConnectedCourse>? connectedCourses,
DateTime? createdOn,
Expand All @@ -517,10 +511,10 @@ class SubjectModel extends Equatable {
isFinalGradeTypeOverridden ?? this.isFinalGradeTypeOverridden,
weightingForTermGrade:
weightingForTermGrade ?? this.weightingForTermGrade,
gradeTypeWeightings: gradeTypeWeightings ?? this.gradeTypeWeightings,
gradeTypeWeights: gradeTypeWeights ?? this.gradeTypeWeights,
weightType: weightType ?? this.weightType,
gradeTypeWeightingsFromTerm:
gradeTypeWeightingsFromTerm ?? this.gradeTypeWeightingsFromTerm,
gradeTypeWeightsFromTerm:
gradeTypeWeightsFromTerm ?? this.gradeTypeWeightsFromTerm,
connectedCourses: connectedCourses ?? this.connectedCourses,
createdOn: createdOn ?? this.createdOn,
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ class GradesDialogController extends ChangeNotifier {

return switch (termSub.weightType) {
WeightType.inheritFromTerm =>
term.gradeTypeWeightings.isNotEmpty
? term.gradeTypeWeightings[gradeTypeId] ?? Weight.zero
term.gradeTypeWeights.isNotEmpty
? term.gradeTypeWeights[gradeTypeId] ?? Weight.zero
: null,
WeightType.perGradeType =>
termSub.gradeTypeWeights.isNotEmpty
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ class SubjectSettingsPageController extends ChangeNotifier {
if (subject.weightType == WeightType.inheritFromTerm) {
// We show the weights from the term, but we need to copy them into the
// subject if the user changes them.
_weights = _weights.addAll(_getTerm()!.gradeTypeWeightings);
_weights = _weights.addAll(_getTerm()!.gradeTypeWeights);
} else {
_weights = _weights.addAll(subject.gradeTypeWeights);
}
Expand Down Expand Up @@ -129,7 +129,7 @@ class SubjectSettingsPageController extends ChangeNotifier {

// When switching from inheritFromTerm to perGradeType, we need to copy the
// existing weights from the term to the subject.
final termWeights = _getTerm()!.gradeTypeWeightings.entries;
final termWeights = _getTerm()!.gradeTypeWeights.entries;
for (final entry in termWeights) {
subRef.changeGradeTypeWeight(entry.key, entry.value);
await waitForFirestoreWriteLimit();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ class TermSettingsPageController extends ChangeNotifier {
isActiveTerm = term.isActiveTerm;
gradingSystem = term.gradingSystem;
finalGradeType = term.finalGradeType;
_weights = term.gradeTypeWeightings;
_weights = term.gradeTypeWeights;
weightDisplayType = term.weightDisplayType;

state = TermSettingsLoaded(view);
Expand Down
5 changes: 1 addition & 4 deletions app/test/grades/grade_types_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -222,10 +222,7 @@ void main() {
2.5,
);

expect(
controller.term(const TermId('foo')).gradeTypeWeightings,
isEmpty,
);
expect(controller.term(const TermId('foo')).gradeTypeWeights, isEmpty);
expect(
controller
.term(const TermId('foo'))
Expand Down
Loading

0 comments on commit 83bcc72

Please sign in to comment.