Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
15d883f
server: missing pupil identity field, generated models, matrix notifi…
dabblingwithcode Nov 24, 2025
88329dd
app: fix datetime extensions (?) WIP
dabblingwithcode Nov 24, 2025
ee17764
app, server: schoolday event notifications WIP
dabblingwithcode Nov 26, 2025
e2b3f2e
app: pupil isentities stream - add option to accept requests automati…
dabblingwithcode Nov 26, 2025
2a5d870
fix pupil profile content if empty
dabblingwithcode Nov 26, 2025
505f297
app: fix filter bottom sheets issues
dabblingwithcode Nov 26, 2025
788bb5e
app: charts WIP
dabblingwithcode Nov 26, 2025
734a76a
app: fixes
dabblingwithcode Nov 26, 2025
1b48028
app: pupil_profile_content changes
dabblingwithcode Nov 26, 2025
e78d885
Remove print statements
dabblingwithcode Nov 27, 2025
5a9c0f2
app: UI
dabblingwithcode Nov 28, 2025
742ad0a
app: refactor
dabblingwithcode Nov 28, 2025
1c9c218
app: fix init and changing environment (WIP)
dabblingwithcode Nov 29, 2025
53941e8
[app] initialization: get rid of top level private di variables, fixes
dabblingwithcode Nov 29, 2025
bad2132
[APP} Implement lazy initialitation of MatrixPolicyManager
dabblingwithcode Nov 29, 2025
3a059a8
[APP] Fix init flows and structure log statements
dabblingwithcode Nov 29, 2025
26692c0
[APP] Statistics: added attendance chart
dabblingwithcode Nov 29, 2025
d96b847
[APP] Added visualizations
dabblingwithcode Nov 30, 2025
6628c5a
[APP]: Relocated ressources
dabblingwithcode Nov 30, 2025
0682783
[APP]: Books fuature (WIP)
dabblingwithcode Nov 30, 2025
e92ec5b
[APP] Misc WIP
dabblingwithcode Nov 30, 2025
0b9ae17
[APP][SERVER] books feature: add book stats
dabblingwithcode Nov 30, 2025
0c01e21
[APP] new learning support plan: return if no supportlevelhistory
dabblingwithcode Dec 1, 2025
5cbed37
[SERVER] Schoolday event notification: fix replacing 'le' everywhere …
dabblingwithcode Dec 1, 2025
4041775
[APP] upload image: add safe area for older devices
dabblingwithcode Dec 1, 2025
712f737
[APP] Add logs for notifications, tidy up
dabblingwithcode Dec 1, 2025
ab98577
[APP][SERVER]: SchoolData post moved to admin endpoint
dabblingwithcode Dec 2, 2025
fb63bdb
[APP] fix notification service logs
dabblingwithcode Dec 2, 2025
1503c1f
WIP
dabblingwithcode Dec 2, 2025
eb34c41
[APP] refactor
dabblingwithcode Dec 2, 2025
36cb2ac
[APP] Notification logs
dabblingwithcode Dec 2, 2025
25772b7
[APP] Notification logs
dabblingwithcode Dec 2, 2025
1c89b59
tidy up
dabblingwithcode Dec 2, 2025
de0142d
[APP] Init process
dabblingwithcode Dec 2, 2025
54e5069
[APP] Relabel main nav tools
dabblingwithcode Dec 2, 2025
2af7e17
[APP] Add UI for logs
dabblingwithcode Dec 2, 2025
bf55990
add logs button in settings page
dabblingwithcode Dec 2, 2025
8c23093
add family language filter
dabblingwithcode Dec 3, 2025
883b9ec
statistics view add top navigation
dabblingwithcode Dec 3, 2025
1badbb4
ui changes
dabblingwithcode Dec 3, 2025
59bc99a
prepare audio recording functionality
dabblingwithcode Dec 3, 2025
6043dea
fix state error when no admin matrix credentials stored
dabblingwithcode Dec 3, 2025
16aef8a
pubspec, cursor rules, misc
dabblingwithcode Dec 3, 2025
b618826
[APP] Fix scanner
dabblingwithcode Dec 3, 2025
dca8b11
[APP] Fix pupil identities import bug on mobile
dabblingwithcode Dec 3, 2025
d301f53
[APP] Statistics, charts: added pupils with schoolyear held back, oth…
dabblingwithcode Dec 3, 2025
3b32e68
[APP] Clean logs, other changes
dabblingwithcode Dec 3, 2025
ed11829
fix pupil identity issues and pupil identity stream transfer
dabblingwithcode Dec 3, 2025
6eca1ec
fix pupil identity stream
dabblingwithcode Dec 4, 2025
525b8d5
[APP] Matrix contacts: fix card color
dabblingwithcode Dec 4, 2025
ea37413
[APP][SERVER]: Fix date issues
dabblingwithcode Dec 4, 2025
2b553bb
transtion as schoolday event topic, add comment to schoolday events, …
dabblingwithcode Dec 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
/* AUTOMATICALLY GENERATED CODE DO NOT MODIFY */
/* To generate run: "serverpod generate" */

