Commit Graph

428 Commits

Author SHA1 Message Date
Roland Geider
f32dec2b08 Merge branch 'master' into feature/offline-mode
# Conflicts:
#	lib/main.dart
#	lib/models/workouts/log.dart
#	lib/models/workouts/session.g.dart
#	lib/providers/exercises.dart
#	lib/providers/gym_state.g.dart
#	lib/providers/wger_base_riverpod.dart
#	lib/screens/dashboard.dart
#	lib/screens/home_tabs_screen.dart
#	lib/widgets/core/app_bar.dart
#	lib/widgets/core/settings.dart
#	lib/widgets/dashboard/calendar.dart
#	lib/widgets/dashboard/widgets/weight.dart
#	lib/widgets/routines/gym_mode/log_page.dart
#	lib/widgets/routines/gym_mode/summary.dart
#	lib/widgets/routines/logs/day_logs_container.dart
#	lib/widgets/routines/logs/exercises_expansion_card.dart
#	pubspec.lock
#	pubspec.yaml
#	test/core/settings_test.dart
#	test/core/settings_test.mocks.dart
#	test/exercises/contribute_exercise_test.mocks.dart
#	test/exercises/exercise_provider_db_test.dart
#	test/exercises/exercise_provider_test.dart
#	test/routine/gym_mode/gym_mode_test.mocks.dart
#	test/routine/routine_logs_screen_test.dart
#	test/routine/routine_logs_screen_test.mocks.dart
#	test/routine/routines_provider_test.mocks.dart
#	test/routine/routines_screen_test.mocks.dart
#	test/weight/weight_provider_test.mocks.dart
#	test/weight/weight_screen_test.mocks.dart
2026-01-19 13:16:55 +01:00
Roland Geider
ec153c51df i18n and other cleanup 2026-01-16 17:33:28 +01:00
Roland Geider
dce1b79683 Merge branch 'master' into feature/trophies
# Conflicts:
#	lib/providers/base_provider.dart
#	lib/providers/gym_state.dart
#	lib/providers/gym_state.g.dart
#	lib/widgets/routines/gym_mode/log_page.dart
#	test/core/settings_test.mocks.dart
#	test/exercises/contribute_exercise_image_test.mocks.dart
#	test/gallery/gallery_form_test.mocks.dart
#	test/gallery/gallery_screen_test.mocks.dart
#	test/measurements/measurement_provider_test.mocks.dart
#	test/nutrition/nutritional_plan_screen_test.mocks.dart
#	test/nutrition/nutritional_plans_screen_test.mocks.dart
#	test/routine/gym_mode/gym_mode_test.mocks.dart
#	test/routine/routine_screen_test.mocks.dart
#	test/routine/routines_provider_test.mocks.dart
#	test/routine/routines_screen_test.mocks.dart
#	test/user/provider_test.mocks.dart
#	test/weight/weight_provider_test.mocks.dart
#	test/widgets/routines/gym_mode/log_page_test.dart
2026-01-16 16:54:08 +01:00
Roland Geider
53dcbd8c6c Don't mark nullable fields as "late"
These will be null and we avoid LateInitializationError errors

