mirror of
https://github.com/wger-project/flutter.git
synced 2026-02-18 00:17:48 +01:00
Set the baseID when loading exercises
This commit is contained in:
@@ -39,6 +39,7 @@ import 'package:wger/providers/base_provider.dart';
|
||||
|
||||
class ExercisesProvider with ChangeNotifier {
|
||||
final WgerBaseProvider baseProvider;
|
||||
ExercisesProvider(this.baseProvider);
|
||||
|
||||
static const EXERCISE_CACHE_DAYS = 7;
|
||||
static const CACHE_VERSION = 3;
|
||||
@@ -92,8 +93,6 @@ class ExercisesProvider with ChangeNotifier {
|
||||
return variations;
|
||||
}
|
||||
|
||||
ExercisesProvider(this.baseProvider);
|
||||
|
||||
List<ExerciseBase> get bases => [..._exerciseBases];
|
||||
List<ExerciseCategory> get categories => [..._categories];
|
||||
List<Muscle> get muscles => [..._muscles];
|
||||
@@ -184,26 +183,15 @@ 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.
|
||||
///
|
||||
/// languageId: the ID of the language to filter the results by. If this
|
||||
/// parameter is not passed, all exercises are returned.
|
||||
List<ExerciseBase> findExerciseBasesByVariationId(int id,
|
||||
{int? exerciseIdToExclude, int? languageId}) {
|
||||
List<ExerciseBase> findExerciseBasesByVariationId(int id, {int? exerciseBaseIdToExclude}) {
|
||||
var out = _exerciseBases
|
||||
.where(
|
||||
(base) => base.variationId == id,
|
||||
)
|
||||
.toList();
|
||||
|
||||
/*
|
||||
if (languageId != null) {
|
||||
out = out.where((e) => e.languageId == languageId).toList();
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
if (exerciseIdToExclude != null) {
|
||||
out = out.where((e) => e.id != exerciseIdToExclude).toList();
|
||||
if (exerciseBaseIdToExclude != null) {
|
||||
out = out.where((e) => e.id != exerciseBaseIdToExclude).toList();
|
||||
}
|
||||
return out;
|
||||
}
|
||||
@@ -334,6 +322,7 @@ class ExercisesProvider with ChangeNotifier {
|
||||
.cast<Alias>();
|
||||
exercise.notes =
|
||||
exerciseData['notes'].map((e) => Comment.fromJson(e)).toList().cast<Comment>();
|
||||
exercise.baseId = baseData['id'];
|
||||
exercises.add(exercise);
|
||||
}
|
||||
|
||||
|
||||
@@ -86,8 +86,7 @@ class ExerciseDetail extends StatelessWidget {
|
||||
Provider.of<ExercisesProvider>(context, listen: false)
|
||||
.findExerciseBasesByVariationId(
|
||||
_exerciseBase.variationId!,
|
||||
languageId: _exercise.languageId,
|
||||
exerciseIdToExclude: _exerciseBase.id,
|
||||
exerciseBaseIdToExclude: _exerciseBase.id,
|
||||
)
|
||||
.forEach((element) {
|
||||
out.add(ExerciseListTile(
|
||||
|
||||
@@ -82,6 +82,10 @@ main() {
|
||||
'd8aa5990-bb47-4111-9823-e2fbd98fe07f',
|
||||
'49a159e1-1e00-409a-81c9-b4d4489fbd67'
|
||||
]);
|
||||
|
||||
expect(base.exercises[0].name, '2 Handed Kettlebell Swing');
|
||||
expect(base.exercises[1].name, 'Kettlebell Con Dos Manos');
|
||||
expect(base.exercises[2].name, 'Zweihändiges Kettlebell');
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@@ -24,13 +24,11 @@ import 'package:wger/providers/exercises.dart' as _i8;
|
||||
// ignore_for_file: unnecessary_parenthesis
|
||||
// ignore_for_file: camel_case_types
|
||||
|
||||
class _FakeWgerBaseProvider_0 extends _i1.Fake implements _i2.WgerBaseProvider {
|
||||
}
|
||||
class _FakeWgerBaseProvider_0 extends _i1.Fake implements _i2.WgerBaseProvider {}
|
||||
|
||||
class _FakeExerciseBase_1 extends _i1.Fake implements _i3.ExerciseBase {}
|
||||
|
||||
class _FakeExerciseCategory_2 extends _i1.Fake implements _i4.ExerciseCategory {
|
||||
}
|
||||
class _FakeExerciseCategory_2 extends _i1.Fake implements _i4.ExerciseCategory {}
|
||||
|
||||
class _FakeEquipment_3 extends _i1.Fake implements _i5.Equipment {}
|
||||
|
||||
@@ -48,8 +46,8 @@ class MockExercisesProvider extends _i1.Mock implements _i8.ExercisesProvider {
|
||||
|
||||
@override
|
||||
_i2.WgerBaseProvider get baseProvider =>
|
||||
(super.noSuchMethod(Invocation.getter(#baseProvider),
|
||||
returnValue: _FakeWgerBaseProvider_0()) as _i2.WgerBaseProvider);
|
||||
(super.noSuchMethod(Invocation.getter(#baseProvider), returnValue: _FakeWgerBaseProvider_0())
|
||||
as _i2.WgerBaseProvider);
|
||||
@override
|
||||
set exerciseBases(List<_i3.ExerciseBase>? exercisesBases) =>
|
||||
super.noSuchMethod(Invocation.setter(#exerciseBases, exercisesBases),
|
||||
@@ -60,65 +58,57 @@ class MockExercisesProvider extends _i1.Mock implements _i8.ExercisesProvider {
|
||||
returnValue: <_i3.ExerciseBase>[]) as List<_i3.ExerciseBase>);
|
||||
@override
|
||||
set filteredExerciseBases(List<_i3.ExerciseBase>? newFilteredExercises) =>
|
||||
super.noSuchMethod(
|
||||
Invocation.setter(#filteredExerciseBases, newFilteredExercises),
|
||||
super.noSuchMethod(Invocation.setter(#filteredExerciseBases, newFilteredExercises),
|
||||
returnValueForMissingStub: null);
|
||||
@override
|
||||
Map<int, List<_i3.ExerciseBase>> get exerciseBasesByVariation =>
|
||||
(super.noSuchMethod(Invocation.getter(#exerciseBasesByVariation),
|
||||
returnValue: <int, List<_i3.ExerciseBase>>{})
|
||||
as Map<int, List<_i3.ExerciseBase>>);
|
||||
returnValue: <int, List<_i3.ExerciseBase>>{}) as Map<int, List<_i3.ExerciseBase>>);
|
||||
@override
|
||||
List<_i3.ExerciseBase> get bases =>
|
||||
(super.noSuchMethod(Invocation.getter(#bases),
|
||||
returnValue: <_i3.ExerciseBase>[]) as List<_i3.ExerciseBase>);
|
||||
(super.noSuchMethod(Invocation.getter(#bases), returnValue: <_i3.ExerciseBase>[])
|
||||
as List<_i3.ExerciseBase>);
|
||||
@override
|
||||
List<_i4.ExerciseCategory> get categories =>
|
||||
(super.noSuchMethod(Invocation.getter(#categories),
|
||||
returnValue: <_i4.ExerciseCategory>[]) as List<_i4.ExerciseCategory>);
|
||||
(super.noSuchMethod(Invocation.getter(#categories), returnValue: <_i4.ExerciseCategory>[])
|
||||
as List<_i4.ExerciseCategory>);
|
||||
@override
|
||||
List<_i6.Muscle> get muscles =>
|
||||
(super.noSuchMethod(Invocation.getter(#muscles),
|
||||
returnValue: <_i6.Muscle>[]) as List<_i6.Muscle>);
|
||||
(super.noSuchMethod(Invocation.getter(#muscles), returnValue: <_i6.Muscle>[])
|
||||
as List<_i6.Muscle>);
|
||||
@override
|
||||
List<_i5.Equipment> get equipment =>
|
||||
(super.noSuchMethod(Invocation.getter(#equipment),
|
||||
returnValue: <_i5.Equipment>[]) as List<_i5.Equipment>);
|
||||
(super.noSuchMethod(Invocation.getter(#equipment), returnValue: <_i5.Equipment>[])
|
||||
as List<_i5.Equipment>);
|
||||
@override
|
||||
List<_i7.Language> get languages =>
|
||||
(super.noSuchMethod(Invocation.getter(#languages),
|
||||
returnValue: <_i7.Language>[]) as List<_i7.Language>);
|
||||
(super.noSuchMethod(Invocation.getter(#languages), returnValue: <_i7.Language>[])
|
||||
as List<_i7.Language>);
|
||||
@override
|
||||
bool get hasListeners =>
|
||||
(super.noSuchMethod(Invocation.getter(#hasListeners), returnValue: false)
|
||||
as bool);
|
||||
(super.noSuchMethod(Invocation.getter(#hasListeners), returnValue: false) as bool);
|
||||
@override
|
||||
_i9.Future<void> setFilters(_i8.Filters? newFilters) =>
|
||||
(super.noSuchMethod(Invocation.method(#setFilters, [newFilters]),
|
||||
returnValue: Future<void>.value(),
|
||||
returnValueForMissingStub: Future<void>.value()) as _i9.Future<void>);
|
||||
@override
|
||||
_i9.Future<void> findByFilters() =>
|
||||
(super.noSuchMethod(Invocation.method(#findByFilters, []),
|
||||
returnValue: Future<void>.value(),
|
||||
returnValueForMissingStub: Future<void>.value()) as _i9.Future<void>);
|
||||
_i9.Future<void> findByFilters() => (super.noSuchMethod(Invocation.method(#findByFilters, []),
|
||||
returnValue: Future<void>.value(),
|
||||
returnValueForMissingStub: Future<void>.value()) as _i9.Future<void>);
|
||||
@override
|
||||
void clear() => super.noSuchMethod(Invocation.method(#clear, []),
|
||||
returnValueForMissingStub: null);
|
||||
void clear() =>
|
||||
super.noSuchMethod(Invocation.method(#clear, []), returnValueForMissingStub: null);
|
||||
@override
|
||||
_i3.ExerciseBase findExerciseBaseById(int? id) =>
|
||||
(super.noSuchMethod(Invocation.method(#findExerciseBaseById, [id]),
|
||||
returnValue: _FakeExerciseBase_1()) as _i3.ExerciseBase);
|
||||
@override
|
||||
List<_i3.ExerciseBase> findExerciseBasesByVariationId(int? id,
|
||||
{int? exerciseIdToExclude, int? languageId}) =>
|
||||
{int? exerciseBaseIdToExclude, int? languageId}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(#findExerciseBasesByVariationId, [
|
||||
id
|
||||
], {
|
||||
#exerciseIdToExclude: exerciseIdToExclude,
|
||||
#languageId: languageId
|
||||
}),
|
||||
Invocation.method(#findExerciseBasesByVariationId, [id],
|
||||
{#exerciseIdToExclude: exerciseBaseIdToExclude, #languageId: languageId}),
|
||||
returnValue: <_i3.ExerciseBase>[]) as List<_i3.ExerciseBase>);
|
||||
@override
|
||||
_i4.ExerciseCategory findCategoryById(int? id) =>
|
||||
@@ -130,12 +120,12 @@ class MockExercisesProvider extends _i1.Mock implements _i8.ExercisesProvider {
|
||||
returnValue: _FakeEquipment_3()) as _i5.Equipment);
|
||||
@override
|
||||
_i6.Muscle findMuscleById(int? id) =>
|
||||
(super.noSuchMethod(Invocation.method(#findMuscleById, [id]),
|
||||
returnValue: _FakeMuscle_4()) as _i6.Muscle);
|
||||
(super.noSuchMethod(Invocation.method(#findMuscleById, [id]), returnValue: _FakeMuscle_4())
|
||||
as _i6.Muscle);
|
||||
@override
|
||||
_i7.Language findLanguageById(int? id) =>
|
||||
(super.noSuchMethod(Invocation.method(#findLanguageById, [id]),
|
||||
returnValue: _FakeLanguage_5()) as _i7.Language);
|
||||
_i7.Language findLanguageById(int? id) => (super
|
||||
.noSuchMethod(Invocation.method(#findLanguageById, [id]), returnValue: _FakeLanguage_5())
|
||||
as _i7.Language);
|
||||
@override
|
||||
_i9.Future<void> fetchAndSetCategories() =>
|
||||
(super.noSuchMethod(Invocation.method(#fetchAndSetCategories, []),
|
||||
@@ -163,15 +153,12 @@ class MockExercisesProvider extends _i1.Mock implements _i8.ExercisesProvider {
|
||||
returnValueForMissingStub: Future<void>.value()) as _i9.Future<void>);
|
||||
@override
|
||||
_i9.Future<_i3.ExerciseBase> fetchAndSetExerciseBase(int? exerciseBaseId) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(#fetchAndSetExerciseBase, [exerciseBaseId]),
|
||||
returnValue:
|
||||
Future<_i3.ExerciseBase>.value(_FakeExerciseBase_1()))
|
||||
(super.noSuchMethod(Invocation.method(#fetchAndSetExerciseBase, [exerciseBaseId]),
|
||||
returnValue: Future<_i3.ExerciseBase>.value(_FakeExerciseBase_1()))
|
||||
as _i9.Future<_i3.ExerciseBase>);
|
||||
@override
|
||||
_i3.ExerciseBase readExerciseBaseFromBaseInfo(dynamic baseData) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(#readExerciseBaseFromBaseInfo, [baseData]),
|
||||
(super.noSuchMethod(Invocation.method(#readExerciseBaseFromBaseInfo, [baseData]),
|
||||
returnValue: _FakeExerciseBase_1()) as _i3.ExerciseBase);
|
||||
@override
|
||||
_i9.Future<void> checkExerciseCacheVersion() =>
|
||||
@@ -184,26 +171,21 @@ class MockExercisesProvider extends _i1.Mock implements _i8.ExercisesProvider {
|
||||
returnValue: Future<void>.value(),
|
||||
returnValueForMissingStub: Future<void>.value()) as _i9.Future<void>);
|
||||
@override
|
||||
_i9.Future<List<_i3.ExerciseBase>> searchExercise(String? name,
|
||||
[String? languageCode = r'en']) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(#searchExercise, [name, languageCode]),
|
||||
returnValue:
|
||||
Future<List<_i3.ExerciseBase>>.value(<_i3.ExerciseBase>[]))
|
||||
_i9.Future<List<_i3.ExerciseBase>> searchExercise(String? name, [String? languageCode = r'en']) =>
|
||||
(super.noSuchMethod(Invocation.method(#searchExercise, [name, languageCode]),
|
||||
returnValue: Future<List<_i3.ExerciseBase>>.value(<_i3.ExerciseBase>[]))
|
||||
as _i9.Future<List<_i3.ExerciseBase>>);
|
||||
@override
|
||||
void addListener(_i10.VoidCallback? listener) =>
|
||||
super.noSuchMethod(Invocation.method(#addListener, [listener]),
|
||||
returnValueForMissingStub: null);
|
||||
void addListener(_i10.VoidCallback? listener) => super
|
||||
.noSuchMethod(Invocation.method(#addListener, [listener]), returnValueForMissingStub: null);
|
||||
@override
|
||||
void removeListener(_i10.VoidCallback? listener) =>
|
||||
super.noSuchMethod(Invocation.method(#removeListener, [listener]),
|
||||
returnValueForMissingStub: null);
|
||||
@override
|
||||
void dispose() => super.noSuchMethod(Invocation.method(#dispose, []),
|
||||
returnValueForMissingStub: null);
|
||||
void dispose() =>
|
||||
super.noSuchMethod(Invocation.method(#dispose, []), returnValueForMissingStub: null);
|
||||
@override
|
||||
void notifyListeners() =>
|
||||
super.noSuchMethod(Invocation.method(#notifyListeners, []),
|
||||
returnValueForMissingStub: null);
|
||||
super.noSuchMethod(Invocation.method(#notifyListeners, []), returnValueForMissingStub: null);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user