WIP
This commit is contained in:
@@ -6,6 +6,8 @@ from muscle.models import ExerciseMuscle
|
||||
from equipment.models import WorkoutEquipment
|
||||
from video.models import Video
|
||||
from video.serializers import VideoSerializer
|
||||
from superset.serializers import SupersetSerializer
|
||||
from superset.models import Superset, SupersetExercise
|
||||
|
||||
class WorkoutExerciseSerializer(serializers.ModelSerializer):
|
||||
exercise = ExerciseSerializer(read_only=True)
|
||||
@@ -49,20 +51,30 @@ class WorkoutSerializer(serializers.ModelSerializer):
|
||||
# depth = 1
|
||||
|
||||
def get_muscles(self, obj):
|
||||
exercises = WorkoutExercise.objects.filter(workout=obj).values_list('exercise__id')
|
||||
muscles_names = ExerciseMuscle.objects.filter(exercise__id__in=exercises).values_list('muscle__name', flat=True)
|
||||
superset_ids = Superset.objects.filter(workout=obj).values_list('id')
|
||||
exercise_ids = SupersetExercise.objects.filter(superset__id__in=superset_ids).values_list('exercise__id')
|
||||
muscles_names = ExerciseMuscle.objects.filter(exercise__id__in=exercise_ids).values_list('muscle__name', flat=True)
|
||||
return list(set(muscles_names))
|
||||
|
||||
# muscles_names = ExerciseMuscle.objects.filter(exercise__id__in=exercises).values_list('muscle__name', flat=True)
|
||||
# return list(set(muscles_names))
|
||||
|
||||
def get_equipment(self, obj):
|
||||
exercises = WorkoutExercise.objects.filter(workout=obj).values_list('exercise__id')
|
||||
equipment_names = WorkoutEquipment.objects.filter(exercise__id__in=exercises).values_list('equipment__name', flat=True)
|
||||
superset_ids = Superset.objects.filter(workout=obj).values_list('id')
|
||||
exercise_ids = SupersetExercise.objects.filter(superset__id__in=superset_ids).values_list('exercise__id')
|
||||
equipment_names = WorkoutEquipment.objects.filter(exercise__id__in=exercise_ids).values_list('equipment__name', flat=True)
|
||||
return list(set(equipment_names))
|
||||
|
||||
def get_exercise_count(self, obj):
|
||||
return WorkoutExercise.objects.filter(workout=obj).count()
|
||||
returnValue = 0
|
||||
supersets = Superset.objects.filter(workout=obj)
|
||||
for superset in supersets:
|
||||
exercise_count = SupersetExercise.objects.filter(superset=superset).count()
|
||||
returnValue += (superset.rounds * exercise_count)
|
||||
return returnValue
|
||||
|
||||
class WorkoutDetailSerializer(serializers.ModelSerializer):
|
||||
exercises = serializers.SerializerMethodField()
|
||||
supersets = serializers.SerializerMethodField()
|
||||
registered_user = serializers.SerializerMethodField()
|
||||
male_videos = serializers.SerializerMethodField()
|
||||
female_videos = serializers.SerializerMethodField()
|
||||
@@ -70,12 +82,12 @@ class WorkoutDetailSerializer(serializers.ModelSerializer):
|
||||
|
||||
class Meta:
|
||||
model = Workout
|
||||
fields = ('id', 'name', 'description', 'exercises', 'registered_user', 'male_videos', 'female_videos', 'both_videos')
|
||||
fields = ('id', 'name', 'description', 'supersets', 'registered_user', 'male_videos', 'female_videos', 'both_videos')
|
||||
depth = 1
|
||||
|
||||
def get_exercises(self, obj):
|
||||
objs = WorkoutExercise.objects.filter(workout=obj).order_by('created_at')
|
||||
data = WorkoutExerciseSerializer(objs, many=True).data
|
||||
def get_supersets(self, obj):
|
||||
objs = Superset.objects.filter(workout=obj).order_by('order')
|
||||
data = SupersetSerializer(objs, many=True).data
|
||||
return data
|
||||
|
||||
def get_registered_user(self, obj):
|
||||
|
||||
Reference in New Issue
Block a user