added connected double lessons with own setting #49
@ -246,46 +246,46 @@ class _TimetableState extends State<Timetable> {
|
|||||||||
|
|
||||||||
List<GetTimetableResponseObject> _removeDuplicates(TimetableProps data, Duration maxTimeBetweenDouble) {
|
List<GetTimetableResponseObject> _removeDuplicates(TimetableProps data, Duration maxTimeBetweenDouble) {
|
||||||||
|
|
||||||||
List<GetTimetableResponseObject> timetableList = data.getTimetableResponse.result.toList( );
|
List<GetTimetableResponseObject> timetableList = data.getTimetableResponse.result.toList();
|
||||||||
Pupsi marked this conversation as resolved
Outdated
|
|||||||||
|
|
||||||||
Pupsi marked this conversation as resolved
MineTec
commented
klammern weg oder aufklappen mit leerzeichen zwischen bedingungsklammern und block klammern weg **oder** aufklappen mit leerzeichen zwischen bedingungsklammern und block
|
|||||||||
if ( timetableList.isEmpty ) return timetableList;
|
if(timetableList.isEmpty) return timetableList;
|
||||||||
Pupsi marked this conversation as resolved
Outdated
MineTec
commented
leerzeichen leerzeichen
|
|||||||||
|
|
||||||||
timetableList.sort((a, b) => _parseWebuntisTimestamp(a.date, a.startTime).compareTo(_parseWebuntisTimestamp(b.date, b.startTime)));
|
timetableList.sort((a, b) => _parseWebuntisTimestamp(a.date, a.startTime).compareTo(_parseWebuntisTimestamp(b.date, b.startTime)));
|
||||||||
|
|
||||||||
GetTimetableResponseObject previousElement = timetableList.first;
|
GetTimetableResponseObject previousElement = timetableList.first;
|
||||||||
for (var i = 1; i < timetableList.length; i++) {
|
for(var i = 1; i < timetableList.length; i++) {
|
||||||||
GetTimetableResponseObject currentElement = timetableList.elementAt(i);
|
GetTimetableResponseObject currentElement = timetableList.elementAt(i);
|
||||||||
|
|
||||||||
Pupsi marked this conversation as resolved
MineTec
commented
das sollte umgeschrieben werden. das nullable mit dem fallback auf 1 == 2 ist sehr sehr hacky...
das sollte umgeschrieben werden.
ggf musst du die pfeilsyntax in einen normalen curly braces block abändern und dort dann mit normalen ifs erst auf null prüfen - auch wenn das länger ist
das nullable mit dem fallback auf 1 == 2 ist sehr sehr hacky...
```
bool isSameSubject() {
SomeNullableType? currentElementSubjects = currentElement.su.firstOrNull;
SomeNullableType? previousElementSubjects = previousElement.su.firstOrNull;
if(currentElementSubjects == null || previousElementSubjects == null) return false;
return currentElementSubjects!.id == previousElementSubjects!.id;
}
```
|
|||||||||
bool isSameLesson() {
|
bool isSameLesson() {
|
||||||||
Pupsi marked this conversation as resolved
Outdated
MineTec
commented
findest du eine bessere Möglichkeit als das findest du eine bessere Möglichkeit als das `.add(const Duration(seconds: 1))`?
|
|||||||||
int? currentSubjectId = currentElement.su.firstOrNull?.id;
|
int? currentSubjectId = currentElement.su.firstOrNull?.id;
|
||||||||
int? previousSubjectId = previousElement.su.firstOrNull?.id;
|
int? previousSubjectId = previousElement.su.firstOrNull?.id;
|
||||||||
|
|
||||||||
Pupsi marked this conversation as resolved
MineTec
commented
leerzeichen leerzeichen
|
|||||||||
if( currentSubjectId == null || previousSubjectId == null || currentSubjectId != previousSubjectId ) return false;
|
if(currentSubjectId == null || previousSubjectId == null || currentSubjectId != previousSubjectId) return false;
|
||||||||
Pupsi marked this conversation as resolved
Outdated
MineTec
commented
leerzeichen leerzeichen
|
|||||||||
|
|
||||||||
Pupsi marked this conversation as resolved
Outdated
MineTec
commented
durch das entfernen der zweiten schulstunde gehen potentiell wichtige Informationen verloren. Was passiert wenn eine stunde der doppelstunde abgesagt ist?
mein Vorschlag hier ist entweder die prüfung von zur Orientierung ob eine Stunde ausfällt oder nicht:
lib/view/pages/timetable/timetable.dart
Line 327 in 75846750f7
durch das entfernen der zweiten schulstunde gehen potentiell wichtige Informationen verloren.
Was passiert wenn eine stunde der doppelstunde abgesagt ist?
- Dann wäre entweder die doppelstunde abgesagt
- oder die doppelstunde vollständig da, obwohl eine stunde davon ausfallen würde
mein Vorschlag hier ist entweder die prüfung von `isSameSubject` so anzupassen, das diese false liefert, wenn beide stunden nicht den selben status haben, oder du fügst eine dritte Bedingung hinzu wie z.B. `isSameStatus()`
zur Orientierung ob eine Stunde ausfällt oder nicht: https://mhsl.eu/gitea/MarianumMobile/Client/src/commit/75846750f7f1ea4e161825e9f3f3529e47cbdb57/lib/view/pages/timetable/timetable.dart#L327
|
|||||||||
int? currentRoomId = currentElement.ro.firstOrNull?.id;
|
int? currentRoomId = currentElement.ro.firstOrNull?.id;
|
||||||||
int? previousRoomId = previousElement.ro.firstOrNull?.id;
|
int? previousRoomId = previousElement.ro.firstOrNull?.id;
|
||||||||
Pupsi marked this conversation as resolved
Outdated
MineTec
commented
leerzeichen leerzeichen
|
|||||||||
|
|
||||||||
if( currentRoomId != previousRoomId ) return false;
|
if(currentRoomId != previousRoomId) return false;
|
||||||||
Pupsi marked this conversation as resolved
Outdated
MineTec
commented
leerzeichen leerzeichen
|
|||||||||
|
|
||||||||
int? currentTeacherId = currentElement.te.firstOrNull?.id;
|
int? currentTeacherId = currentElement.te.firstOrNull?.id;
|
||||||||
int? previousTeacherId = previousElement.te.firstOrNull?.id;
|
int? previousTeacherId = previousElement.te.firstOrNull?.id;
|
||||||||
|
|
||||||||
if( currentTeacherId != previousTeacherId ) return false;
|
if(currentTeacherId != previousTeacherId) return false;
|
||||||||
Pupsi marked this conversation as resolved
Outdated
MineTec
commented
leerzeichen leerzeichen
|
|||||||||
|
|
||||||||
String? currentStatusCode = currentElement.code;
|
String? currentStatusCode = currentElement.code;
|
||||||||
String? previousStatusCode = previousElement.code;
|
String? previousStatusCode = previousElement.code;
|
||||||||
|
|
||||||||
if( currentStatusCode != previousStatusCode ) return false;
|
if(currentStatusCode != previousStatusCode) return false;
|
||||||||
Pupsi marked this conversation as resolved
Outdated
MineTec
commented
leerzeichen leerzeichen
|
|||||||||
|
|
||||||||
return true;
|
return true;
|
||||||||
}
|
}
|
||||||||
|
|
||||||||
bool isNotSeparated() => _parseWebuntisTimestamp( previousElement.date, previousElement.endTime ).add( maxTimeBetweenDouble )
|
bool isNotSeparated() => _parseWebuntisTimestamp(previousElement.date, previousElement.endTime).add(maxTimeBetweenDouble)
|
||||||||
Pupsi marked this conversation as resolved
Outdated
MineTec
commented
leerzeichen zu viel nach pfeilsyntax leerzeichen zu viel nach pfeilsyntax
MineTec
commented
und weiter hinten ebenfalls und weiter hinten ebenfalls
|
|||||||||
.isSameOrAfter( _parseWebuntisTimestamp( currentElement.date, currentElement.startTime ) );
|
.isSameOrAfter(_parseWebuntisTimestamp(currentElement.date, currentElement.startTime));
|
||||||||
Pupsi marked this conversation as resolved
Outdated
MineTec
commented
leerzeichen leerzeichen
|
|||||||||
|
|
||||||||
if ( isSameLesson() && isNotSeparated() ) {
|
if(isSameLesson() && isNotSeparated()) {
|
||||||||
Pupsi marked this conversation as resolved
Outdated
MineTec
commented
leerzeichen leerzeichen
|
|||||||||
previousElement.endTime = currentElement.endTime;
|
previousElement.endTime = currentElement.endTime;
|
||||||||
timetableList.remove( currentElement );
|
timetableList.remove(currentElement);
|
||||||||
Pupsi marked this conversation as resolved
Outdated
MineTec
commented
leerzeichen leerzeichen
|
|||||||||
i--;
|
i--;
|
||||||||
} else {
|
} else {
|
||||||||
previousElement = currentElement;
|
previousElement = currentElement;
|
||||||||
@ -297,10 +297,10 @@ class _TimetableState extends State<Timetable> {
|
|||||||||
|
|
||||||||
TimetableEvents _buildTableEvents(TimetableProps data) {
|
TimetableEvents _buildTableEvents(TimetableProps data) {
|
||||||||
|
|
||||||||
List<GetTimetableResponseObject> timetableList = data.getTimetableResponse.result.toList( );
|
List<GetTimetableResponseObject> timetableList = data.getTimetableResponse.result.toList();
|
||||||||
Pupsi marked this conversation as resolved
Outdated
MineTec
commented
leerzeichen zu viel leerzeichen zu viel
|
|||||||||
|
|
||||||||
if( settings.val().timetableSettings.connectDoubleLessons ){
|
if(settings.val().timetableSettings.connectDoubleLessons) {
|
||||||||
timetableList = _removeDuplicates( data, const Duration(minutes: 5) );
|
timetableList = _removeDuplicates(data, const Duration(minutes: 5));
|
||||||||
Pupsi marked this conversation as resolved
Outdated
MineTec
commented
leerzeichen zu viel leerzeichen zu viel
|
|||||||||
}
|
}
|
||||||||
|
|
||||||||
List<Appointment> appointments = timetableList.map((element) {
|
List<Appointment> appointments = timetableList.map((element) {
|
||||||||
|
leerzeichen