mirror of
https://github.com/wger-project/flutter.git
synced 2026-02-18 00:17:48 +01:00
Rename further occurrences of "exercise base" to just "exercise"
This commit is contained in:
@@ -18,7 +18,7 @@ class Exercises extends Table {
|
||||
|
||||
TextColumn get data => text()();
|
||||
|
||||
// TextColumn get exercisedata => text().map(const ExerciseBaseConverter())();
|
||||
// TextColumn get data => text().map(const ExerciseBaseConverter())();
|
||||
|
||||
DateTimeColumn get lastUpdate => dateTime()();
|
||||
}
|
||||
|
||||
@@ -2,10 +2,10 @@ import 'dart:convert';
|
||||
|
||||
import 'package:drift/drift.dart';
|
||||
import 'package:wger/models/exercises/alias.dart';
|
||||
import 'package:wger/models/exercises/base.dart';
|
||||
import 'package:wger/models/exercises/category.dart';
|
||||
import 'package:wger/models/exercises/comment.dart';
|
||||
import 'package:wger/models/exercises/equipment.dart';
|
||||
import 'package:wger/models/exercises/exercise.dart';
|
||||
import 'package:wger/models/exercises/image.dart';
|
||||
import 'package:wger/models/exercises/language.dart';
|
||||
import 'package:wger/models/exercises/muscle.dart';
|
||||
@@ -13,11 +13,11 @@ import 'package:wger/models/exercises/translation.dart';
|
||||
import 'package:wger/models/exercises/variation.dart';
|
||||
import 'package:wger/models/exercises/video.dart';
|
||||
|
||||
class ExerciseBaseConverter extends TypeConverter<ExerciseBase, String> {
|
||||
class ExerciseBaseConverter extends TypeConverter<Exercise, String> {
|
||||
const ExerciseBaseConverter();
|
||||
|
||||
@override
|
||||
ExerciseBase fromSql(String fromDb) {
|
||||
Exercise fromSql(String fromDb) {
|
||||
final Map<String, dynamic> baseData = json.decode(fromDb);
|
||||
|
||||
final category = ExerciseCategory.fromJson(baseData['categories']);
|
||||
@@ -33,7 +33,7 @@ class ExerciseBaseConverter extends TypeConverter<ExerciseBase, String> {
|
||||
id: exerciseData['id'],
|
||||
name: exerciseData['name'],
|
||||
description: exerciseData['description'],
|
||||
baseId: baseData['id'],
|
||||
exerciseId: baseData['id'],
|
||||
);
|
||||
translation.aliases = exerciseData['aliases'].map((e) => Alias.fromJson(e)).toList();
|
||||
translation.notes = exerciseData['notes'].map((e) => Comment.fromJson(e)).toList();
|
||||
@@ -41,7 +41,7 @@ class ExerciseBaseConverter extends TypeConverter<ExerciseBase, String> {
|
||||
translations.add(translation);
|
||||
}
|
||||
|
||||
final exerciseBase = ExerciseBase(
|
||||
final exerciseBase = Exercise(
|
||||
id: baseData['id'],
|
||||
uuid: baseData['uuid'],
|
||||
created: null,
|
||||
@@ -51,14 +51,14 @@ class ExerciseBaseConverter extends TypeConverter<ExerciseBase, String> {
|
||||
equipment: equipment.cast<Equipment>(),
|
||||
category: category,
|
||||
images: images.cast<ExerciseImage>(),
|
||||
exercises: translations,
|
||||
translations: translations,
|
||||
videos: videos.cast<Video>(),
|
||||
);
|
||||
return exerciseBase;
|
||||
}
|
||||
|
||||
@override
|
||||
String toSql(ExerciseBase value) {
|
||||
String toSql(Exercise value) {
|
||||
return json.encode(value.toJson());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:wger/exceptions/http_exception.dart';
|
||||
import 'package:wger/models/exercises/base.dart';
|
||||
import 'package:wger/models/exercises/exercise.dart';
|
||||
import 'package:wger/models/exercises/translation.dart';
|
||||
import 'package:wger/models/workouts/log.dart';
|
||||
import 'package:wger/providers/workout_plans.dart';
|
||||
@@ -108,7 +108,7 @@ dynamic showDeleteDialog(
|
||||
String confirmDeleteName,
|
||||
Log log,
|
||||
Translation exercise,
|
||||
Map<ExerciseBase, List<Log>> exerciseData,
|
||||
Map<Exercise, List<Log>> exerciseData,
|
||||
) async {
|
||||
final res = await showDialog(
|
||||
context: context,
|
||||
|
||||
@@ -26,10 +26,10 @@ import 'package:wger/models/exercises/muscle.dart';
|
||||
import 'package:wger/models/exercises/translation.dart';
|
||||
import 'package:wger/models/exercises/video.dart';
|
||||
|
||||
part 'base.g.dart';
|
||||
part 'exercise.g.dart';
|
||||
|
||||
@JsonSerializable(explicitToJson: true)
|
||||
class ExerciseBase extends Equatable {
|
||||
class Exercise extends Equatable {
|
||||
@JsonKey(required: true)
|
||||
final int? id;
|
||||
|
||||
@@ -81,7 +81,7 @@ class ExerciseBase extends Equatable {
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
List<Video> videos = [];
|
||||
|
||||
ExerciseBase({
|
||||
Exercise({
|
||||
this.id,
|
||||
this.uuid,
|
||||
this.created,
|
||||
@@ -92,7 +92,7 @@ class ExerciseBase extends Equatable {
|
||||
List<Muscle>? musclesSecondary,
|
||||
List<Equipment>? equipment,
|
||||
List<ExerciseImage>? images,
|
||||
List<Translation>? exercises,
|
||||
List<Translation>? translations,
|
||||
ExerciseCategory? category,
|
||||
List<Video>? videos,
|
||||
}) {
|
||||
@@ -118,12 +118,8 @@ class ExerciseBase extends Equatable {
|
||||
equipmentIds = equipment.map((e) => e.id).toList();
|
||||
}
|
||||
|
||||
// if (exercises == null) {
|
||||
// print("Exercises are NULL");
|
||||
// }
|
||||
|
||||
if (exercises != null) {
|
||||
translations = exercises;
|
||||
if (translations != null) {
|
||||
translations = translations;
|
||||
}
|
||||
|
||||
if (videos != null) {
|
||||
@@ -166,9 +162,9 @@ class ExerciseBase extends Equatable {
|
||||
}
|
||||
|
||||
// Boilerplate
|
||||
factory ExerciseBase.fromJson(Map<String, dynamic> json) => _$ExerciseBaseFromJson(json);
|
||||
factory Exercise.fromJson(Map<String, dynamic> json) => _$ExerciseFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$ExerciseBaseToJson(this);
|
||||
Map<String, dynamic> toJson() => _$ExerciseToJson(this);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [
|
||||
@@ -1,12 +1,12 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'base.dart';
|
||||
part of 'exercise.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
ExerciseBase _$ExerciseBaseFromJson(Map<String, dynamic> json) {
|
||||
Exercise _$ExerciseFromJson(Map<String, dynamic> json) {
|
||||
$checkKeys(
|
||||
json,
|
||||
requiredKeys: const [
|
||||
@@ -22,7 +22,7 @@ ExerciseBase _$ExerciseBaseFromJson(Map<String, dynamic> json) {
|
||||
'equipment'
|
||||
],
|
||||
);
|
||||
return ExerciseBase(
|
||||
return Exercise(
|
||||
id: json['id'] as int?,
|
||||
uuid: json['uuid'] as String?,
|
||||
created: json['created'] == null ? null : DateTime.parse(json['created'] as String),
|
||||
@@ -31,6 +31,9 @@ ExerciseBase _$ExerciseBaseFromJson(Map<String, dynamic> json) {
|
||||
? null
|
||||
: DateTime.parse(json['last_update_global'] as String),
|
||||
variationId: json['variations'] as int?,
|
||||
translations: (json['translations'] as List<dynamic>?)
|
||||
?.map((e) => Translation.fromJson(e as Map<String, dynamic>))
|
||||
.toList(),
|
||||
category: json['categories'] == null
|
||||
? null
|
||||
: ExerciseCategory.fromJson(json['categories'] as Map<String, dynamic>),
|
||||
@@ -39,13 +42,10 @@ ExerciseBase _$ExerciseBaseFromJson(Map<String, dynamic> json) {
|
||||
..musclesIds = (json['muscles'] as List<dynamic>).map((e) => e as int).toList()
|
||||
..musclesSecondaryIds =
|
||||
(json['muscles_secondary'] as List<dynamic>).map((e) => e as int).toList()
|
||||
..equipmentIds = (json['equipment'] as List<dynamic>).map((e) => e as int).toList()
|
||||
..translations = (json['translations'] as List<dynamic>)
|
||||
.map((e) => Translation.fromJson(e as Map<String, dynamic>))
|
||||
.toList();
|
||||
..equipmentIds = (json['equipment'] as List<dynamic>).map((e) => e as int).toList();
|
||||
}
|
||||
|
||||
Map<String, dynamic> _$ExerciseBaseToJson(ExerciseBase instance) => <String, dynamic>{
|
||||
Map<String, dynamic> _$ExerciseToJson(Exercise instance) => <String, dynamic>{
|
||||
'id': instance.id,
|
||||
'uuid': instance.uuid,
|
||||
'variations': instance.variationId,
|
||||
@@ -10,8 +10,10 @@ class ExerciseData with _$ExerciseData {
|
||||
factory ExerciseData({
|
||||
required int id,
|
||||
required String uuid,
|
||||
// ignore: invalid_annotation_target
|
||||
@JsonKey(name: 'language') required int languageId,
|
||||
@JsonKey(required: true, name: 'exercise_base') required int baseId,
|
||||
// ignore: invalid_annotation_target
|
||||
@JsonKey(required: true, name: 'exercise_base') required int exerciseId,
|
||||
required String description,
|
||||
required String name,
|
||||
required List<Alias> aliases,
|
||||
|
||||
@@ -21,11 +21,11 @@ ExerciseData _$ExerciseDataFromJson(Map<String, dynamic> json) {
|
||||
/// @nodoc
|
||||
mixin _$ExerciseData {
|
||||
int get id => throw _privateConstructorUsedError;
|
||||
String get uuid => throw _privateConstructorUsedError;
|
||||
String get uuid => throw _privateConstructorUsedError; // ignore: invalid_annotation_target
|
||||
@JsonKey(name: 'language')
|
||||
int get languageId => throw _privateConstructorUsedError;
|
||||
int get languageId => throw _privateConstructorUsedError; // ignore: invalid_annotation_target
|
||||
@JsonKey(required: true, name: 'exercise_base')
|
||||
int get baseId => throw _privateConstructorUsedError;
|
||||
int get exerciseId => throw _privateConstructorUsedError;
|
||||
String get description => throw _privateConstructorUsedError;
|
||||
String get name => throw _privateConstructorUsedError;
|
||||
List<Alias> get aliases => throw _privateConstructorUsedError;
|
||||
@@ -45,7 +45,7 @@ abstract class $ExerciseDataCopyWith<$Res> {
|
||||
{int id,
|
||||
String uuid,
|
||||
@JsonKey(name: 'language') int languageId,
|
||||
@JsonKey(required: true, name: 'exercise_base') int baseId,
|
||||
@JsonKey(required: true, name: 'exercise_base') int exerciseId,
|
||||
String description,
|
||||
String name,
|
||||
List<Alias> aliases,
|
||||
@@ -68,7 +68,7 @@ class _$ExerciseDataCopyWithImpl<$Res, $Val extends ExerciseData>
|
||||
Object? id = null,
|
||||
Object? uuid = null,
|
||||
Object? languageId = null,
|
||||
Object? baseId = null,
|
||||
Object? exerciseId = null,
|
||||
Object? description = null,
|
||||
Object? name = null,
|
||||
Object? aliases = null,
|
||||
@@ -87,9 +87,9 @@ class _$ExerciseDataCopyWithImpl<$Res, $Val extends ExerciseData>
|
||||
? _value.languageId
|
||||
: languageId // ignore: cast_nullable_to_non_nullable
|
||||
as int,
|
||||
baseId: null == baseId
|
||||
? _value.baseId
|
||||
: baseId // ignore: cast_nullable_to_non_nullable
|
||||
exerciseId: null == exerciseId
|
||||
? _value.exerciseId
|
||||
: exerciseId // ignore: cast_nullable_to_non_nullable
|
||||
as int,
|
||||
description: null == description
|
||||
? _value.description
|
||||
@@ -122,7 +122,7 @@ abstract class _$$ExerciseDataImplCopyWith<$Res> implements $ExerciseDataCopyWit
|
||||
{int id,
|
||||
String uuid,
|
||||
@JsonKey(name: 'language') int languageId,
|
||||
@JsonKey(required: true, name: 'exercise_base') int baseId,
|
||||
@JsonKey(required: true, name: 'exercise_base') int exerciseId,
|
||||
String description,
|
||||
String name,
|
||||
List<Alias> aliases,
|
||||
@@ -143,7 +143,7 @@ class __$$ExerciseDataImplCopyWithImpl<$Res>
|
||||
Object? id = null,
|
||||
Object? uuid = null,
|
||||
Object? languageId = null,
|
||||
Object? baseId = null,
|
||||
Object? exerciseId = null,
|
||||
Object? description = null,
|
||||
Object? name = null,
|
||||
Object? aliases = null,
|
||||
@@ -162,9 +162,9 @@ class __$$ExerciseDataImplCopyWithImpl<$Res>
|
||||
? _value.languageId
|
||||
: languageId // ignore: cast_nullable_to_non_nullable
|
||||
as int,
|
||||
baseId: null == baseId
|
||||
? _value.baseId
|
||||
: baseId // ignore: cast_nullable_to_non_nullable
|
||||
exerciseId: null == exerciseId
|
||||
? _value.exerciseId
|
||||
: exerciseId // ignore: cast_nullable_to_non_nullable
|
||||
as int,
|
||||
description: null == description
|
||||
? _value.description
|
||||
@@ -193,7 +193,7 @@ class _$ExerciseDataImpl implements _ExerciseData {
|
||||
{required this.id,
|
||||
required this.uuid,
|
||||
@JsonKey(name: 'language') required this.languageId,
|
||||
@JsonKey(required: true, name: 'exercise_base') required this.baseId,
|
||||
@JsonKey(required: true, name: 'exercise_base') required this.exerciseId,
|
||||
required this.description,
|
||||
required this.name,
|
||||
required final List<Alias> aliases,
|
||||
@@ -208,12 +208,14 @@ class _$ExerciseDataImpl implements _ExerciseData {
|
||||
final int id;
|
||||
@override
|
||||
final String uuid;
|
||||
// ignore: invalid_annotation_target
|
||||
@override
|
||||
@JsonKey(name: 'language')
|
||||
final int languageId;
|
||||
// ignore: invalid_annotation_target
|
||||
@override
|
||||
@JsonKey(required: true, name: 'exercise_base')
|
||||
final int baseId;
|
||||
final int exerciseId;
|
||||
@override
|
||||
final String description;
|
||||
@override
|
||||
@@ -236,7 +238,7 @@ class _$ExerciseDataImpl implements _ExerciseData {
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'ExerciseData(id: $id, uuid: $uuid, languageId: $languageId, baseId: $baseId, description: $description, name: $name, aliases: $aliases, notes: $notes)';
|
||||
return 'ExerciseData(id: $id, uuid: $uuid, languageId: $languageId, exerciseId: $exerciseId, description: $description, name: $name, aliases: $aliases, notes: $notes)';
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -247,7 +249,7 @@ class _$ExerciseDataImpl implements _ExerciseData {
|
||||
(identical(other.id, id) || other.id == id) &&
|
||||
(identical(other.uuid, uuid) || other.uuid == uuid) &&
|
||||
(identical(other.languageId, languageId) || other.languageId == languageId) &&
|
||||
(identical(other.baseId, baseId) || other.baseId == baseId) &&
|
||||
(identical(other.exerciseId, exerciseId) || other.exerciseId == exerciseId) &&
|
||||
(identical(other.description, description) || other.description == description) &&
|
||||
(identical(other.name, name) || other.name == name) &&
|
||||
const DeepCollectionEquality().equals(other._aliases, _aliases) &&
|
||||
@@ -256,7 +258,7 @@ class _$ExerciseDataImpl implements _ExerciseData {
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
int get hashCode => Object.hash(runtimeType, id, uuid, languageId, baseId, description, name,
|
||||
int get hashCode => Object.hash(runtimeType, id, uuid, languageId, exerciseId, description, name,
|
||||
const DeepCollectionEquality().hash(_aliases), const DeepCollectionEquality().hash(_notes));
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
@@ -278,7 +280,7 @@ abstract class _ExerciseData implements ExerciseData {
|
||||
{required final int id,
|
||||
required final String uuid,
|
||||
@JsonKey(name: 'language') required final int languageId,
|
||||
@JsonKey(required: true, name: 'exercise_base') required final int baseId,
|
||||
@JsonKey(required: true, name: 'exercise_base') required final int exerciseId,
|
||||
required final String description,
|
||||
required final String name,
|
||||
required final List<Alias> aliases,
|
||||
@@ -290,12 +292,12 @@ abstract class _ExerciseData implements ExerciseData {
|
||||
int get id;
|
||||
@override
|
||||
String get uuid;
|
||||
@override
|
||||
@override // ignore: invalid_annotation_target
|
||||
@JsonKey(name: 'language')
|
||||
int get languageId;
|
||||
@override
|
||||
@override // ignore: invalid_annotation_target
|
||||
@JsonKey(required: true, name: 'exercise_base')
|
||||
int get baseId;
|
||||
int get exerciseId;
|
||||
@override
|
||||
String get description;
|
||||
@override
|
||||
|
||||
@@ -15,7 +15,7 @@ _$ExerciseDataImpl _$$ExerciseDataImplFromJson(Map<String, dynamic> json) {
|
||||
id: json['id'] as int,
|
||||
uuid: json['uuid'] as String,
|
||||
languageId: json['language'] as int,
|
||||
baseId: json['exercise_base'] as int,
|
||||
exerciseId: json['exercise_base'] as int,
|
||||
description: json['description'] as String,
|
||||
name: json['name'] as String,
|
||||
aliases: (json['aliases'] as List<dynamic>)
|
||||
@@ -31,7 +31,7 @@ Map<String, dynamic> _$$ExerciseDataImplToJson(_$ExerciseDataImpl instance) => <
|
||||
'id': instance.id,
|
||||
'uuid': instance.uuid,
|
||||
'language': instance.languageId,
|
||||
'exercise_base': instance.baseId,
|
||||
'exercise_base': instance.exerciseId,
|
||||
'description': instance.description,
|
||||
'name': instance.name,
|
||||
'aliases': instance.aliases,
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:wger/models/exercises/alias.dart';
|
||||
import 'package:wger/models/exercises/base.dart';
|
||||
import 'package:wger/models/exercises/comment.dart';
|
||||
import 'package:wger/models/exercises/exercise.dart';
|
||||
import 'package:wger/models/exercises/language.dart';
|
||||
|
||||
part 'translation.g.dart';
|
||||
@@ -43,7 +43,7 @@ class Translation extends Equatable {
|
||||
final DateTime? created;
|
||||
|
||||
@JsonKey(required: true, name: 'exercise_base')
|
||||
late int? baseId;
|
||||
late int? exerciseId;
|
||||
|
||||
@JsonKey(required: true)
|
||||
final String name;
|
||||
@@ -63,11 +63,11 @@ class Translation extends Equatable {
|
||||
this.created,
|
||||
required this.name,
|
||||
required this.description,
|
||||
int? baseId,
|
||||
int? exerciseId,
|
||||
language,
|
||||
}) {
|
||||
if (baseId != null) {
|
||||
this.baseId = baseId;
|
||||
if (exerciseId != null) {
|
||||
this.exerciseId = exerciseId;
|
||||
}
|
||||
|
||||
if (language != null) {
|
||||
@@ -76,8 +76,8 @@ class Translation extends Equatable {
|
||||
}
|
||||
}
|
||||
|
||||
set base(ExerciseBase base) {
|
||||
baseId = base.id;
|
||||
set exercise(Exercise exercise) {
|
||||
exerciseId = exercise.id;
|
||||
}
|
||||
|
||||
set language(Language language) {
|
||||
@@ -93,7 +93,7 @@ class Translation extends Equatable {
|
||||
@override
|
||||
List<Object?> get props => [
|
||||
id,
|
||||
baseId,
|
||||
exerciseId,
|
||||
uuid,
|
||||
languageId,
|
||||
created,
|
||||
|
||||
@@ -25,7 +25,7 @@ Translation _$TranslationFromJson(Map<String, dynamic> json) {
|
||||
created: json['created'] == null ? null : DateTime.parse(json['created'] as String),
|
||||
name: json['name'] as String,
|
||||
description: json['description'] as String,
|
||||
baseId: json['exercise_base'] as int?,
|
||||
exerciseId: json['exercise_base'] as int?,
|
||||
)
|
||||
..languageId = json['language'] as int
|
||||
..languageObj = Language.fromJson(json['languageObj'] as Map<String, dynamic>)
|
||||
@@ -43,7 +43,7 @@ Map<String, dynamic> _$TranslationToJson(Translation instance) => <String, dynam
|
||||
'language': instance.languageId,
|
||||
'languageObj': instance.languageObj,
|
||||
'created': instance.created?.toIso8601String(),
|
||||
'exercise_base': instance.baseId,
|
||||
'exercise_base': instance.exerciseId,
|
||||
'name': instance.name,
|
||||
'description': instance.description,
|
||||
'notes': instance.notes,
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:wger/helpers/json.dart';
|
||||
import 'package:wger/helpers/misc.dart';
|
||||
import 'package:wger/models/exercises/base.dart';
|
||||
import 'package:wger/models/exercises/exercise.dart';
|
||||
import 'package:wger/models/workouts/repetition_unit.dart';
|
||||
import 'package:wger/models/workouts/weight_unit.dart';
|
||||
|
||||
@@ -34,7 +34,7 @@ class Log {
|
||||
late int exerciseBaseId;
|
||||
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
late ExerciseBase exerciseBaseObj;
|
||||
late Exercise exerciseBaseObj;
|
||||
|
||||
@JsonKey(required: true, name: 'workout')
|
||||
late int workoutPlan;
|
||||
@@ -85,7 +85,7 @@ class Log {
|
||||
|
||||
Map<String, dynamic> toJson() => _$LogToJson(this);
|
||||
|
||||
set exerciseBase(ExerciseBase base) {
|
||||
set exerciseBase(Exercise base) {
|
||||
exerciseBaseObj = base;
|
||||
exerciseBaseId = base.id!;
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
*/
|
||||
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:wger/models/exercises/base.dart';
|
||||
import 'package:wger/models/exercises/exercise.dart';
|
||||
import 'package:wger/models/workouts/setting.dart';
|
||||
|
||||
part 'set.g.dart';
|
||||
@@ -42,7 +42,7 @@ class Set {
|
||||
late String comment;
|
||||
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
List<ExerciseBase> exerciseBasesObj = [];
|
||||
List<Exercise> exerciseBasesObj = [];
|
||||
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
List<int> exerciseBasesIds = [];
|
||||
@@ -92,7 +92,7 @@ class Set {
|
||||
|
||||
for (final setting in settings) {
|
||||
final foundSettings = out.where(
|
||||
(element) => element.exerciseBaseId == setting.exerciseBaseId,
|
||||
(element) => element.exerciseId == setting.exerciseId,
|
||||
);
|
||||
|
||||
if (foundSettings.isEmpty) {
|
||||
@@ -102,23 +102,23 @@ class Set {
|
||||
return out;
|
||||
}
|
||||
|
||||
void addExerciseBase(ExerciseBase base) {
|
||||
void addExerciseBase(Exercise base) {
|
||||
exerciseBasesObj.add(base);
|
||||
exerciseBasesIds.add(base.id!);
|
||||
}
|
||||
|
||||
void removeExercise(ExerciseBase base) {
|
||||
void removeExercise(Exercise base) {
|
||||
exerciseBasesObj.removeWhere((e) => e.id == base.id);
|
||||
exerciseBasesIds.removeWhere((e) => e == base.id);
|
||||
}
|
||||
|
||||
/// Returns all settings for the given exercise
|
||||
List<Setting> filterSettingsByExercise(ExerciseBase exerciseBase) {
|
||||
return settings.where((element) => element.exerciseBaseId == exerciseBase.id).toList();
|
||||
List<Setting> filterSettingsByExercise(Exercise exerciseBase) {
|
||||
return settings.where((element) => element.exerciseId == exerciseBase.id).toList();
|
||||
}
|
||||
|
||||
/// Returns a list with all repetitions for the given exercise
|
||||
List<String> getSmartRepr(ExerciseBase exerciseBase) {
|
||||
List<String> getSmartRepr(Exercise exerciseBase) {
|
||||
final List<String> out = [];
|
||||
|
||||
final settingList = filterSettingsByExercise(exerciseBase);
|
||||
@@ -141,7 +141,7 @@ class Set {
|
||||
}
|
||||
|
||||
/// Returns a string with all repetitions for the given exercise
|
||||
String getSmartTextRepr(ExerciseBase execiseBase) {
|
||||
String getSmartTextRepr(Exercise execiseBase) {
|
||||
return getSmartRepr(execiseBase).join(' – ');
|
||||
}
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:wger/helpers/json.dart';
|
||||
import 'package:wger/helpers/misc.dart';
|
||||
import 'package:wger/models/exercises/base.dart';
|
||||
import 'package:wger/models/exercises/exercise.dart';
|
||||
import 'package:wger/models/workouts/repetition_unit.dart';
|
||||
import 'package:wger/models/workouts/weight_unit.dart';
|
||||
|
||||
@@ -42,10 +42,10 @@ class Setting {
|
||||
late int order;
|
||||
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
late ExerciseBase exerciseBaseObj;
|
||||
late Exercise exerciseObj;
|
||||
|
||||
@JsonKey(required: true, name: 'exercise_base')
|
||||
late int exerciseBaseId;
|
||||
late int exerciseId;
|
||||
|
||||
@JsonKey(required: true, name: 'repetition_unit')
|
||||
late int repetitionUnitId;
|
||||
@@ -77,7 +77,7 @@ class Setting {
|
||||
this.id,
|
||||
required this.setId,
|
||||
required this.order,
|
||||
required this.exerciseBaseId,
|
||||
required this.exerciseId,
|
||||
required this.repetitionUnitId,
|
||||
required this.reps,
|
||||
required this.weightUnitId,
|
||||
@@ -92,9 +92,9 @@ class Setting {
|
||||
|
||||
Map<String, dynamic> toJson() => _$SettingToJson(this);
|
||||
|
||||
set exerciseBase(ExerciseBase exerciseBase) {
|
||||
exerciseBaseObj = exerciseBase;
|
||||
exerciseBaseId = exerciseBase.id!;
|
||||
set exercise(Exercise exercise) {
|
||||
exerciseObj = exercise;
|
||||
exerciseId = exercise.id!;
|
||||
}
|
||||
|
||||
set weightUnit(WeightUnit weightUnit) {
|
||||
|
||||
@@ -26,7 +26,7 @@ Setting _$SettingFromJson(Map<String, dynamic> json) {
|
||||
id: json['id'] as int?,
|
||||
setId: json['set'] as int,
|
||||
order: json['order'] as int,
|
||||
exerciseBaseId: json['exercise_base'] as int,
|
||||
exerciseId: json['exercise_base'] as int,
|
||||
repetitionUnitId: json['repetition_unit'] as int,
|
||||
reps: json['reps'] as int?,
|
||||
weightUnitId: json['weight_unit'] as int,
|
||||
@@ -39,7 +39,7 @@ Map<String, dynamic> _$SettingToJson(Setting instance) => <String, dynamic>{
|
||||
'id': instance.id,
|
||||
'set': instance.setId,
|
||||
'order': instance.order,
|
||||
'exercise_base': instance.exerciseBaseId,
|
||||
'exercise_base': instance.exerciseId,
|
||||
'repetition_unit': instance.repetitionUnitId,
|
||||
'reps': instance.reps,
|
||||
'weight': numToString(instance.weight),
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
*/
|
||||
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:wger/models/exercises/base.dart';
|
||||
import 'package:wger/models/exercises/exercise.dart';
|
||||
import 'package:wger/models/workouts/day.dart';
|
||||
import 'package:wger/models/workouts/log.dart';
|
||||
|
||||
@@ -73,7 +73,7 @@ class WorkoutPlan {
|
||||
/// means here that the values are the same, i.e. logs with the same weight,
|
||||
/// reps, etc. are considered equal. Workout ID, Log ID and date are not
|
||||
/// considered.
|
||||
List<Log> filterLogsByExerciseBase(ExerciseBase exerciseBase, {bool unique = false}) {
|
||||
List<Log> filterLogsByExerciseBase(Exercise exerciseBase, {bool unique = false}) {
|
||||
var out = logs.where((element) => element.exerciseBaseId == exerciseBase.id).toList();
|
||||
|
||||
if (unique) {
|
||||
@@ -95,7 +95,7 @@ class WorkoutPlan {
|
||||
if (!out.containsKey(date)) {
|
||||
out[date] = {
|
||||
'session': null,
|
||||
'exercises': <ExerciseBase, List<Log>>{},
|
||||
'exercises': <Exercise, List<Log>>{},
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -5,9 +5,9 @@ import 'package:flutter/foundation.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:wger/helpers/consts.dart';
|
||||
import 'package:wger/models/exercises/alias.dart';
|
||||
import 'package:wger/models/exercises/base.dart';
|
||||
import 'package:wger/models/exercises/category.dart';
|
||||
import 'package:wger/models/exercises/equipment.dart';
|
||||
import 'package:wger/models/exercises/exercise.dart';
|
||||
import 'package:wger/models/exercises/language.dart';
|
||||
import 'package:wger/models/exercises/muscle.dart';
|
||||
import 'package:wger/models/exercises/translation.dart';
|
||||
@@ -32,7 +32,7 @@ class AddExerciseProvider with ChangeNotifier {
|
||||
List<String> _alternativeNamesEn = [];
|
||||
List<String> _alternativeNamesTranslation = [];
|
||||
ExerciseCategory? category;
|
||||
List<ExerciseBase> _variations = [];
|
||||
List<Exercise> _variations = [];
|
||||
List<Equipment> _equipment = [];
|
||||
List<Muscle> _primaryMuscles = [];
|
||||
List<Muscle> _secondaryMuscles = [];
|
||||
@@ -93,8 +93,8 @@ class AddExerciseProvider with ChangeNotifier {
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
ExerciseBase get base {
|
||||
return ExerciseBase(
|
||||
Exercise get exercise {
|
||||
return Exercise(
|
||||
category: category,
|
||||
equipment: _equipment,
|
||||
muscles: _primaryMuscles,
|
||||
@@ -103,7 +103,7 @@ class AddExerciseProvider with ChangeNotifier {
|
||||
);
|
||||
}
|
||||
|
||||
Translation get exerciseEn {
|
||||
Translation get translationEn {
|
||||
return Translation(
|
||||
name: _nameEn!,
|
||||
description: _descriptionEn!,
|
||||
@@ -111,7 +111,7 @@ class AddExerciseProvider with ChangeNotifier {
|
||||
);
|
||||
}
|
||||
|
||||
Translation get exerciseTranslation {
|
||||
Translation get translation {
|
||||
return Translation(
|
||||
name: _nameTranslation!,
|
||||
description: _descriptionTranslation!,
|
||||
@@ -176,12 +176,12 @@ class AddExerciseProvider with ChangeNotifier {
|
||||
await addVariation();
|
||||
}
|
||||
|
||||
// Create the base
|
||||
final base = await addExerciseBase();
|
||||
// Create the exercise
|
||||
final exercise = await addExerciseBase();
|
||||
|
||||
// Create the base description in English
|
||||
Translation exerciseTranslationEn = exerciseEn;
|
||||
exerciseTranslationEn.base = base;
|
||||
Translation exerciseTranslationEn = translationEn;
|
||||
exerciseTranslationEn.exercise = exercise;
|
||||
exerciseTranslationEn = await addExerciseTranslation(exerciseTranslationEn);
|
||||
for (final alias in _alternativeNamesEn) {
|
||||
if (alias.isNotEmpty) {
|
||||
@@ -191,8 +191,8 @@ class AddExerciseProvider with ChangeNotifier {
|
||||
|
||||
// Create the translations
|
||||
if (language != null) {
|
||||
Translation exerciseTranslationLang = exerciseTranslation;
|
||||
exerciseTranslationLang.base = base;
|
||||
Translation exerciseTranslationLang = translation;
|
||||
exerciseTranslationLang.exercise = exercise;
|
||||
exerciseTranslationLang = await addExerciseTranslation(exerciseTranslationLang);
|
||||
for (final alias in _alternativeNamesTranslation) {
|
||||
if (alias.isNotEmpty) {
|
||||
@@ -205,20 +205,20 @@ class AddExerciseProvider with ChangeNotifier {
|
||||
}
|
||||
|
||||
// Create the images
|
||||
await addImages(base);
|
||||
await addImages(exercise);
|
||||
|
||||
// Clear everything
|
||||
clear();
|
||||
|
||||
// Return exercise ID
|
||||
return base.id!;
|
||||
return exercise.id!;
|
||||
}
|
||||
|
||||
Future<ExerciseBase> addExerciseBase() async {
|
||||
Future<Exercise> addExerciseBase() async {
|
||||
final Uri postUri = baseProvider.makeUrl(_exerciseBaseUrlPath);
|
||||
|
||||
final Map<String, dynamic> newBaseMap = await baseProvider.post(base.toJson(), postUri);
|
||||
final ExerciseBase newExerciseBase = ExerciseBase.fromJson(newBaseMap);
|
||||
final Map<String, dynamic> newBaseMap = await baseProvider.post(exercise.toJson(), postUri);
|
||||
final Exercise newExerciseBase = Exercise.fromJson(newBaseMap);
|
||||
notifyListeners();
|
||||
|
||||
return newExerciseBase;
|
||||
@@ -235,7 +235,7 @@ class AddExerciseProvider with ChangeNotifier {
|
||||
return newVariation;
|
||||
}
|
||||
|
||||
Future<void> addImages(ExerciseBase base) async {
|
||||
Future<void> addImages(Exercise base) async {
|
||||
for (final image in _exerciseImages) {
|
||||
final request = http.MultipartRequest('POST', baseProvider.makeUrl(_imagesUrlPath));
|
||||
request.headers.addAll(baseProvider.getDefaultHeaders(includeAuth: true));
|
||||
|
||||
@@ -28,9 +28,9 @@ import 'package:wger/database/exercises/exercise_database.dart';
|
||||
import 'package:wger/exceptions/no_such_entry_exception.dart';
|
||||
import 'package:wger/helpers/consts.dart';
|
||||
import 'package:wger/models/exercises/alias.dart';
|
||||
import 'package:wger/models/exercises/base.dart';
|
||||
import 'package:wger/models/exercises/category.dart';
|
||||
import 'package:wger/models/exercises/equipment.dart';
|
||||
import 'package:wger/models/exercises/exercise.dart';
|
||||
import 'package:wger/models/exercises/exercise_base_data.dart';
|
||||
import 'package:wger/models/exercises/language.dart';
|
||||
import 'package:wger/models/exercises/muscle.dart';
|
||||
@@ -46,7 +46,7 @@ class ExercisesProvider with ChangeNotifier {
|
||||
static const EXERCISE_CACHE_DAYS = 7;
|
||||
static const CACHE_VERSION = 4;
|
||||
|
||||
static const exerciseBaseInfoUrlPath = 'exercisebaseinfo';
|
||||
static const exerciseInfoUrlPath = 'exercisebaseinfo';
|
||||
static const exerciseSearchPath = 'exercise/search';
|
||||
|
||||
static const exerciseVariationsUrlPath = 'variation';
|
||||
@@ -55,10 +55,10 @@ class ExercisesProvider with ChangeNotifier {
|
||||
static const equipmentUrlPath = 'equipment';
|
||||
static const languageUrlPath = 'language';
|
||||
|
||||
List<ExerciseBase> _exerciseBases = [];
|
||||
List<Exercise> _exercises = [];
|
||||
|
||||
set exerciseBases(List<ExerciseBase> exercisesBases) {
|
||||
_exerciseBases = exercisesBases;
|
||||
set exerciseBases(List<Exercise> exercisesBases) {
|
||||
_exercises = exercisesBases;
|
||||
}
|
||||
|
||||
List<ExerciseCategory> _categories = [];
|
||||
@@ -76,30 +76,30 @@ class ExercisesProvider with ChangeNotifier {
|
||||
await findByFilters();
|
||||
}
|
||||
|
||||
List<ExerciseBase> _filteredExerciseBases = [];
|
||||
List<Exercise> _filteredExercises = [];
|
||||
|
||||
List<ExerciseBase> get filteredExerciseBases => _filteredExerciseBases;
|
||||
List<Exercise> get filteredExercises => _filteredExercises;
|
||||
|
||||
set filteredExerciseBases(List<ExerciseBase> newFilteredExercises) {
|
||||
_filteredExerciseBases = newFilteredExercises;
|
||||
set filteredExercises(List<Exercise> newFilteredExercises) {
|
||||
_filteredExercises = newFilteredExercises;
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
Map<int, List<ExerciseBase>> get exerciseBasesByVariation {
|
||||
final Map<int, List<ExerciseBase>> variations = {};
|
||||
Map<int, List<Exercise>> get exerciseBasesByVariation {
|
||||
final Map<int, List<Exercise>> variations = {};
|
||||
|
||||
for (final base in _exerciseBases.where((e) => e.variationId != null)) {
|
||||
if (!variations.containsKey(base.variationId)) {
|
||||
variations[base.variationId!] = [];
|
||||
for (final exercise in _exercises.where((e) => e.variationId != null)) {
|
||||
if (!variations.containsKey(exercise.variationId)) {
|
||||
variations[exercise.variationId!] = [];
|
||||
}
|
||||
|
||||
variations[base.variationId]!.add(base);
|
||||
variations[exercise.variationId]!.add(exercise);
|
||||
}
|
||||
|
||||
return variations;
|
||||
}
|
||||
|
||||
List<ExerciseBase> get bases => [..._exerciseBases];
|
||||
List<Exercise> get bases => [..._exercises];
|
||||
|
||||
List<ExerciseCategory> get categories => [..._categories];
|
||||
|
||||
@@ -144,25 +144,25 @@ class ExercisesProvider with ChangeNotifier {
|
||||
Future<void> findByFilters() async {
|
||||
// Filters not initialized
|
||||
if (filters == null) {
|
||||
filteredExerciseBases = [];
|
||||
filteredExercises = [];
|
||||
return;
|
||||
}
|
||||
|
||||
// Filters are initialized and nothing is marked
|
||||
if (filters!.isNothingMarked && filters!.searchTerm.length <= 1) {
|
||||
filteredExerciseBases = _exerciseBases;
|
||||
filteredExercises = _exercises;
|
||||
return;
|
||||
}
|
||||
|
||||
filteredExerciseBases = [];
|
||||
filteredExercises = [];
|
||||
|
||||
List<ExerciseBase> filteredItems = _exerciseBases;
|
||||
List<Exercise> filteredItems = _exercises;
|
||||
if (filters!.searchTerm.length > 1) {
|
||||
filteredItems = await searchExercise(filters!.searchTerm);
|
||||
}
|
||||
|
||||
// Filter by exercise category and equipment (REPLACE WITH HTTP REQUEST)
|
||||
filteredExerciseBases = filteredItems.where((exercise) {
|
||||
filteredExercises = filteredItems.where((exercise) {
|
||||
final bool isInAnyCategory = filters!.exerciseCategories.selected.contains(exercise.category);
|
||||
|
||||
final bool doesContainAnyEquipment = filters!.equipment.selected.any(
|
||||
@@ -180,12 +180,12 @@ class ExercisesProvider with ChangeNotifier {
|
||||
_muscles = [];
|
||||
_categories = [];
|
||||
_languages = [];
|
||||
_exerciseBases = [];
|
||||
_exercises = [];
|
||||
}
|
||||
|
||||
/// Find exercise base by ID
|
||||
ExerciseBase findExerciseById(int id) {
|
||||
return _exerciseBases.firstWhere(
|
||||
Exercise findExerciseById(int id) {
|
||||
return _exercises.firstWhere(
|
||||
(base) => base.id == id,
|
||||
orElse: () => throw NoSuchEntryException(),
|
||||
);
|
||||
@@ -197,8 +197,8 @@ class ExercisesProvider with ChangeNotifier {
|
||||
/// returned exercises. Since this is typically called by one exercise, we are
|
||||
/// not interested in seeing that same exercise returned in the list of variations.
|
||||
/// If this parameter is not passed, all exercises are returned.
|
||||
List<ExerciseBase> findExerciseBasesByVariationId(int id, {int? exerciseBaseIdToExclude}) {
|
||||
var out = _exerciseBases.where((base) => base.variationId == id).toList();
|
||||
List<Exercise> findExerciseBasesByVariationId(int id, {int? exerciseBaseIdToExclude}) {
|
||||
var out = _exercises.where((base) => base.variationId == id).toList();
|
||||
|
||||
if (exerciseBaseIdToExclude != null) {
|
||||
out = out.where((e) => e.id != exerciseBaseIdToExclude).toList();
|
||||
@@ -287,15 +287,15 @@ class ExercisesProvider with ChangeNotifier {
|
||||
/// If the exercise is not known locally, it is fetched from the server.
|
||||
/// This method is called when a workout is first loaded, after that the
|
||||
/// regular not-async getById method can be used
|
||||
Future<ExerciseBase> fetchAndSetExerciseBase(int exerciseBaseId) async {
|
||||
Future<Exercise> fetchAndSetExercise(int exerciseId) async {
|
||||
try {
|
||||
return findExerciseById(exerciseBaseId);
|
||||
return findExerciseById(exerciseId);
|
||||
} on NoSuchEntryException {
|
||||
final baseData = await baseProvider.fetch(
|
||||
baseProvider.makeUrl(exerciseBaseInfoUrlPath, id: exerciseBaseId),
|
||||
baseProvider.makeUrl(exerciseInfoUrlPath, id: exerciseId),
|
||||
);
|
||||
|
||||
final exercise = readExerciseBaseFromBaseInfo(ExerciseBaseData.fromJson(baseData));
|
||||
final exercise = readExerciseFromBaseInfo(ExerciseBaseData.fromJson(baseData));
|
||||
final database = locator<ExerciseDatabase>();
|
||||
|
||||
final exerciseDb = await (database.select(database.exercises)
|
||||
@@ -318,21 +318,21 @@ class ExercisesProvider with ChangeNotifier {
|
||||
if (exerciseDb != null && lastUpdateApi.isAfter(exerciseDb.lastUpdate)) {
|
||||
(database.update(database.exercises)..where((e) => e.id.equals(baseData['id']))).write(
|
||||
ExercisesCompanion(
|
||||
id: baseData['id'],
|
||||
id: Value(baseData['id']),
|
||||
data: Value(jsonEncode(baseData)),
|
||||
lastUpdate: Value(DateTime.parse(baseData['last_update_global'])),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
_exerciseBases.add(exercise);
|
||||
_exercises.add(exercise);
|
||||
return exercise;
|
||||
}
|
||||
}
|
||||
|
||||
/// Parses the response from the "exercisebaseinfo" endpoint and returns
|
||||
/// a full exercise base
|
||||
ExerciseBase readExerciseBaseFromBaseInfo(ExerciseBaseData baseData) {
|
||||
Exercise readExerciseFromBaseInfo(ExerciseBaseData baseData) {
|
||||
final List<Translation> translations = [];
|
||||
for (final translationData in baseData.exercises) {
|
||||
final translation = Translation(
|
||||
@@ -340,7 +340,7 @@ class ExercisesProvider with ChangeNotifier {
|
||||
uuid: translationData.uuid,
|
||||
name: translationData.name,
|
||||
description: translationData.description,
|
||||
baseId: baseData.id,
|
||||
exerciseId: baseData.id,
|
||||
);
|
||||
translation.aliases = translationData.aliases
|
||||
.map((e) => Alias(exerciseId: translation.id ?? 0, alias: e.alias))
|
||||
@@ -350,7 +350,7 @@ class ExercisesProvider with ChangeNotifier {
|
||||
translations.add(translation);
|
||||
}
|
||||
|
||||
final exerciseBase = ExerciseBase(
|
||||
return Exercise(
|
||||
id: baseData.id,
|
||||
uuid: baseData.uuid,
|
||||
created: baseData.created,
|
||||
@@ -361,11 +361,9 @@ class ExercisesProvider with ChangeNotifier {
|
||||
equipment: baseData.equipment,
|
||||
category: baseData.category,
|
||||
images: baseData.images,
|
||||
exercises: translations,
|
||||
translations: translations,
|
||||
videos: baseData.videos,
|
||||
);
|
||||
|
||||
return exerciseBase;
|
||||
}
|
||||
|
||||
/// Checks the required cache version
|
||||
@@ -467,8 +465,9 @@ class ExercisesProvider with ChangeNotifier {
|
||||
final exercises = await database.select(database.exercises).get();
|
||||
log('Loaded ${exercises.length} exercises from cache');
|
||||
|
||||
_exerciseBases = exercises
|
||||
.map((e) => readExerciseBaseFromBaseInfo(ExerciseBaseData.fromJson(json.decode(e.data))))
|
||||
_exercises = exercises
|
||||
.map((e) => readExerciseFromBaseInfo(ExerciseBaseData.fromJson(json.decode(e.data))))
|
||||
//.map((e) => e.data)
|
||||
.toList();
|
||||
|
||||
// updateExerciseCache(database);
|
||||
@@ -476,14 +475,14 @@ class ExercisesProvider with ChangeNotifier {
|
||||
|
||||
Future<void> updateExerciseCache(ExerciseDatabase database) async {
|
||||
final data = await Future.wait<dynamic>([
|
||||
baseProvider.fetch(baseProvider.makeUrl(exerciseBaseInfoUrlPath, query: {'limit': '1000'})),
|
||||
baseProvider.fetch(baseProvider.makeUrl(exerciseInfoUrlPath, query: {'limit': '1000'})),
|
||||
// TODO: variations!
|
||||
//fetchAndSetVariationsFromApi(),
|
||||
]);
|
||||
|
||||
final List<dynamic> exercisesData = data[0]['results'];
|
||||
final exerciseBaseData = exercisesData.map((e) => ExerciseBaseData.fromJson(e)).toList();
|
||||
_exerciseBases = exerciseBaseData.map((e) => readExerciseBaseFromBaseInfo(e)).toList();
|
||||
_exercises = exerciseBaseData.map((e) => readExerciseFromBaseInfo(e)).toList();
|
||||
|
||||
// Insert new entries and update ones that have been edited
|
||||
Future.forEach(exercisesData, (exerciseData) async {
|
||||
@@ -550,7 +549,7 @@ class ExercisesProvider with ChangeNotifier {
|
||||
});
|
||||
validTill = DateTime.now().add(const Duration(days: EXERCISE_CACHE_DAYS));
|
||||
await prefs.setString(PREFS_LAST_UPDATED_MUSCLES, validTill.toIso8601String());
|
||||
log('Wrote ${_muscles.length} muscles from cache. Valid till ${validTill}');
|
||||
log('Wrote ${_muscles.length} muscles from cache. Valid till $validTill');
|
||||
}
|
||||
|
||||
/// Fetches and sets the available categories
|
||||
@@ -655,7 +654,7 @@ class ExercisesProvider with ChangeNotifier {
|
||||
///
|
||||
/// We could do this locally, but the server has better text searching capabilities
|
||||
/// with postgresql.
|
||||
Future<List<ExerciseBase>> searchExercise(String name,
|
||||
Future<List<Exercise>> searchExercise(String name,
|
||||
{String languageCode = LANGUAGE_SHORT_ENGLISH, bool searchEnglish = false}) async {
|
||||
if (name.length <= 1) {
|
||||
return [];
|
||||
@@ -676,8 +675,8 @@ class ExercisesProvider with ChangeNotifier {
|
||||
|
||||
// Process the response
|
||||
return Future.wait(
|
||||
(result['suggestions'] as List).map<Future<ExerciseBase>>(
|
||||
(entry) => fetchAndSetExerciseBase(entry['data']['base_id']),
|
||||
(result['suggestions'] as List).map<Future<Exercise>>(
|
||||
(entry) => fetchAndSetExercise(entry['data']['base_id']),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:wger/exceptions/http_exception.dart';
|
||||
import 'package:wger/helpers/consts.dart';
|
||||
import 'package:wger/models/exercises/base.dart';
|
||||
import 'package:wger/models/exercises/exercise.dart';
|
||||
import 'package:wger/models/exercises/translation.dart';
|
||||
import 'package:wger/models/workouts/day.dart';
|
||||
import 'package:wger/models/workouts/log.dart';
|
||||
@@ -213,16 +213,15 @@ class WorkoutPlansProvider with ChangeNotifier {
|
||||
for (final settingEntry in settingData) {
|
||||
final workoutSetting = Setting.fromJson(settingEntry);
|
||||
|
||||
workoutSetting.exerciseBase =
|
||||
await _exercises.fetchAndSetExerciseBase(workoutSetting.exerciseBaseId);
|
||||
workoutSetting.exercise = await _exercises.fetchAndSetExercise(workoutSetting.exerciseId);
|
||||
workoutSetting.weightUnit = _weightUnits.firstWhere(
|
||||
(e) => e.id == workoutSetting.weightUnitId,
|
||||
);
|
||||
workoutSetting.repetitionUnit = _repetitionUnit.firstWhere(
|
||||
(e) => e.id == workoutSetting.repetitionUnitId,
|
||||
);
|
||||
if (!workoutSet.exerciseBasesIds.contains(workoutSetting.exerciseBaseId)) {
|
||||
workoutSet.addExerciseBase(workoutSetting.exerciseBaseObj);
|
||||
if (!workoutSet.exerciseBasesIds.contains(workoutSetting.exerciseId)) {
|
||||
workoutSet.addExerciseBase(workoutSetting.exerciseObj);
|
||||
}
|
||||
|
||||
settings.add(workoutSetting);
|
||||
@@ -247,7 +246,7 @@ class WorkoutPlansProvider with ChangeNotifier {
|
||||
final log = Log.fromJson(logEntry);
|
||||
log.weightUnit = _weightUnits.firstWhere((e) => e.id == log.weightUnitId);
|
||||
log.repetitionUnit = _repetitionUnit.firstWhere((e) => e.id == log.weightUnitId);
|
||||
log.exerciseBase = await _exercises.fetchAndSetExerciseBase(log.exerciseBaseId);
|
||||
log.exerciseBase = await _exercises.fetchAndSetExercise(log.exerciseBaseId);
|
||||
plan.logs.add(log);
|
||||
} catch (e) {
|
||||
dev.log('fire! fire!');
|
||||
@@ -290,7 +289,7 @@ class WorkoutPlansProvider with ChangeNotifier {
|
||||
}
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> fetchLogData(WorkoutPlan workout, ExerciseBase base) async {
|
||||
Future<Map<String, dynamic>> fetchLogData(WorkoutPlan workout, Exercise base) async {
|
||||
final data = await baseProvider.fetch(
|
||||
baseProvider.makeUrl(
|
||||
_workoutPlansUrlPath,
|
||||
@@ -503,7 +502,7 @@ class WorkoutPlansProvider with ChangeNotifier {
|
||||
log.id = newLog.id;
|
||||
log.weightUnit = _weightUnits.firstWhere((e) => e.id == log.weightUnitId);
|
||||
log.repetitionUnit = _repetitionUnit.firstWhere((e) => e.id == log.weightUnitId);
|
||||
log.exerciseBase = await _exercises.fetchAndSetExerciseBase(log.exerciseBaseId);
|
||||
log.exerciseBase = await _exercises.fetchAndSetExercise(log.exerciseBaseId);
|
||||
|
||||
final plan = findById(log.workoutPlan);
|
||||
plan.logs.add(log);
|
||||
|
||||
@@ -74,7 +74,7 @@ class _AddExerciseStepperState extends State<AddExerciseStepper> {
|
||||
final exerciseProvider = context.read<ExercisesProvider>();
|
||||
|
||||
final baseId = await addExerciseProvider.addExercise();
|
||||
final base = await exerciseProvider.fetchAndSetExerciseBase(baseId);
|
||||
final base = await exerciseProvider.fetchAndSetExercise(baseId);
|
||||
final name =
|
||||
base.getExercise(Localizations.localeOf(context).languageCode).name;
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
*/
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:wger/models/exercises/base.dart';
|
||||
import 'package:wger/models/exercises/exercise.dart';
|
||||
import 'package:wger/widgets/exercises/exercises.dart';
|
||||
|
||||
class ExerciseDetailScreen extends StatelessWidget {
|
||||
@@ -27,7 +27,7 @@ class ExerciseDetailScreen extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final exerciseBase = ModalRoute.of(context)!.settings.arguments as ExerciseBase;
|
||||
final exerciseBase = ModalRoute.of(context)!.settings.arguments as Exercise;
|
||||
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:wger/models/exercises/base.dart';
|
||||
import 'package:wger/models/exercises/exercise.dart';
|
||||
import 'package:wger/providers/exercises.dart';
|
||||
import 'package:wger/widgets/core/app_bar.dart';
|
||||
import 'package:wger/widgets/exercises/filter_row.dart';
|
||||
@@ -21,7 +21,7 @@ class _ExercisesScreenState extends State<ExercisesScreen> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
//final size = MediaQuery.of(context).size;
|
||||
final exercisesList = Provider.of<ExercisesProvider>(context).filteredExerciseBases;
|
||||
final exercisesList = Provider.of<ExercisesProvider>(context).filteredExercises;
|
||||
|
||||
return Scaffold(
|
||||
appBar: EmptyAppBar(AppLocalizations.of(context).exercises),
|
||||
@@ -57,7 +57,7 @@ class _ExercisesList extends StatelessWidget {
|
||||
required this.exerciseBaseList,
|
||||
}) : super(key: key);
|
||||
|
||||
final List<ExerciseBase> exerciseBaseList;
|
||||
final List<Exercise> exerciseBaseList;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
||||
@@ -498,11 +498,11 @@ class _DashboardWorkoutWidgetState extends State<DashboardWorkoutWidget> {
|
||||
Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(s.exerciseBaseObj
|
||||
Text(s.exerciseObj
|
||||
.getExercise(Localizations.localeOf(context).languageCode)
|
||||
.name),
|
||||
const SizedBox(width: 10),
|
||||
MutedText(set.getSmartRepr(s.exerciseBaseObj).join('\n')),
|
||||
MutedText(set.getSmartRepr(s.exerciseObj).join('\n')),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 10),
|
||||
|
||||
@@ -24,7 +24,7 @@ import 'package:provider/provider.dart';
|
||||
import 'package:wger/helpers/consts.dart';
|
||||
import 'package:wger/helpers/i18n.dart';
|
||||
import 'package:wger/helpers/platform.dart';
|
||||
import 'package:wger/models/exercises/base.dart';
|
||||
import 'package:wger/models/exercises/exercise.dart';
|
||||
import 'package:wger/models/exercises/muscle.dart';
|
||||
import 'package:wger/models/exercises/translation.dart';
|
||||
import 'package:wger/providers/exercises.dart';
|
||||
@@ -34,7 +34,7 @@ import 'package:wger/widgets/exercises/list_tile.dart';
|
||||
import 'package:wger/widgets/exercises/videos.dart';
|
||||
|
||||
class ExerciseDetail extends StatelessWidget {
|
||||
final ExerciseBase _exerciseBase;
|
||||
final Exercise _exerciseBase;
|
||||
late Translation _exercise;
|
||||
static const PADDING = 9.0;
|
||||
|
||||
|
||||
@@ -18,14 +18,14 @@
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:wger/helpers/i18n.dart';
|
||||
import 'package:wger/models/exercises/base.dart';
|
||||
import 'package:wger/models/exercises/exercise.dart';
|
||||
import 'package:wger/screens/exercise_screen.dart';
|
||||
import 'package:wger/widgets/exercises/images.dart';
|
||||
|
||||
class ExerciseListTile extends StatelessWidget {
|
||||
const ExerciseListTile({Key? key, required this.exerciseBase}) : super(key: key);
|
||||
|
||||
final ExerciseBase exerciseBase;
|
||||
final Exercise exerciseBase;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
||||
@@ -50,17 +50,17 @@ class SettingWidget extends StatelessWidget {
|
||||
leading: InkWell(
|
||||
child: SizedBox(
|
||||
width: 45,
|
||||
child: ExerciseImageWidget(image: setting.exerciseBaseObj.getMainImage),
|
||||
child: ExerciseImageWidget(image: setting.exerciseObj.getMainImage),
|
||||
),
|
||||
onTap: () {
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (BuildContext context) {
|
||||
return AlertDialog(
|
||||
title: Text(setting.exerciseBaseObj
|
||||
title: Text(setting.exerciseObj
|
||||
.getExercise(Localizations.localeOf(context).languageCode)
|
||||
.name),
|
||||
content: ExerciseDetail(setting.exerciseBaseObj),
|
||||
content: ExerciseDetail(setting.exerciseObj),
|
||||
actions: [
|
||||
TextButton(
|
||||
child: Text(MaterialLocalizations.of(context).closeButtonLabel),
|
||||
@@ -75,12 +75,12 @@ class SettingWidget extends StatelessWidget {
|
||||
},
|
||||
),
|
||||
title: Text(
|
||||
setting.exerciseBaseObj.getExercise(Localizations.localeOf(context).languageCode).name,
|
||||
setting.exerciseObj.getExercise(Localizations.localeOf(context).languageCode).name,
|
||||
),
|
||||
subtitle: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
...set.getSmartRepr(setting.exerciseBaseObj).map((e) => Text(e)).toList(),
|
||||
...set.getSmartRepr(setting.exerciseObj).map((e) => Text(e)).toList(),
|
||||
],
|
||||
),
|
||||
);
|
||||
|
||||
@@ -21,7 +21,7 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
import 'package:flutter_typeahead/flutter_typeahead.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:wger/helpers/consts.dart';
|
||||
import 'package:wger/models/exercises/base.dart';
|
||||
import 'package:wger/models/exercises/exercise.dart';
|
||||
import 'package:wger/models/workouts/day.dart';
|
||||
import 'package:wger/models/workouts/repetition_unit.dart';
|
||||
import 'package:wger/models/workouts/set.dart';
|
||||
@@ -280,14 +280,14 @@ class _SetFormWidgetState extends State<SetFormWidget> {
|
||||
final _exercisesController = TextEditingController();
|
||||
|
||||
/// Removes an exercise from the current set
|
||||
void removeExerciseBase(ExerciseBase base) {
|
||||
void removeExerciseBase(Exercise base) {
|
||||
setState(() {
|
||||
widget._set.removeExercise(base);
|
||||
});
|
||||
}
|
||||
|
||||
/// Adds an exercise to the current set
|
||||
void addExercise(ExerciseBase base) {
|
||||
void addExercise(Exercise base) {
|
||||
setState(() {
|
||||
widget._set.addExerciseBase(base);
|
||||
addSettings();
|
||||
@@ -305,7 +305,7 @@ class _SetFormWidgetState extends State<SetFormWidget> {
|
||||
for (int loop = 0; loop < widget._set.sets; loop++) {
|
||||
final Setting setting = Setting.empty();
|
||||
setting.order = order;
|
||||
setting.exerciseBase = exercise;
|
||||
setting.exercise = exercise;
|
||||
setting.weightUnit = workoutProvider.defaultWeightUnit;
|
||||
setting.repetitionUnit = workoutProvider.defaultRepetitionUnit;
|
||||
|
||||
@@ -362,7 +362,7 @@ class _SetFormWidgetState extends State<SetFormWidget> {
|
||||
Card(
|
||||
child: Column(
|
||||
children: [
|
||||
TypeAheadFormField<ExerciseBase>(
|
||||
TypeAheadFormField<Exercise>(
|
||||
key: const Key('field-typeahead'),
|
||||
textFieldConfiguration: TextFieldConfiguration(
|
||||
controller: _exercisesController,
|
||||
@@ -407,7 +407,7 @@ class _SetFormWidgetState extends State<SetFormWidget> {
|
||||
searchEnglish: _searchEnglish,
|
||||
);
|
||||
},
|
||||
itemBuilder: (BuildContext context, ExerciseBase exerciseSuggestion) {
|
||||
itemBuilder: (BuildContext context, Exercise exerciseSuggestion) {
|
||||
return ListTile(
|
||||
leading: SizedBox(
|
||||
width: 45,
|
||||
@@ -426,7 +426,7 @@ class _SetFormWidgetState extends State<SetFormWidget> {
|
||||
transitionBuilder: (context, suggestionsBox, controller) {
|
||||
return suggestionsBox;
|
||||
},
|
||||
onSuggestionSelected: (ExerciseBase exerciseSuggestion) {
|
||||
onSuggestionSelected: (Exercise exerciseSuggestion) {
|
||||
addExercise(exerciseSuggestion);
|
||||
this._exercisesController.text = '';
|
||||
},
|
||||
@@ -484,9 +484,8 @@ class _SetFormWidgetState extends State<SetFormWidget> {
|
||||
final index = entry.key;
|
||||
final exercise = entry.value;
|
||||
final showSupersetInfo = (index + 1) < widget._set.exerciseBasesObj.length;
|
||||
final settings = widget._set.settings
|
||||
.where((e) => e.exerciseBaseObj.id == exercise.id)
|
||||
.toList();
|
||||
final settings =
|
||||
widget._set.settings.where((e) => e.exerciseObj.id == exercise.id).toList();
|
||||
|
||||
return Column(
|
||||
children: [
|
||||
@@ -560,7 +559,7 @@ class _SetFormWidgetState extends State<SetFormWidget> {
|
||||
}
|
||||
|
||||
class ExerciseSetting extends StatelessWidget {
|
||||
final ExerciseBase _exerciseBase;
|
||||
final Exercise _exerciseBase;
|
||||
late final int _numberOfSets;
|
||||
final bool _detailed;
|
||||
final Function removeExercise;
|
||||
|
||||
@@ -29,7 +29,7 @@ import 'package:wger/helpers/i18n.dart';
|
||||
import 'package:wger/helpers/json.dart';
|
||||
import 'package:wger/helpers/misc.dart';
|
||||
import 'package:wger/helpers/ui.dart';
|
||||
import 'package:wger/models/exercises/base.dart';
|
||||
import 'package:wger/models/exercises/exercise.dart';
|
||||
import 'package:wger/models/workouts/day.dart';
|
||||
import 'package:wger/models/workouts/log.dart';
|
||||
import 'package:wger/models/workouts/session.dart';
|
||||
@@ -86,7 +86,7 @@ class _GymModeState extends State<GymMode> {
|
||||
var firstPage = true;
|
||||
for (final setting in set.settingsComputed) {
|
||||
final exerciseBase = Provider.of<ExercisesProvider>(context, listen: false)
|
||||
.findExerciseById(setting.exerciseBaseId);
|
||||
.findExerciseById(setting.exerciseId);
|
||||
|
||||
if (firstPage) {
|
||||
_exercisePages[exerciseBase.uuid!] = currentPage;
|
||||
@@ -114,7 +114,7 @@ class _GymModeState extends State<GymMode> {
|
||||
var firstPage = true;
|
||||
for (final setting in set.settingsComputed) {
|
||||
final ratioCompleted = currentElement / _totalElements;
|
||||
final exerciseBase = exerciseProvider.findExerciseById(setting.exerciseBaseId);
|
||||
final exerciseBase = exerciseProvider.findExerciseById(setting.exerciseId);
|
||||
currentElement++;
|
||||
|
||||
if (firstPage) {
|
||||
@@ -194,12 +194,12 @@ class StartPage extends StatelessWidget {
|
||||
return Column(
|
||||
children: [
|
||||
Text(
|
||||
s.exerciseBaseObj
|
||||
s.exerciseObj
|
||||
.getExercise(Localizations.localeOf(context).languageCode)
|
||||
.name,
|
||||
style: Theme.of(context).textTheme.titleLarge,
|
||||
),
|
||||
...set.getSmartRepr(s.exerciseBaseObj).map((e) => Text(e)),
|
||||
...set.getSmartRepr(s.exerciseObj).map((e) => Text(e)),
|
||||
const SizedBox(height: 15),
|
||||
],
|
||||
);
|
||||
@@ -232,7 +232,7 @@ class LogPage extends StatefulWidget {
|
||||
final PageController _controller;
|
||||
final Setting _setting;
|
||||
final Set _set;
|
||||
final ExerciseBase _exerciseBase;
|
||||
final Exercise _exerciseBase;
|
||||
final WorkoutPlan _workoutPlan;
|
||||
final double _ratioCompleted;
|
||||
final Map<String, int> _exercisePages;
|
||||
@@ -662,7 +662,7 @@ class _LogPageState extends State<LogPage> {
|
||||
|
||||
class ExerciseOverview extends StatelessWidget {
|
||||
final PageController _controller;
|
||||
final ExerciseBase _exerciseBase;
|
||||
final Exercise _exerciseBase;
|
||||
final double _ratioCompleted;
|
||||
final Map<String, int> _exercisePages;
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:wger/helpers/colors.dart';
|
||||
import 'package:wger/helpers/ui.dart';
|
||||
import 'package:wger/models/exercises/base.dart';
|
||||
import 'package:wger/models/exercises/exercise.dart';
|
||||
import 'package:wger/models/workouts/log.dart';
|
||||
import 'package:wger/models/workouts/session.dart';
|
||||
import 'package:wger/providers/workout_plans.dart';
|
||||
@@ -29,7 +29,7 @@ import 'package:wger/widgets/measurements/charts.dart';
|
||||
import 'package:wger/widgets/workouts/charts.dart';
|
||||
|
||||
class ExerciseLogChart extends StatelessWidget {
|
||||
final ExerciseBase _base;
|
||||
final Exercise _base;
|
||||
final DateTime _currentDate;
|
||||
|
||||
const ExerciseLogChart(this._base, this._currentDate);
|
||||
@@ -89,7 +89,7 @@ class ExerciseLogChart extends StatelessWidget {
|
||||
class DayLogWidget extends StatefulWidget {
|
||||
final DateTime _date;
|
||||
final WorkoutSession? _session;
|
||||
final Map<ExerciseBase, List<Log>> _exerciseData;
|
||||
final Map<Exercise, List<Log>> _exerciseData;
|
||||
|
||||
const DayLogWidget(this._date, this._exerciseData, this._session);
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
import 'package:table_calendar/table_calendar.dart';
|
||||
import 'package:wger/helpers/consts.dart';
|
||||
import 'package:wger/models/exercises/base.dart';
|
||||
import 'package:wger/models/exercises/exercise.dart';
|
||||
import 'package:wger/models/workouts/log.dart';
|
||||
import 'package:wger/models/workouts/session.dart';
|
||||
import 'package:wger/models/workouts/workout_plan.dart';
|
||||
@@ -96,7 +96,7 @@ class _WorkoutLogsState extends State<WorkoutLogs> {
|
||||
class WorkoutLogEvent {
|
||||
final DateTime dateTime;
|
||||
final WorkoutSession? session;
|
||||
final Map<ExerciseBase, List<Log>> exercises;
|
||||
final Map<Exercise, List<Log>> exercises;
|
||||
|
||||
WorkoutLogEvent(this.dateTime, this.session, this.exercises);
|
||||
}
|
||||
|
||||
@@ -9,9 +9,9 @@ import 'dart:ui' as _i14;
|
||||
|
||||
import 'package:mockito/mockito.dart' as _i1;
|
||||
import 'package:wger/models/exercises/alias.dart' as _i6;
|
||||
import 'package:wger/models/exercises/base.dart' as _i3;
|
||||
import 'package:wger/models/exercises/category.dart' as _i9;
|
||||
import 'package:wger/models/exercises/equipment.dart' as _i11;
|
||||
import 'package:wger/models/exercises/exercise.dart' as _i3;
|
||||
import 'package:wger/models/exercises/language.dart' as _i8;
|
||||
import 'package:wger/models/exercises/muscle.dart' as _i12;
|
||||
import 'package:wger/models/exercises/translation.dart' as _i4;
|
||||
@@ -44,8 +44,8 @@ class _FakeWgerBaseProvider_0 extends _i1.SmartFake implements _i2.WgerBaseProvi
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeExerciseBase_1 extends _i1.SmartFake implements _i3.ExerciseBase {
|
||||
_FakeExerciseBase_1(
|
||||
class _FakeExercise_1 extends _i1.SmartFake implements _i3.Exercise {
|
||||
_FakeExercise_1(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
) : super(
|
||||
@@ -219,29 +219,29 @@ class MockAddExerciseProvider extends _i1.Mock implements _i7.AddExerciseProvide
|
||||
);
|
||||
|
||||
@override
|
||||
_i3.ExerciseBase get base => (super.noSuchMethod(
|
||||
Invocation.getter(#base),
|
||||
returnValue: _FakeExerciseBase_1(
|
||||
_i3.Exercise get exercise => (super.noSuchMethod(
|
||||
Invocation.getter(#exercise),
|
||||
returnValue: _FakeExercise_1(
|
||||
this,
|
||||
Invocation.getter(#base),
|
||||
Invocation.getter(#exercise),
|
||||
),
|
||||
) as _i3.ExerciseBase);
|
||||
) as _i3.Exercise);
|
||||
|
||||
@override
|
||||
_i4.Translation get exerciseEn => (super.noSuchMethod(
|
||||
Invocation.getter(#exerciseEn),
|
||||
_i4.Translation get translationEn => (super.noSuchMethod(
|
||||
Invocation.getter(#translationEn),
|
||||
returnValue: _FakeTranslation_2(
|
||||
this,
|
||||
Invocation.getter(#exerciseEn),
|
||||
Invocation.getter(#translationEn),
|
||||
),
|
||||
) as _i4.Translation);
|
||||
|
||||
@override
|
||||
_i4.Translation get exerciseTranslation => (super.noSuchMethod(
|
||||
Invocation.getter(#exerciseTranslation),
|
||||
_i4.Translation get translation => (super.noSuchMethod(
|
||||
Invocation.getter(#translation),
|
||||
returnValue: _FakeTranslation_2(
|
||||
this,
|
||||
Invocation.getter(#exerciseTranslation),
|
||||
Invocation.getter(#translation),
|
||||
),
|
||||
) as _i4.Translation);
|
||||
|
||||
@@ -336,19 +336,19 @@ class MockAddExerciseProvider extends _i1.Mock implements _i7.AddExerciseProvide
|
||||
) as _i13.Future<int>);
|
||||
|
||||
@override
|
||||
_i13.Future<_i3.ExerciseBase> addExerciseBase() => (super.noSuchMethod(
|
||||
_i13.Future<_i3.Exercise> addExerciseBase() => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#addExerciseBase,
|
||||
[],
|
||||
),
|
||||
returnValue: _i13.Future<_i3.ExerciseBase>.value(_FakeExerciseBase_1(
|
||||
returnValue: _i13.Future<_i3.Exercise>.value(_FakeExercise_1(
|
||||
this,
|
||||
Invocation.method(
|
||||
#addExerciseBase,
|
||||
[],
|
||||
),
|
||||
)),
|
||||
) as _i13.Future<_i3.ExerciseBase>);
|
||||
) as _i13.Future<_i3.Exercise>);
|
||||
|
||||
@override
|
||||
_i13.Future<_i5.Variation> addVariation() => (super.noSuchMethod(
|
||||
@@ -366,7 +366,7 @@ class MockAddExerciseProvider extends _i1.Mock implements _i7.AddExerciseProvide
|
||||
) as _i13.Future<_i5.Variation>);
|
||||
|
||||
@override
|
||||
_i13.Future<void> addImages(_i3.ExerciseBase? base) => (super.noSuchMethod(
|
||||
_i13.Future<void> addImages(_i3.Exercise? base) => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#addImages,
|
||||
[base],
|
||||
|
||||
@@ -42,7 +42,7 @@ void main() {
|
||||
group('Correctly loads and parses data from the server', () {
|
||||
test('test that fetchAndSetExerciseBase finds an existing base', () async {
|
||||
// arrange and act
|
||||
final base = await provider.fetchAndSetExerciseBase(1);
|
||||
final base = await provider.fetchAndSetExercise(1);
|
||||
|
||||
// assert
|
||||
verifyNever(provider.baseProvider.fetch(tExerciseBaseInfoUri));
|
||||
@@ -51,7 +51,7 @@ void main() {
|
||||
|
||||
test('test that fetchAndSetExerciseBase fetches a new base', () async {
|
||||
// arrange and act
|
||||
final base = await provider.fetchAndSetExerciseBase(9);
|
||||
final base = await provider.fetchAndSetExercise(9);
|
||||
|
||||
// assert
|
||||
verify(provider.baseProvider.fetch(tExerciseBaseInfoUri));
|
||||
@@ -62,8 +62,7 @@ void main() {
|
||||
// arrange
|
||||
|
||||
// arrange and act
|
||||
final base =
|
||||
provider.readExerciseBaseFromBaseInfo(ExerciseBaseData.fromJson(tExerciseInfoMap));
|
||||
final base = provider.readExerciseFromBaseInfo(ExerciseBaseData.fromJson(tExerciseInfoMap));
|
||||
|
||||
// assert
|
||||
expect(base.id, 9);
|
||||
|
||||
@@ -193,7 +193,7 @@ void main() {
|
||||
|
||||
// assert
|
||||
verifyNever(provider.baseProvider.fetch(tSearchByNameUri));
|
||||
expect(provider.filteredExerciseBases, isEmpty);
|
||||
expect(provider.filteredExercises, isEmpty);
|
||||
});
|
||||
|
||||
group('Filters are not null', () {
|
||||
@@ -220,7 +220,7 @@ void main() {
|
||||
verifyNever(provider.baseProvider.fetch(tSearchByNameUri));
|
||||
|
||||
expect(
|
||||
provider.filteredExerciseBases,
|
||||
provider.filteredExercises,
|
||||
data.getTestExerciseBases(),
|
||||
);
|
||||
});
|
||||
@@ -236,7 +236,7 @@ void main() {
|
||||
|
||||
// assert
|
||||
verifyNever(provider.baseProvider.fetch(tSearchByNameUri));
|
||||
expect(provider.filteredExerciseBases, [data.getTestExerciseBases()[0]]);
|
||||
expect(provider.filteredExercises, [data.getTestExerciseBases()[0]]);
|
||||
});
|
||||
|
||||
test('A muscle is selected with no search term. Should not find results', () async {
|
||||
@@ -250,7 +250,7 @@ void main() {
|
||||
|
||||
// assert
|
||||
verifyNever(provider.baseProvider.fetch(tSearchByNameUri));
|
||||
expect(provider.filteredExerciseBases, isEmpty);
|
||||
expect(provider.filteredExercises, isEmpty);
|
||||
});
|
||||
|
||||
test('An equipment is selected with no search term. Should find results', () async {
|
||||
@@ -264,7 +264,7 @@ void main() {
|
||||
|
||||
// assert
|
||||
verifyNever(provider.baseProvider.fetch(tSearchByNameUri));
|
||||
expect(provider.filteredExerciseBases, [data.getTestExerciseBases()[0]]);
|
||||
expect(provider.filteredExercises, [data.getTestExerciseBases()[0]]);
|
||||
});
|
||||
|
||||
test('An equipment is selected with no search term. Should not find results', () async {
|
||||
@@ -278,7 +278,7 @@ void main() {
|
||||
|
||||
// assert
|
||||
verifyNever(provider.baseProvider.fetch(tSearchByNameUri));
|
||||
expect(provider.filteredExerciseBases, isEmpty);
|
||||
expect(provider.filteredExercises, isEmpty);
|
||||
});
|
||||
|
||||
test('A muscle and equipment is selected and there is a match', () async {
|
||||
@@ -293,7 +293,7 @@ void main() {
|
||||
|
||||
// assert
|
||||
verifyNever(provider.baseProvider.fetch(tSearchByNameUri));
|
||||
expect(provider.filteredExerciseBases, [data.getTestExerciseBases()[1]]);
|
||||
expect(provider.filteredExercises, [data.getTestExerciseBases()[1]]);
|
||||
});
|
||||
|
||||
test('A muscle and equipment is selected but no match', () async {
|
||||
@@ -308,7 +308,7 @@ void main() {
|
||||
|
||||
// assert
|
||||
verifyNever(provider.baseProvider.fetch(tSearchByNameUri));
|
||||
expect(provider.filteredExerciseBases, isEmpty);
|
||||
expect(provider.filteredExercises, isEmpty);
|
||||
});
|
||||
|
||||
group('Search term', () {
|
||||
@@ -347,7 +347,7 @@ void main() {
|
||||
// assert
|
||||
verify(provider.baseProvider.fetch(tSearchByNameUri)).called(1);
|
||||
expect(
|
||||
provider.filteredExerciseBases,
|
||||
provider.filteredExercises,
|
||||
[data.getTestExerciseBases()[0], data.getTestExerciseBases()[1]],
|
||||
);
|
||||
});
|
||||
@@ -363,7 +363,7 @@ void main() {
|
||||
|
||||
// assert
|
||||
verify(provider.baseProvider.fetch(tSearchByNameUri)).called(1);
|
||||
expect(provider.filteredExerciseBases, isEmpty);
|
||||
expect(provider.filteredExercises, isEmpty);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -9,9 +9,9 @@ import 'dart:ui' as _i14;
|
||||
import 'package:http/http.dart' as _i3;
|
||||
import 'package:mockito/mockito.dart' as _i1;
|
||||
import 'package:wger/database/exercises/exercise_database.dart' as _i13;
|
||||
import 'package:wger/models/exercises/base.dart' as _i5;
|
||||
import 'package:wger/models/exercises/category.dart' as _i6;
|
||||
import 'package:wger/models/exercises/equipment.dart' as _i7;
|
||||
import 'package:wger/models/exercises/exercise.dart' as _i5;
|
||||
import 'package:wger/models/exercises/exercise_base_data.dart' as _i12;
|
||||
import 'package:wger/models/exercises/language.dart' as _i9;
|
||||
import 'package:wger/models/exercises/muscle.dart' as _i8;
|
||||
@@ -82,8 +82,8 @@ class _FakeWgerBaseProvider_4 extends _i1.SmartFake implements _i4.WgerBaseProvi
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeExerciseBase_5 extends _i1.SmartFake implements _i5.ExerciseBase {
|
||||
_FakeExerciseBase_5(
|
||||
class _FakeExercise_5 extends _i1.SmartFake implements _i5.Exercise {
|
||||
_FakeExercise_5(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
) : super(
|
||||
@@ -311,7 +311,7 @@ class MockExercisesProvider extends _i1.Mock implements _i11.ExercisesProvider {
|
||||
) as _i4.WgerBaseProvider);
|
||||
|
||||
@override
|
||||
set exerciseBases(List<_i5.ExerciseBase>? exercisesBases) => super.noSuchMethod(
|
||||
set exerciseBases(List<_i5.Exercise>? exercisesBases) => super.noSuchMethod(
|
||||
Invocation.setter(
|
||||
#exerciseBases,
|
||||
exercisesBases,
|
||||
@@ -320,13 +320,13 @@ class MockExercisesProvider extends _i1.Mock implements _i11.ExercisesProvider {
|
||||
);
|
||||
|
||||
@override
|
||||
List<_i5.ExerciseBase> get filteredExerciseBases => (super.noSuchMethod(
|
||||
List<_i5.Exercise> get filteredExercises => (super.noSuchMethod(
|
||||
Invocation.getter(#filteredExerciseBases),
|
||||
returnValue: <_i5.ExerciseBase>[],
|
||||
) as List<_i5.ExerciseBase>);
|
||||
returnValue: <_i5.Exercise>[],
|
||||
) as List<_i5.Exercise>);
|
||||
|
||||
@override
|
||||
set filteredExerciseBases(List<_i5.ExerciseBase>? newFilteredExercises) => super.noSuchMethod(
|
||||
set filteredExercises(List<_i5.Exercise>? newFilteredExercises) => super.noSuchMethod(
|
||||
Invocation.setter(
|
||||
#filteredExerciseBases,
|
||||
newFilteredExercises,
|
||||
@@ -335,16 +335,16 @@ class MockExercisesProvider extends _i1.Mock implements _i11.ExercisesProvider {
|
||||
);
|
||||
|
||||
@override
|
||||
Map<int, List<_i5.ExerciseBase>> get exerciseBasesByVariation => (super.noSuchMethod(
|
||||
Map<int, List<_i5.Exercise>> get exerciseBasesByVariation => (super.noSuchMethod(
|
||||
Invocation.getter(#exerciseBasesByVariation),
|
||||
returnValue: <int, List<_i5.ExerciseBase>>{},
|
||||
) as Map<int, List<_i5.ExerciseBase>>);
|
||||
returnValue: <int, List<_i5.Exercise>>{},
|
||||
) as Map<int, List<_i5.Exercise>>);
|
||||
|
||||
@override
|
||||
List<_i5.ExerciseBase> get bases => (super.noSuchMethod(
|
||||
List<_i5.Exercise> get bases => (super.noSuchMethod(
|
||||
Invocation.getter(#bases),
|
||||
returnValue: <_i5.ExerciseBase>[],
|
||||
) as List<_i5.ExerciseBase>);
|
||||
returnValue: <_i5.Exercise>[],
|
||||
) as List<_i5.Exercise>);
|
||||
|
||||
@override
|
||||
List<_i6.ExerciseCategory> get categories => (super.noSuchMethod(
|
||||
@@ -415,22 +415,22 @@ class MockExercisesProvider extends _i1.Mock implements _i11.ExercisesProvider {
|
||||
);
|
||||
|
||||
@override
|
||||
_i5.ExerciseBase findExerciseById(int? id) => (super.noSuchMethod(
|
||||
_i5.Exercise findExerciseById(int? id) => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#findExerciseById,
|
||||
[id],
|
||||
),
|
||||
returnValue: _FakeExerciseBase_5(
|
||||
returnValue: _FakeExercise_5(
|
||||
this,
|
||||
Invocation.method(
|
||||
#findExerciseById,
|
||||
[id],
|
||||
),
|
||||
),
|
||||
) as _i5.ExerciseBase);
|
||||
) as _i5.Exercise);
|
||||
|
||||
@override
|
||||
List<_i5.ExerciseBase> findExerciseBasesByVariationId(
|
||||
List<_i5.Exercise> findExerciseBasesByVariationId(
|
||||
int? id, {
|
||||
int? exerciseBaseIdToExclude,
|
||||
}) =>
|
||||
@@ -440,8 +440,8 @@ class MockExercisesProvider extends _i1.Mock implements _i11.ExercisesProvider {
|
||||
[id],
|
||||
{#exerciseBaseIdToExclude: exerciseBaseIdToExclude},
|
||||
),
|
||||
returnValue: <_i5.ExerciseBase>[],
|
||||
) as List<_i5.ExerciseBase>);
|
||||
returnValue: <_i5.Exercise>[],
|
||||
) as List<_i5.Exercise>);
|
||||
|
||||
@override
|
||||
_i6.ExerciseCategory findCategoryById(int? id) => (super.noSuchMethod(
|
||||
@@ -569,35 +569,34 @@ class MockExercisesProvider extends _i1.Mock implements _i11.ExercisesProvider {
|
||||
) as _i10.Future<_i9.Language>);
|
||||
|
||||
@override
|
||||
_i10.Future<_i5.ExerciseBase> fetchAndSetExerciseBase(int? exerciseBaseId) => (super.noSuchMethod(
|
||||
_i10.Future<_i5.Exercise> fetchAndSetExercise(int? exerciseId) => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchAndSetExerciseBase,
|
||||
[exerciseBaseId],
|
||||
#fetchAndSetExercise,
|
||||
[exerciseId],
|
||||
),
|
||||
returnValue: _i10.Future<_i5.ExerciseBase>.value(_FakeExerciseBase_5(
|
||||
returnValue: _i10.Future<_i5.Exercise>.value(_FakeExercise_5(
|
||||
this,
|
||||
Invocation.method(
|
||||
#fetchAndSetExerciseBase,
|
||||
[exerciseBaseId],
|
||||
#fetchAndSetExercise,
|
||||
[exerciseId],
|
||||
),
|
||||
)),
|
||||
) as _i10.Future<_i5.ExerciseBase>);
|
||||
) as _i10.Future<_i5.Exercise>);
|
||||
|
||||
@override
|
||||
_i5.ExerciseBase readExerciseBaseFromBaseInfo(_i12.ExerciseBaseData? baseData) =>
|
||||
(super.noSuchMethod(
|
||||
_i5.Exercise readExerciseFromBaseInfo(_i12.ExerciseBaseData? baseData) => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#readExerciseBaseFromBaseInfo,
|
||||
#readExerciseFromBaseInfo,
|
||||
[baseData],
|
||||
),
|
||||
returnValue: _FakeExerciseBase_5(
|
||||
returnValue: _FakeExercise_5(
|
||||
this,
|
||||
Invocation.method(
|
||||
#readExerciseBaseFromBaseInfo,
|
||||
#readExerciseFromBaseInfo,
|
||||
[baseData],
|
||||
),
|
||||
),
|
||||
) as _i5.ExerciseBase);
|
||||
) as _i5.Exercise);
|
||||
|
||||
@override
|
||||
_i10.Future<void> checkExerciseCacheVersion() => (super.noSuchMethod(
|
||||
@@ -705,7 +704,7 @@ class MockExercisesProvider extends _i1.Mock implements _i11.ExercisesProvider {
|
||||
) as _i10.Future<void>);
|
||||
|
||||
@override
|
||||
_i10.Future<List<_i5.ExerciseBase>> searchExercise(
|
||||
_i10.Future<List<_i5.Exercise>> searchExercise(
|
||||
String? name, {
|
||||
String? languageCode = r'en',
|
||||
bool? searchEnglish = false,
|
||||
@@ -719,8 +718,8 @@ class MockExercisesProvider extends _i1.Mock implements _i11.ExercisesProvider {
|
||||
#searchEnglish: searchEnglish,
|
||||
},
|
||||
),
|
||||
returnValue: _i10.Future<List<_i5.ExerciseBase>>.value(<_i5.ExerciseBase>[]),
|
||||
) as _i10.Future<List<_i5.ExerciseBase>>);
|
||||
returnValue: _i10.Future<List<_i5.Exercise>>.value(<_i5.Exercise>[]),
|
||||
) as _i10.Future<List<_i5.Exercise>>);
|
||||
|
||||
@override
|
||||
void addListener(_i14.VoidCallback? listener) => super.noSuchMethod(
|
||||
|
||||
@@ -41,7 +41,7 @@ void main() {
|
||||
final setting1 = Setting(
|
||||
setId: 1,
|
||||
order: 1,
|
||||
exerciseBaseId: 1,
|
||||
exerciseId: 1,
|
||||
repetitionUnitId: 1,
|
||||
reps: 2,
|
||||
weightUnitId: 1,
|
||||
|
||||
@@ -8,7 +8,7 @@ import 'dart:ui' as _i16;
|
||||
|
||||
import 'package:mockito/mockito.dart' as _i1;
|
||||
import 'package:mockito/src/dummies.dart' as _i15;
|
||||
import 'package:wger/models/exercises/base.dart' as _i13;
|
||||
import 'package:wger/models/exercises/exercise.dart' as _i13;
|
||||
import 'package:wger/models/exercises/translation.dart' as _i14;
|
||||
import 'package:wger/models/workouts/day.dart' as _i6;
|
||||
import 'package:wger/models/workouts/log.dart' as _i10;
|
||||
@@ -331,7 +331,7 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
@override
|
||||
_i12.Future<Map<String, dynamic>> fetchLogData(
|
||||
_i5.WorkoutPlan? workout,
|
||||
_i13.ExerciseBase? base,
|
||||
_i13.Exercise? base,
|
||||
) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
|
||||
@@ -42,7 +42,7 @@ void main() {
|
||||
final setting1 = Setting(
|
||||
setId: 1,
|
||||
order: 1,
|
||||
exerciseBaseId: 1,
|
||||
exerciseId: 1,
|
||||
repetitionUnitId: 1,
|
||||
reps: 2,
|
||||
weightUnitId: 1,
|
||||
|
||||
@@ -8,7 +8,7 @@ import 'dart:ui' as _i16;
|
||||
|
||||
import 'package:mockito/mockito.dart' as _i1;
|
||||
import 'package:mockito/src/dummies.dart' as _i15;
|
||||
import 'package:wger/models/exercises/base.dart' as _i13;
|
||||
import 'package:wger/models/exercises/exercise.dart' as _i13;
|
||||
import 'package:wger/models/exercises/translation.dart' as _i14;
|
||||
import 'package:wger/models/workouts/day.dart' as _i6;
|
||||
import 'package:wger/models/workouts/log.dart' as _i10;
|
||||
@@ -331,7 +331,7 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
@override
|
||||
_i12.Future<Map<String, dynamic>> fetchLogData(
|
||||
_i5.WorkoutPlan? workout,
|
||||
_i13.ExerciseBase? base,
|
||||
_i13.Exercise? base,
|
||||
) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
|
||||
@@ -8,7 +8,7 @@ import 'dart:ui' as _i16;
|
||||
|
||||
import 'package:mockito/mockito.dart' as _i1;
|
||||
import 'package:mockito/src/dummies.dart' as _i15;
|
||||
import 'package:wger/models/exercises/base.dart' as _i13;
|
||||
import 'package:wger/models/exercises/exercise.dart' as _i13;
|
||||
import 'package:wger/models/exercises/translation.dart' as _i14;
|
||||
import 'package:wger/models/workouts/day.dart' as _i6;
|
||||
import 'package:wger/models/workouts/log.dart' as _i10;
|
||||
@@ -331,7 +331,7 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i11.WorkoutPlansProv
|
||||
@override
|
||||
_i12.Future<Map<String, dynamic>> fetchLogData(
|
||||
_i5.WorkoutPlan? workout,
|
||||
_i13.ExerciseBase? base,
|
||||
_i13.Exercise? base,
|
||||
) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
|
||||
@@ -10,9 +10,9 @@ import 'package:http/http.dart' as _i9;
|
||||
import 'package:mockito/mockito.dart' as _i1;
|
||||
import 'package:mockito/src/dummies.dart' as _i25;
|
||||
import 'package:wger/database/exercises/exercise_database.dart' as _i21;
|
||||
import 'package:wger/models/exercises/base.dart' as _i3;
|
||||
import 'package:wger/models/exercises/category.dart' as _i4;
|
||||
import 'package:wger/models/exercises/equipment.dart' as _i5;
|
||||
import 'package:wger/models/exercises/exercise.dart' as _i3;
|
||||
import 'package:wger/models/exercises/exercise_base_data.dart' as _i20;
|
||||
import 'package:wger/models/exercises/language.dart' as _i7;
|
||||
import 'package:wger/models/exercises/muscle.dart' as _i6;
|
||||
@@ -53,8 +53,8 @@ class _FakeWgerBaseProvider_0 extends _i1.SmartFake implements _i2.WgerBaseProvi
|
||||
);
|
||||
}
|
||||
|
||||
class _FakeExerciseBase_1 extends _i1.SmartFake implements _i3.ExerciseBase {
|
||||
_FakeExerciseBase_1(
|
||||
class _FakeExercise_1 extends _i1.SmartFake implements _i3.Exercise {
|
||||
_FakeExercise_1(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
) : super(
|
||||
@@ -241,7 +241,7 @@ class MockExercisesProvider extends _i1.Mock implements _i18.ExercisesProvider {
|
||||
) as _i2.WgerBaseProvider);
|
||||
|
||||
@override
|
||||
set exerciseBases(List<_i3.ExerciseBase>? exercisesBases) => super.noSuchMethod(
|
||||
set exerciseBases(List<_i3.Exercise>? exercisesBases) => super.noSuchMethod(
|
||||
Invocation.setter(
|
||||
#exerciseBases,
|
||||
exercisesBases,
|
||||
@@ -250,13 +250,13 @@ class MockExercisesProvider extends _i1.Mock implements _i18.ExercisesProvider {
|
||||
);
|
||||
|
||||
@override
|
||||
List<_i3.ExerciseBase> get filteredExerciseBases => (super.noSuchMethod(
|
||||
List<_i3.Exercise> get filteredExercises => (super.noSuchMethod(
|
||||
Invocation.getter(#filteredExerciseBases),
|
||||
returnValue: <_i3.ExerciseBase>[],
|
||||
) as List<_i3.ExerciseBase>);
|
||||
returnValue: <_i3.Exercise>[],
|
||||
) as List<_i3.Exercise>);
|
||||
|
||||
@override
|
||||
set filteredExerciseBases(List<_i3.ExerciseBase>? newFilteredExercises) => super.noSuchMethod(
|
||||
set filteredExercises(List<_i3.Exercise>? newFilteredExercises) => super.noSuchMethod(
|
||||
Invocation.setter(
|
||||
#filteredExerciseBases,
|
||||
newFilteredExercises,
|
||||
@@ -265,16 +265,16 @@ class MockExercisesProvider extends _i1.Mock implements _i18.ExercisesProvider {
|
||||
);
|
||||
|
||||
@override
|
||||
Map<int, List<_i3.ExerciseBase>> get exerciseBasesByVariation => (super.noSuchMethod(
|
||||
Map<int, List<_i3.Exercise>> get exerciseBasesByVariation => (super.noSuchMethod(
|
||||
Invocation.getter(#exerciseBasesByVariation),
|
||||
returnValue: <int, List<_i3.ExerciseBase>>{},
|
||||
) as Map<int, List<_i3.ExerciseBase>>);
|
||||
returnValue: <int, List<_i3.Exercise>>{},
|
||||
) as Map<int, List<_i3.Exercise>>);
|
||||
|
||||
@override
|
||||
List<_i3.ExerciseBase> get bases => (super.noSuchMethod(
|
||||
List<_i3.Exercise> get bases => (super.noSuchMethod(
|
||||
Invocation.getter(#bases),
|
||||
returnValue: <_i3.ExerciseBase>[],
|
||||
) as List<_i3.ExerciseBase>);
|
||||
returnValue: <_i3.Exercise>[],
|
||||
) as List<_i3.Exercise>);
|
||||
|
||||
@override
|
||||
List<_i4.ExerciseCategory> get categories => (super.noSuchMethod(
|
||||
@@ -345,22 +345,22 @@ class MockExercisesProvider extends _i1.Mock implements _i18.ExercisesProvider {
|
||||
);
|
||||
|
||||
@override
|
||||
_i3.ExerciseBase findExerciseById(int? id) => (super.noSuchMethod(
|
||||
_i3.Exercise findExerciseById(int? id) => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#findExerciseById,
|
||||
[id],
|
||||
),
|
||||
returnValue: _FakeExerciseBase_1(
|
||||
returnValue: _FakeExercise_1(
|
||||
this,
|
||||
Invocation.method(
|
||||
#findExerciseById,
|
||||
[id],
|
||||
),
|
||||
),
|
||||
) as _i3.ExerciseBase);
|
||||
) as _i3.Exercise);
|
||||
|
||||
@override
|
||||
List<_i3.ExerciseBase> findExerciseBasesByVariationId(
|
||||
List<_i3.Exercise> findExerciseBasesByVariationId(
|
||||
int? id, {
|
||||
int? exerciseBaseIdToExclude,
|
||||
}) =>
|
||||
@@ -370,8 +370,8 @@ class MockExercisesProvider extends _i1.Mock implements _i18.ExercisesProvider {
|
||||
[id],
|
||||
{#exerciseBaseIdToExclude: exerciseBaseIdToExclude},
|
||||
),
|
||||
returnValue: <_i3.ExerciseBase>[],
|
||||
) as List<_i3.ExerciseBase>);
|
||||
returnValue: <_i3.Exercise>[],
|
||||
) as List<_i3.Exercise>);
|
||||
|
||||
@override
|
||||
_i4.ExerciseCategory findCategoryById(int? id) => (super.noSuchMethod(
|
||||
@@ -499,35 +499,34 @@ class MockExercisesProvider extends _i1.Mock implements _i18.ExercisesProvider {
|
||||
) as _i19.Future<_i7.Language>);
|
||||
|
||||
@override
|
||||
_i19.Future<_i3.ExerciseBase> fetchAndSetExerciseBase(int? exerciseBaseId) => (super.noSuchMethod(
|
||||
_i19.Future<_i3.Exercise> fetchAndSetExercise(int? exerciseId) => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#fetchAndSetExerciseBase,
|
||||
[exerciseBaseId],
|
||||
#fetchAndSetExercise,
|
||||
[exerciseId],
|
||||
),
|
||||
returnValue: _i19.Future<_i3.ExerciseBase>.value(_FakeExerciseBase_1(
|
||||
returnValue: _i19.Future<_i3.Exercise>.value(_FakeExercise_1(
|
||||
this,
|
||||
Invocation.method(
|
||||
#fetchAndSetExerciseBase,
|
||||
[exerciseBaseId],
|
||||
#fetchAndSetExercise,
|
||||
[exerciseId],
|
||||
),
|
||||
)),
|
||||
) as _i19.Future<_i3.ExerciseBase>);
|
||||
) as _i19.Future<_i3.Exercise>);
|
||||
|
||||
@override
|
||||
_i3.ExerciseBase readExerciseBaseFromBaseInfo(_i20.ExerciseBaseData? baseData) =>
|
||||
(super.noSuchMethod(
|
||||
_i3.Exercise readExerciseFromBaseInfo(_i20.ExerciseBaseData? baseData) => (super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#readExerciseBaseFromBaseInfo,
|
||||
#readExerciseFromBaseInfo,
|
||||
[baseData],
|
||||
),
|
||||
returnValue: _FakeExerciseBase_1(
|
||||
returnValue: _FakeExercise_1(
|
||||
this,
|
||||
Invocation.method(
|
||||
#readExerciseBaseFromBaseInfo,
|
||||
#readExerciseFromBaseInfo,
|
||||
[baseData],
|
||||
),
|
||||
),
|
||||
) as _i3.ExerciseBase);
|
||||
) as _i3.Exercise);
|
||||
|
||||
@override
|
||||
_i19.Future<void> checkExerciseCacheVersion() => (super.noSuchMethod(
|
||||
@@ -635,7 +634,7 @@ class MockExercisesProvider extends _i1.Mock implements _i18.ExercisesProvider {
|
||||
) as _i19.Future<void>);
|
||||
|
||||
@override
|
||||
_i19.Future<List<_i3.ExerciseBase>> searchExercise(
|
||||
_i19.Future<List<_i3.Exercise>> searchExercise(
|
||||
String? name, {
|
||||
String? languageCode = r'en',
|
||||
bool? searchEnglish = false,
|
||||
@@ -649,8 +648,8 @@ class MockExercisesProvider extends _i1.Mock implements _i18.ExercisesProvider {
|
||||
#searchEnglish: searchEnglish,
|
||||
},
|
||||
),
|
||||
returnValue: _i19.Future<List<_i3.ExerciseBase>>.value(<_i3.ExerciseBase>[]),
|
||||
) as _i19.Future<List<_i3.ExerciseBase>>);
|
||||
returnValue: _i19.Future<List<_i3.Exercise>>.value(<_i3.Exercise>[]),
|
||||
) as _i19.Future<List<_i3.Exercise>>);
|
||||
|
||||
@override
|
||||
void addListener(_i22.VoidCallback? listener) => super.noSuchMethod(
|
||||
@@ -1057,7 +1056,7 @@ class MockWorkoutPlansProvider extends _i1.Mock implements _i23.WorkoutPlansProv
|
||||
@override
|
||||
_i19.Future<Map<String, dynamic>> fetchLogData(
|
||||
_i12.WorkoutPlan? workout,
|
||||
_i3.ExerciseBase? base,
|
||||
_i3.Exercise? base,
|
||||
) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
|
||||
@@ -16,9 +16,9 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import 'package:wger/models/exercises/base.dart';
|
||||
import 'package:wger/models/exercises/category.dart';
|
||||
import 'package:wger/models/exercises/equipment.dart';
|
||||
import 'package:wger/models/exercises/exercise.dart';
|
||||
import 'package:wger/models/exercises/language.dart';
|
||||
import 'package:wger/models/exercises/muscle.dart';
|
||||
import 'package:wger/models/exercises/translation.dart';
|
||||
@@ -48,7 +48,7 @@ const tEquipment3 = Equipment(id: 3, name: 'Bench');
|
||||
const tEquipment4 = Equipment(id: 10, name: 'Gym mat');
|
||||
const testEquipment = [tEquipment1, tEquipment2, tEquipment3];
|
||||
|
||||
final benchPress = ExerciseBase(
|
||||
final benchPress = Exercise(
|
||||
id: 1,
|
||||
uuid: '364f196c-881b-4839-8bfc-9e8f651521b6',
|
||||
created: DateTime(2021, 09, 01),
|
||||
@@ -59,7 +59,7 @@ final benchPress = ExerciseBase(
|
||||
musclesSecondary: const [tMuscle3],
|
||||
);
|
||||
|
||||
final crunches = ExerciseBase(
|
||||
final crunches = Exercise(
|
||||
id: 2,
|
||||
uuid: '82415754-fc4c-49ea-8ca7-1516dd36d5a0',
|
||||
created: DateTime(2021, 08, 01),
|
||||
@@ -70,7 +70,7 @@ final crunches = ExerciseBase(
|
||||
musclesSecondary: const [tMuscle2],
|
||||
);
|
||||
|
||||
final deadLift = ExerciseBase(
|
||||
final deadLift = Exercise(
|
||||
id: 3,
|
||||
uuid: 'ca84e2c5-5608-4d6d-ba57-6d4b6b5e7acd',
|
||||
created: DateTime(2021, 08, 01),
|
||||
@@ -81,7 +81,7 @@ final deadLift = ExerciseBase(
|
||||
musclesSecondary: const [tMuscle2],
|
||||
);
|
||||
|
||||
final curls = ExerciseBase(
|
||||
final curls = Exercise(
|
||||
id: 4,
|
||||
uuid: '361f024c-fdf8-4146-b7d7-0c1b67c58141',
|
||||
created: DateTime(2021, 08, 01),
|
||||
@@ -91,7 +91,7 @@ final curls = ExerciseBase(
|
||||
muscles: const [tMuscle1],
|
||||
musclesSecondary: const [tMuscle2],
|
||||
);
|
||||
final squats = ExerciseBase(
|
||||
final squats = Exercise(
|
||||
id: 5,
|
||||
uuid: '361f024c-fdf8-4146-b7d7-0c1b67c58141',
|
||||
created: DateTime(2021, 08, 01),
|
||||
@@ -101,7 +101,7 @@ final squats = ExerciseBase(
|
||||
muscles: const [tMuscle1],
|
||||
musclesSecondary: const [tMuscle2],
|
||||
);
|
||||
final sideRaises = ExerciseBase(
|
||||
final sideRaises = Exercise(
|
||||
id: 6,
|
||||
uuid: '721ff972-c568-41e3-8cf5-cf1e5c5c801c',
|
||||
created: DateTime(2022, 11, 01),
|
||||
@@ -118,7 +118,7 @@ final benchPressDe = Translation(
|
||||
created: DateTime(2021, 1, 15),
|
||||
name: 'Bankdrücken',
|
||||
description: 'add clever text',
|
||||
baseId: benchPress.id,
|
||||
exerciseId: benchPress.id,
|
||||
language: tLanguage1,
|
||||
);
|
||||
final benchPressEn = Translation(
|
||||
@@ -127,7 +127,7 @@ final benchPressEn = Translation(
|
||||
created: DateTime(2021, 1, 15),
|
||||
name: 'Bench press',
|
||||
description: 'add clever text',
|
||||
baseId: benchPress.id,
|
||||
exerciseId: benchPress.id,
|
||||
language: tLanguage1,
|
||||
);
|
||||
|
||||
@@ -137,7 +137,7 @@ final deadLiftEn = Translation(
|
||||
created: DateTime(2021, 1, 15),
|
||||
name: 'Dead Lift',
|
||||
description: 'Lorem ipsum etc',
|
||||
baseId: crunches.id,
|
||||
exerciseId: crunches.id,
|
||||
language: tLanguage2,
|
||||
);
|
||||
|
||||
@@ -147,7 +147,7 @@ final crunchesFr = Translation(
|
||||
created: DateTime(2021, 4, 1),
|
||||
name: 'Crunches',
|
||||
description: 'The man in black fled across the desert, and the gunslinger followed',
|
||||
baseId: deadLift.id,
|
||||
exerciseId: deadLift.id,
|
||||
language: tLanguage3,
|
||||
);
|
||||
|
||||
@@ -157,7 +157,7 @@ final crunchesDe = Translation(
|
||||
created: DateTime(2021, 4, 1),
|
||||
name: 'Crunches',
|
||||
description: 'The story so far: in the beginning, the universe was created',
|
||||
baseId: deadLift.id,
|
||||
exerciseId: deadLift.id,
|
||||
language: tLanguage1,
|
||||
);
|
||||
|
||||
@@ -167,7 +167,7 @@ final crunchesEn = Translation(
|
||||
created: DateTime(2021, 4, 1),
|
||||
name: 'test exercise 5',
|
||||
description: 'I am an invisible man',
|
||||
baseId: deadLift.id,
|
||||
exerciseId: deadLift.id,
|
||||
language: tLanguage2,
|
||||
);
|
||||
|
||||
@@ -177,7 +177,7 @@ final curlsEn = Translation(
|
||||
created: DateTime(2021, 4, 1),
|
||||
name: 'Curls',
|
||||
description: 'It was a bright cold day in April, and the clocks were striking thirteen',
|
||||
baseId: curls.id,
|
||||
exerciseId: curls.id,
|
||||
language: tLanguage2,
|
||||
);
|
||||
|
||||
@@ -187,7 +187,7 @@ final squatsEn = Translation(
|
||||
created: DateTime(2021, 4, 1),
|
||||
name: 'Squats',
|
||||
description: 'It was a bright cold day in April, and the clocks were striking thirteen',
|
||||
baseId: curls.id,
|
||||
exerciseId: curls.id,
|
||||
language: tLanguage2,
|
||||
);
|
||||
|
||||
@@ -197,11 +197,11 @@ final sideRaisesEn = Translation(
|
||||
created: DateTime(2022, 11, 1),
|
||||
name: 'Side raises',
|
||||
description: 'It was a bright cold day in April, and the clocks were striking thirteen',
|
||||
baseId: curls.id,
|
||||
exerciseId: curls.id,
|
||||
language: tLanguage2,
|
||||
);
|
||||
|
||||
List<ExerciseBase> getTestExerciseBases() {
|
||||
List<Exercise> getTestExerciseBases() {
|
||||
benchPress.translations = [benchPressEn, benchPressDe];
|
||||
crunches.translations = [crunchesEn, crunchesDe, crunchesFr];
|
||||
deadLift.translations = [deadLiftEn];
|
||||
|
||||
@@ -71,7 +71,7 @@ WorkoutPlan getWorkout() {
|
||||
final settingBenchPress = Setting(
|
||||
setId: 1,
|
||||
order: 1,
|
||||
exerciseBaseId: 1,
|
||||
exerciseId: 1,
|
||||
repetitionUnitId: 1,
|
||||
reps: 6,
|
||||
weightUnitId: 1,
|
||||
@@ -80,7 +80,7 @@ WorkoutPlan getWorkout() {
|
||||
);
|
||||
settingBenchPress.repetitionUnit = repetitionUnit1;
|
||||
settingBenchPress.weightUnit = weightUnit1;
|
||||
settingBenchPress.exerciseBase = testBases[0];
|
||||
settingBenchPress.exercise = testBases[0];
|
||||
settingBenchPress.weight = 80;
|
||||
|
||||
final setBenchPress = Set.withData(
|
||||
@@ -97,7 +97,7 @@ WorkoutPlan getWorkout() {
|
||||
final settingSquat = Setting(
|
||||
setId: 2,
|
||||
order: 1,
|
||||
exerciseBaseId: 8,
|
||||
exerciseId: 8,
|
||||
repetitionUnitId: 1,
|
||||
reps: 8,
|
||||
weightUnitId: 1,
|
||||
@@ -106,7 +106,7 @@ WorkoutPlan getWorkout() {
|
||||
);
|
||||
settingSquat.repetitionUnit = repetitionUnit1;
|
||||
settingSquat.weightUnit = weightUnit1;
|
||||
settingSquat.exerciseBase = testBases[4];
|
||||
settingSquat.exercise = testBases[4];
|
||||
settingSquat.weight = 120;
|
||||
|
||||
final setSquat = Set.withData(
|
||||
@@ -122,7 +122,7 @@ WorkoutPlan getWorkout() {
|
||||
final settingSideRaises = Setting(
|
||||
setId: 2,
|
||||
order: 1,
|
||||
exerciseBaseId: 8,
|
||||
exerciseId: 8,
|
||||
repetitionUnitId: 1,
|
||||
reps: 12,
|
||||
weightUnitId: 1,
|
||||
@@ -131,7 +131,7 @@ WorkoutPlan getWorkout() {
|
||||
);
|
||||
settingSideRaises.repetitionUnit = repetitionUnit1;
|
||||
settingSideRaises.weightUnit = weightUnit1;
|
||||
settingSideRaises.exerciseBase = testBases[5];
|
||||
settingSideRaises.exercise = testBases[5];
|
||||
settingSideRaises.weight = 6;
|
||||
|
||||
final setSideRaises = Set.withData(
|
||||
|
||||
Reference in New Issue
Block a user