// ignore_for_file: implementation_imports
// ignore_for_file: library_private_types_in_public_api
// ignore_for_file: non_constant_identifier_names
// ignore_for_file: public_member_api_docs
// ignore_for_file: type_literal_in_constant_pattern
// ignore_for_file: use_super_parameters

// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'package:serverpod_client/serverpod_client.dart' as _i1;

abstract class LibraryBookStatsDto implements _i1.SerializableModel {
LibraryBookStatsDto._({
required this.totalCatalogedBooks,
required this.totalBooksWithReadingLevel1,
required this.booksWithReadingLevel2,
required this.booksWithReadingLevel3,
required this.totalLibraryBooks,
required this.totalReadBooks,
required this.actuallyBorrowedBooks,
});

factory LibraryBookStatsDto({
required int totalCatalogedBooks,
required int totalBooksWithReadingLevel1,
required int booksWithReadingLevel2,
required int booksWithReadingLevel3,
required int totalLibraryBooks,
required int totalReadBooks,
required int actuallyBorrowedBooks,
}) = _LibraryBookStatsDtoImpl;

factory LibraryBookStatsDto.fromJson(Map<String, dynamic> jsonSerialization) {
return LibraryBookStatsDto(
totalCatalogedBooks: jsonSerialization['totalCatalogedBooks'] as int,
totalBooksWithReadingLevel1:
jsonSerialization['totalBooksWithReadingLevel1'] as int,
booksWithReadingLevel2:
jsonSerialization['booksWithReadingLevel2'] as int,
booksWithReadingLevel3:
jsonSerialization['booksWithReadingLevel3'] as int,
totalLibraryBooks: jsonSerialization['totalLibraryBooks'] as int,
totalReadBooks: jsonSerialization['totalReadBooks'] as int,
actuallyBorrowedBooks: jsonSerialization['actuallyBorrowedBooks'] as int,
);
}

int totalCatalogedBooks;

int totalBooksWithReadingLevel1;

int booksWithReadingLevel2;

int booksWithReadingLevel3;

int totalLibraryBooks;

int totalReadBooks;

int actuallyBorrowedBooks;

/// Returns a shallow copy of this [LibraryBookStatsDto]
/// with some or all fields replaced by the given arguments.
@_i1.useResult
LibraryBookStatsDto copyWith({
int? totalCatalogedBooks,
int? totalBooksWithReadingLevel1,
int? booksWithReadingLevel2,
int? booksWithReadingLevel3,
int? totalLibraryBooks,
int? totalReadBooks,
int? actuallyBorrowedBooks,
});
@override
Map<String, dynamic> toJson() {
return {
'totalCatalogedBooks': totalCatalogedBooks,
'totalBooksWithReadingLevel1': totalBooksWithReadingLevel1,
'booksWithReadingLevel2': booksWithReadingLevel2,
'booksWithReadingLevel3': booksWithReadingLevel3,
'totalLibraryBooks': totalLibraryBooks,
'totalReadBooks': totalReadBooks,
'actuallyBorrowedBooks': actuallyBorrowedBooks,
};
}

@override
String toString() {
return _i1.SerializationManager.encode(this);
}
}

