mirror of
https://github.com/wger-project/flutter.git
synced 2026-02-18 00:17:48 +01:00
Allow passing all parameters to the WorkoutSession constructor
This commit is contained in:
@@ -51,22 +51,17 @@ class WorkoutSession {
|
||||
@JsonKey(required: false, includeToJson: false, defaultValue: [])
|
||||
List<Log> logs = [];
|
||||
|
||||
WorkoutSession();
|
||||
|
||||
WorkoutSession.withData({
|
||||
required this.id,
|
||||
WorkoutSession({
|
||||
this.id,
|
||||
required this.routineId,
|
||||
required this.date,
|
||||
required this.impression,
|
||||
required this.notes,
|
||||
required this.timeStart,
|
||||
required this.timeEnd,
|
||||
this.logs = const [],
|
||||
});
|
||||
|
||||
WorkoutSession.now() {
|
||||
timeStart = TimeOfDay.now();
|
||||
timeEnd = TimeOfDay.now();
|
||||
this.impression = 2,
|
||||
this.notes = '',
|
||||
this.timeStart,
|
||||
this.timeEnd,
|
||||
this.logs = const <Log>[],
|
||||
DateTime? date,
|
||||
}) {
|
||||
this.date = date ?? DateTime.now();
|
||||
}
|
||||
|
||||
// Boilerplate
|
||||
|
||||
@@ -11,18 +11,19 @@ WorkoutSession _$WorkoutSessionFromJson(Map<String, dynamic> json) {
|
||||
json,
|
||||
requiredKeys: const ['id', 'routine', 'date', 'impression', 'time_start', 'time_end'],
|
||||
);
|
||||
return WorkoutSession()
|
||||
..id = (json['id'] as num?)?.toInt()
|
||||
..routineId = (json['routine'] as num).toInt()
|
||||
..date = DateTime.parse(json['date'] as String)
|
||||
..impression = stringToNum(json['impression'] as String?)
|
||||
..notes = json['notes'] as String? ?? ''
|
||||
..timeStart = stringToTime(json['time_start'] as String?)
|
||||
..timeEnd = stringToTime(json['time_end'] as String?)
|
||||
..logs = (json['logs'] as List<dynamic>?)
|
||||
return WorkoutSession(
|
||||
id: (json['id'] as num?)?.toInt(),
|
||||
routineId: (json['routine'] as num).toInt(),
|
||||
impression: json['impression'] == null ? 2 : stringToNum(json['impression'] as String?),
|
||||
notes: json['notes'] as String? ?? '',
|
||||
timeStart: stringToTime(json['time_start'] as String?),
|
||||
timeEnd: stringToTime(json['time_end'] as String?),
|
||||
logs: (json['logs'] as List<dynamic>?)
|
||||
?.map((e) => Log.fromJson(e as Map<String, dynamic>))
|
||||
.toList() ??
|
||||
[];
|
||||
[],
|
||||
date: json['date'] == null ? null : DateTime.parse(json['date'] as String),
|
||||
);
|
||||
}
|
||||
|
||||
Map<String, dynamic> _$WorkoutSessionToJson(WorkoutSession instance) => <String, dynamic>{
|
||||
|
||||
@@ -742,12 +742,13 @@ class SessionPage extends StatefulWidget {
|
||||
) {
|
||||
_session = _routine.sessions.map((sessionApi) => sessionApi.session).firstWhere(
|
||||
(session) => session.date.isSameDayAs(DateTime.now()),
|
||||
orElse: () => WorkoutSession()
|
||||
..routineId = _routine.id!
|
||||
..impression = DEFAULT_IMPRESSION
|
||||
..date = DateTime.now()
|
||||
..timeStart = _start
|
||||
..timeEnd = TimeOfDay.now(),
|
||||
orElse: () => WorkoutSession(
|
||||
routineId: _routine.id!,
|
||||
impression: DEFAULT_IMPRESSION,
|
||||
date: DateTime.now(),
|
||||
timeEnd: TimeOfDay.now(),
|
||||
timeStart: _start,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ Routine getTestRoutine({List<Exercise>? exercises}) {
|
||||
log3.repetitionUnit = testRepetitionUnit1;
|
||||
|
||||
final session1 = WorkoutSessionApi(
|
||||
session: WorkoutSession.withData(
|
||||
session: WorkoutSession(
|
||||
id: 1,
|
||||
routineId: 1,
|
||||
date: DateTime(2021, 5, 1),
|
||||
@@ -98,7 +98,7 @@ Routine getTestRoutine({List<Exercise>? exercises}) {
|
||||
);
|
||||
|
||||
final session2 = WorkoutSessionApi(
|
||||
session: WorkoutSession.withData(
|
||||
session: WorkoutSession(
|
||||
id: 2,
|
||||
routineId: 1,
|
||||
date: DateTime(2021, 5, 2),
|
||||
|
||||
Reference in New Issue
Block a user