diff --git a/db.sqlite3 b/db.sqlite3 index ea84a6e..a19a66f 100644 Binary files a/db.sqlite3 and b/db.sqlite3 differ diff --git a/workout/admin.py b/workout/admin.py index 92a26b1..ccfdcd8 100644 --- a/workout/admin.py +++ b/workout/admin.py @@ -22,4 +22,7 @@ class WorkoutExerciseAdmin(admin.ModelAdmin): @admin.register(CompletedWorkout) class CompletedWorkoutAdmin(admin.ModelAdmin): list_display = ("registered_user", "workout", "workout_start_time", "difficulty", "notes", "total_time", "created_at",) - \ No newline at end of file + +@admin.register(PlannedWorkout) +class PlannedWorkoutAdmin(admin.ModelAdmin): + list_display = ("registered_user", "workout", "on_date",) \ No newline at end of file diff --git a/workout/migrations/0009_alter_plannedworkout_on_date.py b/workout/migrations/0009_alter_plannedworkout_on_date.py new file mode 100644 index 0000000..9c392d5 --- /dev/null +++ b/workout/migrations/0009_alter_plannedworkout_on_date.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.2 on 2023-07-02 04:15 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('workout', '0008_plannedworkout'), + ] + + operations = [ + migrations.AlterField( + model_name='plannedworkout', + name='on_date', + field=models.DateTimeField(), + ), + ] diff --git a/workout/migrations/0010_alter_plannedworkout_on_date.py b/workout/migrations/0010_alter_plannedworkout_on_date.py new file mode 100644 index 0000000..b69e1e8 --- /dev/null +++ b/workout/migrations/0010_alter_plannedworkout_on_date.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.2 on 2023-07-02 04:16 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('workout', '0009_alter_plannedworkout_on_date'), + ] + + operations = [ + migrations.AlterField( + model_name='plannedworkout', + name='on_date', + field=models.DateField(), + ), + ] diff --git a/workout/models.py b/workout/models.py index a850341..d56826c 100644 --- a/workout/models.py +++ b/workout/models.py @@ -79,7 +79,7 @@ class CompletedWorkout(models.Model): class PlannedWorkout(models.Model): created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) - on_date = models.DateTimeField(auto_now=True) + on_date = models.DateField(auto_now=False,null=False, blank=False) workout = models.ForeignKey( Workout, on_delete=models.CASCADE, diff --git a/workout/serializers.py b/workout/serializers.py index 6be783e..aef862d 100644 --- a/workout/serializers.py +++ b/workout/serializers.py @@ -72,4 +72,10 @@ class GetCompleteWorkoutSerializer(serializers.ModelSerializer): class POSTCompleteWorkoutSerializer(serializers.ModelSerializer): class Meta: model = Workout - exclude = ['registered_user'] \ No newline at end of file + exclude = ['registered_user'] + +class PlannedWorkoutSerializer(serializers.ModelSerializer): + class Meta: + model = PlannedWorkout + exclude = ['registered_user'] + depth = 1 \ No newline at end of file diff --git a/workout/urls.py b/workout/urls.py index 1aac951..889cf71 100644 --- a/workout/urls.py +++ b/workout/urls.py @@ -8,4 +8,5 @@ urlpatterns = [ path('complete/', views.complete_workout, name='user complete workout'), path('completed/', views.workouts_completed_by_logged_in_user, name='user completed workouts'), path('create/', views.add_workout, name='create new workout'), + path('planned_workouts/', views.workouts_planned_by_logged_in_user, name='planned workout for user'), ] \ No newline at end of file diff --git a/workout/views.py b/workout/views.py index 96e93c7..37e4b7a 100644 --- a/workout/views.py +++ b/workout/views.py @@ -90,4 +90,13 @@ def add_workout(request): completed_workout.save() return Response(serializer.data, status=status.HTTP_201_CREATED) - return Response(serializer.errors, status=status.HTTP_500_INTERNAL_SERVER_ERROR) \ No newline at end of file + return Response(serializer.errors, status=status.HTTP_500_INTERNAL_SERVER_ERROR) + +@api_view(['GET']) +@authentication_classes([TokenAuthentication]) +@permission_classes([IsAuthenticated]) +def workouts_planned_by_logged_in_user(request): + registered_user = RegisteredUser.objects.get(user=request.user) + workouts = PlannedWorkout.objects.filter(registered_user=registered_user) + serializer = PlannedWorkoutSerializer(workouts, many=True) + return Response(serializer.data, status=status.HTTP_201_CREATED) \ No newline at end of file