See #1079
2026-01-16 15:26:38 +01:00
Roland Geider
fb6a673503 Simplify code by adding new log provider
This makes the logic for copying or modifying the logs much easier. Also,
there were some user reports that the old logic sometimes behaved erratically
and old values were sometimes reverted.
2026-01-12 21:40:11 +01:00
Roland Geider
536f18805b Load context data for PR trophies
This allows us to show for which sets the user achieved new PRs
2025-12-21 20:40:20 +01:00
Roland Geider
36a3e7ef4a Add overview page for the trophies 2025-12-20 21:25:18 +01:00
Roland Geider
b9fd061d33 Add dashboard widget and rework the provider 2025-12-20 02:06:08 +01:00
Roland Geider
5d39ae5088 Start adding support for trophies 2025-12-20 00:55:33 +01:00
Roland Geider
455c9a07b1 Merge branch 'master' into feature/powersync-test
# Conflicts:
#	lib/helpers/errors.dart
#	lib/models/workouts/log.dart
#	lib/models/workouts/session.dart
#	lib/providers/body_weight.dart
#	lib/providers/exercises.dart
#	lib/providers/gym_state.g.dart
#	lib/providers/routines.dart
#	lib/widgets/routines/forms/day.dart
#	lib/widgets/routines/forms/reps_unit.dart
#	lib/widgets/routines/forms/routine.dart
#	lib/widgets/routines/forms/session.dart
#	lib/widgets/routines/forms/slot.dart
#	lib/widgets/routines/forms/slot_entry.dart
#	lib/widgets/routines/gym_mode/log_page.dart
#	lib/widgets/routines/gym_mode/session_page.dart
#	pubspec.lock
#	test/exercises/exercise_provider_test.dart
#	test/routine/forms/session_form_test.dart
#	test/routine/gym_mode/session_page_test.dart
#	test/routine/routine_form_test.dart
2025-12-18 12:17:56 +01:00
Roland Geider
6a2158a397 Reload the session page in the gym mode
This makes sure that we have the current state and don't try to create a new session
which already exists
2025-12-18 11:59:26 +01:00
Roland Geider
d187324a25 Properly handle null values
Basically all the fields can be nullable, so we need to set them if
we want to avoid LateInitialisation errors.
2025-12-18 10:58:40 +01:00
Roland Geider
077dcaf742 Handle HTML errors in WgerHttpException
These need to be handled separately when the server encounters an error and
returns HTML instead of JSON.
2025-12-17 18:59:45 +01:00
Roland Geider
b75ee0dece Merge conflicts 2025-12-04 13:07:39 +01:00
Roland Geider
d8a5369519 Merge branch 'master' into feature/powersync-test
# Conflicts:
#	integration_test/3_gym_mode.dart
#	lib/database/exercises/exercise_database.g.dart
#	lib/models/exercises/category.g.dart
#	lib/models/exercises/exercise.g.dart
#	lib/models/exercises/exercise_api.freezed.dart
#	lib/models/exercises/exercise_api.g.dart
#	lib/models/exercises/translation.g.dart
#	lib/models/workouts/log.dart
#	lib/models/workouts/log.g.dart
#	lib/models/workouts/session.dart
#	lib/models/workouts/session_api.dart
#	lib/models/workouts/weight_unit.g.dart
#	lib/providers/gym_state.dart
#	lib/screens/gym_mode.dart
#	lib/widgets/dashboard/calendar.dart
#	lib/widgets/routines/gym_mode/gym_mode.dart
#	lib/widgets/routines/gym_mode/log_page.dart
#	lib/widgets/routines/gym_mode/session_page.dart
#	lib/widgets/routines/log.dart
#	pubspec.lock
#	pubspec.yaml
#	test/core/settings_test.mocks.dart
#	test/core/validators_test.mocks.dart
#	test/exercises/contribute_exercise_test.dart
#	test/exercises/contribute_exercise_test.mocks.dart
#	test/exercises/exercises_detail_widget_test.mocks.dart
#	test/nutrition/nutritional_plan_screen_test.mocks.dart
#	test/nutrition/nutritional_plans_screen_test.mocks.dart
#	test/providers/plate_calculator_test.dart
#	test/routine/forms/session_form_test.mocks.dart
#	test/routine/gym_mode/gym_mode_test.mocks.dart
#	test/routine/gym_mode/session_page_test.dart
#	test/routine/gym_mode_screen_test.dart
#	test/user/provider_test.mocks.dart
#	test/weight/weight_provider_test.mocks.dart
#	test/weight/weight_screen_test.mocks.dart
2025-12-04 12:48:40 +01:00
Roland Geider
06b32a2bd9 Better volume calculations, other cleanup 2025-12-04 12:14:57 +01:00
Roland Geider
aeb01a517b Refactor widgets used in logs
We should try to reuse as many as possible in the end-of-gym-mode logs and in
the routine log page
2025-11-27 15:08:06 +01:00
Roland Geider
ecd0b6c6b4 Add overview page when a workout has been completed 2025-11-26 20:17:02 +01:00
Roland Geider
eedc249cea Merge branch 'master' into feature/powersync-test
# Conflicts:
#	lib/models/body_weight/weight_entry.dart
#	lib/models/body_weight/weight_entry.g.dart
#	lib/models/workouts/log.dart
#	lib/models/workouts/log.g.dart
#	lib/models/workouts/session.g.dart
#	pubspec.lock
#	pubspec.yaml
#	test/exercises/contribute_exercise_image_test.mocks.dart
#	test/exercises/contribute_exercise_test.dart
#	test/exercises/contribute_exercise_test.mocks.dart
#	test/nutrition/nutritional_meal_form_test.mocks.dart
#	test/nutrition/nutritional_plan_form_test.mocks.dart
#	test/weight/weight_model_test.dart
#	test/weight/weight_provider_test.dart
#	test_data/body_weight.dart
2025-11-25 21:23:22 +01:00
Roland Geider
9f66815e10 Merge branch 'master' into feature/gym-mode
# Conflicts:
#	lib/widgets/routines/gym_mode/navigation.dart
#	pubspec.lock
#	test/exercises/contribute_exercise_image_test.mocks.dart
#	test/exercises/contribute_exercise_test.mocks.dart
#	test/nutrition/nutritional_meal_form_test.mocks.dart
#	test/nutrition/nutritional_plan_form_test.mocks.dart
2025-11-19 19:18:45 +01:00
Roland Geider
fc881c4929 Properly handle timezones
This should (hopefully 🤞) take care of problems saving entries with timezone
information.
2025-11-18 16:30:52 +01:00
Roland Geider
c26e3828f8 Allow adding additional exercises to the workout
While these are not real ad-hoc workouts, at least it's a first step
2025-11-15 23:44:42 +01:00
Roland Geider
f1f37d3e03 Allow swapping exercises in the gym mode 2025-11-15 01:32:59 +01:00
Roland Geider
ae6db6ee07 Move to riverpod three
Needed to downgrade build_runner and mockito for now
2025-11-11 13:22:18 +01:00
Roland Geider
49873d20bd Cleanup some of the models 2025-11-08 23:07:40 +01:00
Roland Geider
2132249682 Wrap the routines provider
This makes it easier to load the data from the powersync database
2025-11-07 15:10:04 +01:00
Roland Geider
72deeda4f7 Update session and log models 2025-11-04 16:15:37 +01:00
Roland Geider
120487682a Remove json serializable code for exercise models 2025-11-03 17:41:05 +01:00
Roland Geider
9040106939 Rework the base data providers, fix some tests 2025-11-03 15:40:37 +01:00
Roland Geider
c60cfbe347 Add tables for workout sessions 2025-10-26 18:18:22 +01:00
Roland Geider
2aa120602b Remove the json serializable decorators, not needed anymore 2025-10-26 00:23:38 +02:00
Roland Geider
7969376dce Test how feasible it is to load exercises via powersync as well 2025-10-24 01:21:13 +02:00
Roland Geider
017cccab18 Start adding drift and using riverpod 2025-10-22 20:49:38 +02:00
Roland Geider
76f894ab33 Start actually interacting with powersync 2025-10-21 15:04:53 +02:00
Roland Geider
4d2083f05a Update body weight provider to use riverpod 2025-10-21 12:04:59 +02:00
Roland Geider
c551b176fb Merge pull request #950 from wger-project/feature/day-type
Set day and set types
2025-10-17 00:13:50 +02:00
Roland Geider
b0d1bce9aa Consistently show the day and type name 2025-10-16 23:48:15 +02:00
Roland Geider
b4c77bf238 Move plate calculator visibility logic to the exercise itself 2025-10-16 21:59:56 +02:00
Roland Geider
1f6d22d85a Tweak a bit how and when the types are shown 2025-10-09 23:11:10 +02:00
Roland Geider
39b503e03a Format files as in master 2025-10-09 17:54:24 +02:00
Roland Geider
85ba00b654 Merge branch 'master' into feature/day-type
# Conflicts:
#	lib/models/workouts/day.g.dart
#	lib/models/workouts/day_data.g.dart
#	lib/models/workouts/set_config_data.g.dart
#	lib/models/workouts/slot_data.g.dart
#	lib/models/workouts/slot_entry.g.dart
#	lib/models/workouts/weight_unit.g.dart
#	test/auth/auth_screen_test.mocks.dart
#	test/core/settings_test.mocks.dart
#	test/exercises/contribute_exercise_test.mocks.dart
#	test/gallery/gallery_form_test.mocks.dart
#	test/gallery/gallery_screen_test.mocks.dart
#	test/measurements/measurement_categories_screen_test.mocks.dart
#	test/measurements/measurement_provider_test.mocks.dart
#	test/nutrition/nutritional_meal_form_test.mocks.dart
#	test/nutrition/nutritional_plan_form_test.mocks.dart
#	test/nutrition/nutritional_plan_screen_test.mocks.dart
#	test/nutrition/nutritional_plans_screen_test.mocks.dart
#	test/other/base_provider_test.mocks.dart
#	test/routine/day_form_test.mocks.dart
#	test/routine/gym_mode_screen_test.mocks.dart
#	test/routine/gym_mode_session_screen_test.mocks.dart
#	test/routine/repetition_unit_form_widget_test.mocks.dart
#	test/routine/routine_edit_screen_test.mocks.dart
#	test/routine/routine_edit_test.mocks.dart
#	test/routine/routine_form_test.mocks.dart
#	test/routine/routine_logs_screen_test.mocks.dart
#	test/routine/routine_screen_test.mocks.dart
#	test/routine/routines_provider_test.mocks.dart
#	test/routine/routines_screen_test.mocks.dart
#	test/routine/slot_entry_form_test.mocks.dart
#	test/routine/weight_unit_form_widget_test.mocks.dart
#	test/user/provider_test.mocks.dart
#	test/weight/weight_provider_test.mocks.dart
#	test/weight/weight_screen_test.mocks.dart
2025-10-09 17:39:39 +02:00
Roland Geider
93a11a16e4 Recreate generated files and reformat the repo
Seems the default dart formatting rules changed recently, and this was causing
huge diffs in branches
2025-10-09 17:39:02 +02:00
Roland Geider
6146201531 Allow setting the slot entry type as well 2025-10-09 17:28:23 +02:00
Roland Geider
4b9afa5c98 Actually send the correct image fields to the server 2025-10-08 14:34:23 +02:00
Roland Geider
c63057fe35 Reuse AddExerciseTextArea in the image form 2025-10-08 14:05:50 +02:00
Roland Geider
949ad02ab6 Add generated files
It seems a recent update changes the way dart code is formatted
2025-10-08 12:45:37 +02:00
Roland Geider
1a78011a7d Refactor image handling in the exercise submission process
Now the images are kept in a single list, instead of having two for
the files themselves and the metadata.
2025-10-08 12:45:37 +02:00
Roland Geider
fa7f670e9f Some light cleanup 2025-10-06 12:31:12 +02:00
Roland Geider
39be6a3edf Allow setting the day type in the edit form 2025-10-06 11:36:27 +02:00
Roland Geider
a10b7eb9f7 Pass parameter to create new variation and link exercises 2025-09-28 15:03:28 +02:00