class _LibraryBookStatsDtoImpl extends LibraryBookStatsDto {
_LibraryBookStatsDtoImpl({
required int totalCatalogedBooks,
required int totalBooksWithReadingLevel1,
required int booksWithReadingLevel2,
required int booksWithReadingLevel3,
required int totalLibraryBooks,
required int totalReadBooks,
required int actuallyBorrowedBooks,
}) : super._(
totalCatalogedBooks: totalCatalogedBooks,
totalBooksWithReadingLevel1: totalBooksWithReadingLevel1,
booksWithReadingLevel2: booksWithReadingLevel2,
booksWithReadingLevel3: booksWithReadingLevel3,
totalLibraryBooks: totalLibraryBooks,
totalReadBooks: totalReadBooks,
actuallyBorrowedBooks: actuallyBorrowedBooks,
);

/// Returns a shallow copy of this [LibraryBookStatsDto]
/// with some or all fields replaced by the given arguments.
@_i1.useResult
@override
LibraryBookStatsDto copyWith({
int? totalCatalogedBooks,
int? totalBooksWithReadingLevel1,
int? booksWithReadingLevel2,
int? booksWithReadingLevel3,
int? totalLibraryBooks,
int? totalReadBooks,
int? actuallyBorrowedBooks,
}) {
return LibraryBookStatsDto(
totalCatalogedBooks: totalCatalogedBooks ?? this.totalCatalogedBooks,
totalBooksWithReadingLevel1:
totalBooksWithReadingLevel1 ?? this.totalBooksWithReadingLevel1,
booksWithReadingLevel2:
booksWithReadingLevel2 ?? this.booksWithReadingLevel2,
booksWithReadingLevel3:
booksWithReadingLevel3 ?? this.booksWithReadingLevel3,
totalLibraryBooks: totalLibraryBooks ?? this.totalLibraryBooks,
totalReadBooks: totalReadBooks ?? this.totalReadBooks,
actuallyBorrowedBooks:
actuallyBorrowedBooks ?? this.actuallyBorrowedBooks,
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ abstract class PupilIdentity implements _i1.SerializableModel {
required this.afterSchoolCare,
this.religion,
this.religionLessonsSince,
this.religionLessonsCancelledAt,
this.familyLanguageLessonsSince,
this.leavingDate,
});
Expand All @@ -52,6 +53,7 @@ abstract class PupilIdentity implements _i1.SerializableModel {
required bool afterSchoolCare,
String? religion,
DateTime? religionLessonsSince,
DateTime? religionLessonsCancelledAt,
DateTime? familyLanguageLessonsSince,
DateTime? leavingDate,
}) = _PupilIdentityImpl;
Expand Down Expand Up @@ -83,6 +85,11 @@ abstract class PupilIdentity implements _i1.SerializableModel {
? null
: _i1.DateTimeJsonExtension.fromJson(
jsonSerialization['religionLessonsSince']),
religionLessonsCancelledAt:
jsonSerialization['religionLessonsCancelledAt'] == null
? null
: _i1.DateTimeJsonExtension.fromJson(
jsonSerialization['religionLessonsCancelledAt']),
familyLanguageLessonsSince:
jsonSerialization['familyLanguageLessonsSince'] == null
? null
Expand Down Expand Up @@ -127,6 +134,8 @@ abstract class PupilIdentity implements _i1.SerializableModel {

DateTime? religionLessonsSince;

DateTime? religionLessonsCancelledAt;

DateTime? familyLanguageLessonsSince;

DateTime? leavingDate;
Expand All @@ -151,6 +160,7 @@ abstract class PupilIdentity implements _i1.SerializableModel {
bool? afterSchoolCare,
String? religion,
DateTime? religionLessonsSince,
DateTime? religionLessonsCancelledAt,
DateTime? familyLanguageLessonsSince,
DateTime? leavingDate,
});
Expand All @@ -175,6 +185,8 @@ abstract class PupilIdentity implements _i1.SerializableModel {
if (religion != null) 'religion': religion,
if (religionLessonsSince != null)
'religionLessonsSince': religionLessonsSince?.toJson(),
if (religionLessonsCancelledAt != null)
'religionLessonsCancelledAt': religionLessonsCancelledAt?.toJson(),
if (familyLanguageLessonsSince != null)
'familyLanguageLessonsSince': familyLanguageLessonsSince?.toJson(),
if (leavingDate != null) 'leavingDate': leavingDate?.toJson(),
Expand Down Expand Up @@ -207,6 +219,7 @@ class _PupilIdentityImpl extends PupilIdentity {
required bool afterSchoolCare,
String? religion,
DateTime? religionLessonsSince,
DateTime? religionLessonsCancelledAt,
DateTime? familyLanguageLessonsSince,
DateTime? leavingDate,
}) : super._(
Expand All @@ -226,6 +239,7 @@ class _PupilIdentityImpl extends PupilIdentity {
afterSchoolCare: afterSchoolCare,
religion: religion,
religionLessonsSince: religionLessonsSince,
religionLessonsCancelledAt: religionLessonsCancelledAt,
familyLanguageLessonsSince: familyLanguageLessonsSince,
leavingDate: leavingDate,
);
Expand All @@ -251,6 +265,7 @@ class _PupilIdentityImpl extends PupilIdentity {
bool? afterSchoolCare,
Object? religion = _Undefined,
Object? religionLessonsSince = _Undefined,
Object? religionLessonsCancelledAt = _Undefined,
Object? familyLanguageLessonsSince = _Undefined,
Object? leavingDate = _Undefined,
}) {
Expand All @@ -275,6 +290,9 @@ class _PupilIdentityImpl extends PupilIdentity {
religionLessonsSince: religionLessonsSince is DateTime?
? religionLessonsSince
: this.religionLessonsSince,
religionLessonsCancelledAt: religionLessonsCancelledAt is DateTime?
? religionLessonsCancelledAt
: this.religionLessonsCancelledAt,
familyLanguageLessonsSince: familyLanguageLessonsSince is DateTime?
? familyLanguageLessonsSince
: this.familyLanguageLessonsSince,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,37 +13,54 @@ import 'package:serverpod_client/serverpod_client.dart' as _i1;

abstract class PupilIdentityDto implements _i1.SerializableModel {
PupilIdentityDto._({
required this.sender,
required this.type,
this.dataTimeStamp,
required this.value,
});

factory PupilIdentityDto({
required String sender,
required String type,
DateTime? dataTimeStamp,
required String value,
}) = _PupilIdentityDtoImpl;

factory PupilIdentityDto.fromJson(Map<String, dynamic> jsonSerialization) {
return PupilIdentityDto(
sender: jsonSerialization['sender'] as String,
type: jsonSerialization['type'] as String,
dataTimeStamp: jsonSerialization['dataTimeStamp'] == null
? null
: _i1.DateTimeJsonExtension.fromJson(
jsonSerialization['dataTimeStamp']),
value: jsonSerialization['value'] as String,
);
}

String sender;

String type;

DateTime? dataTimeStamp;

String value;

/// Returns a shallow copy of this [PupilIdentityDto]
/// with some or all fields replaced by the given arguments.
@_i1.useResult
PupilIdentityDto copyWith({
String? sender,
String? type,
DateTime? dataTimeStamp,
String? value,
});
@override
Map<String, dynamic> toJson() {
return {
'sender': sender,
'type': type,
if (dataTimeStamp != null) 'dataTimeStamp': dataTimeStamp?.toJson(),
'value': value,
};
}
Expand All @@ -54,12 +71,18 @@ abstract class PupilIdentityDto implements _i1.SerializableModel {
}
}

class _Undefined {}

class _PupilIdentityDtoImpl extends PupilIdentityDto {
_PupilIdentityDtoImpl({
required String sender,
required String type,
DateTime? dataTimeStamp,
required String value,
}) : super._(
sender: sender,
type: type,
dataTimeStamp: dataTimeStamp,
value: value,
);

Expand All @@ -68,11 +91,16 @@ class _PupilIdentityDtoImpl extends PupilIdentityDto {
@_i1.useResult
@override
PupilIdentityDto copyWith({
String? sender,
String? type,
Object? dataTimeStamp = _Undefined,
String? value,
}) {
return PupilIdentityDto(
sender: sender ?? this.sender,
type: type ?? this.type,
dataTimeStamp:
dataTimeStamp is DateTime? ? dataTimeStamp : this.dataTimeStamp,
value: value ?? this.value,
);
}
Expand Down
Loading