This commit is contained in:
Trey t
2023-07-27 19:07:35 -05:00
parent 6d68c59ac3
commit 67372cc8ab
9 changed files with 84 additions and 8 deletions

View File

@@ -6,7 +6,7 @@ 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.serializers import SupersetSerializer, SupersetExerciseSerializer
from superset.models import Superset, SupersetExercise
class WorkoutExerciseSerializer(serializers.ModelSerializer):
@@ -79,12 +79,23 @@ class WorkoutDetailSerializer(serializers.ModelSerializer):
male_videos = serializers.SerializerMethodField()
female_videos = serializers.SerializerMethodField()
both_videos = serializers.SerializerMethodField()
all_superset_exercise = serializers.SerializerMethodField()
class Meta:
model = Workout
fields = ('id', 'name', 'description', 'supersets', 'registered_user', 'male_videos', 'female_videos', 'both_videos', 'estimated_time', )
fields = ('id', 'name', 'description', 'supersets', 'registered_user', 'male_videos', 'female_videos', 'both_videos', 'estimated_time', 'all_superset_exercise', )
depth = 1
def get_all_superset_exercise(self, obj):
all_superset_exercise = []
supersets = Superset.objects.filter(workout=obj).order_by('order')
for superset in supersets:
supersetExercises = SupersetExercise.objects.filter(superset=superset).order_by('order')
for x in range(0, superset.rounds):
all_superset_exercise += supersetExercises
data = SupersetExerciseSerializer(all_superset_exercise, many=True).data
return data
def get_supersets(self, obj):
objs = Superset.objects.filter(workout=obj).order_by('order')
data = SupersetSerializer(objs, many=True).data

View File

@@ -16,13 +16,20 @@ from django.shortcuts import get_object_or_404
from datetime import datetime
import json
import os
from django.core.cache import cache
@api_view(['GET'])
def all_workouts(request):
if 'all_workouts' in cache:
data = cache.get('all_workouts')
return Response(data=data, status=status.HTTP_200_OK)
users = Workout.objects.all()
serializer = WorkoutSerializer(users, many=True)
return Response(data=serializer.data, status=status.HTTP_200_OK)
data = serializer.data
cache.set('all_workouts', data)
return Response(data=data, status=status.HTTP_200_OK)
@api_view(['GET'])
@@ -121,6 +128,8 @@ def add_workout(request):
workout.estimated_time = workout_total_time
workout.save()
cache.delete('all_workouts')
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
@@ -229,5 +238,7 @@ def add_from_files(request):
workout_obj.estimated_time = workout_total_time
workout_obj.save()
cache.delete('all_workouts')
return Response(status=status.HTTP_200_OK)