50 lines
1.6 KiB
Python
50 lines
1.6 KiB
Python
from rest_framework import serializers
|
|
from .models import *
|
|
# from module.serializers import SlimModuleSerializer
|
|
|
|
class WorkoutExerciseSerializer(serializers.ModelSerializer):
|
|
# module = SlimModuleSerializer(read_only=True)
|
|
|
|
class Meta:
|
|
model = WorkoutExercise
|
|
fields = ('workout', 'module','weight','reps')
|
|
|
|
class CompleteWorkoutSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = CompletedWorkout
|
|
exclude = ['registered_user']
|
|
|
|
def create(self, validated_data):
|
|
registered_user_id = self.context.get("registered_user")
|
|
registered_user = RegisteredUser.objects.get(id=registered_user_id)
|
|
completed_workout = CompletedWorkout.objects.create(
|
|
registered_user=registered_user,
|
|
workout=validated_data['workout'],
|
|
difficulty=validated_data['difficulty']
|
|
)
|
|
completed_workout.save()
|
|
return completed_workout
|
|
|
|
class WorkoutSerializer(serializers.ModelSerializer):
|
|
exercise = WorkoutExerciseSerializer(source='workout_exercise_workout', many=True)
|
|
|
|
class Meta:
|
|
model = Workout
|
|
fields = '__all__'
|
|
|
|
class WorkoutDetailSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Workout
|
|
fields = '__all__'
|
|
|
|
class GetCompleteWorkoutSerializer(serializers.ModelSerializer):
|
|
workout = WorkoutSerializer(many=False, read_only=True)
|
|
|
|
class Meta:
|
|
model = CompletedWorkout
|
|
exclude = ['registered_user']
|
|
|
|
class POSTCompleteWorkoutSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Workout
|
|
exclude = ['registered_user'] |