From d21a547e4bafb2f74d6f73b121dcc606c5f55828 Mon Sep 17 00:00:00 2001 From: Trey t Date: Thu, 15 Jun 2023 23:44:47 -0500 Subject: [PATCH] WIP --- db.sqlite3 | Bin 2007040 -> 2007040 bytes equipment/serializers.py | 8 +++++++- equipment/urls.py | 7 +++++++ equipment/views.py | 18 ++++++++++++++++++ exercise/serializers.py | 16 ++++++++++++---- muscle/serializers.py | 8 +++++++- muscle/urls.py | 7 +++++++ muscle/views.py | 18 ++++++++++++++++++ werkout_api/urls.py | 4 +++- workout/serializers.py | 5 +++-- 10 files changed, 82 insertions(+), 9 deletions(-) create mode 100644 equipment/urls.py create mode 100644 muscle/urls.py diff --git a/db.sqlite3 b/db.sqlite3 index ca929070b2547fc3dddac869a6b2df8445f32e13..bf6677dc930ea73c4eadafac8873416c9b6a0eb1 100644 GIT binary patch delta 545 zcmZoTP}OjtYJxQ5$%!(~j3+lHOxI)NZT_Lx{zH#(`wu-P&V$?x3=B;C0Sx>B{3|vK z7O3+xR!nr1VGmoo@c0N!8R$!NAbU#KOwZT+h_Z)WF!HBqP5>p*+7RJHNCf zI5D>%CsiRF%u_H7V+ConWE7pQaGyzR`t1KqygD%b1{Qi|76wM<=1{E)Y57G8r3D44 zMG8szDV0nmsl_EN%q=V}tSxLU>@6HEoGn}}+$}sUye)h!{4D}o1X%(YCv9g95Hw|E z;p*UOoLVC*u{|hI@H*pk!(>sz?Qy|^=`r@cQ) zaC?80Q0Y~cGIkq=={yc1e%r$ggl92LFPO;60`$5E%k+k)%q$#&ysXTeOoBYyJ}T*;^k!E z*Jezdu9z;YJpJr?7H%7t)Z*l#%z~24{5+-D+S*t?BLgF2T>~>+Ls+OlLe8@7w33j?tT5Q_q_7!ZpCu>=rH0nF{~_ delta 326 zcmZoTP}OjtYJxQ5@rg3djK?=7OxI)NZvLUy{zH#(`wu-P&V$_i`xuz`4H)1pYOuW2C7Dh%)C8@~!aFo%c-X}l_;>Ng@-y=-h$1&3=Gg45;`UTf11gFc6CXu_zFW0kJp`O8~JX5K95EG!V-GvFvuSbh%d+ E0Fp*uz5oCK diff --git a/equipment/serializers.py b/equipment/serializers.py index ce57302..caa50f5 100644 --- a/equipment/serializers.py +++ b/equipment/serializers.py @@ -1,7 +1,13 @@ from rest_framework import serializers -from models import * +from .models import * class EquipmentSerializer(serializers.ModelSerializer): class Meta: model = Equipment + fields = '__all__' + + +class WorkoutEquipmentSerializer(serializers.ModelSerializer): + class Meta: + model = WorkoutEquipment fields = '__all__' \ No newline at end of file diff --git a/equipment/urls.py b/equipment/urls.py new file mode 100644 index 0000000..311ba44 --- /dev/null +++ b/equipment/urls.py @@ -0,0 +1,7 @@ +from django.urls import path +from . import views + + +urlpatterns = [ + path('all/', views.all_equipment, name='all equipment'), +] \ No newline at end of file diff --git a/equipment/views.py b/equipment/views.py index 91ea44a..4a19ac7 100644 --- a/equipment/views.py +++ b/equipment/views.py @@ -1,3 +1,21 @@ from django.shortcuts import render +from .models import * +from .serializers import * + +from django.shortcuts import render +from rest_framework.decorators import api_view +from rest_framework.response import Response +from rest_framework import status +from django.contrib.auth.models import User +from django.contrib.auth import authenticate +from rest_framework.authentication import TokenAuthentication +from rest_framework.permissions import IsAuthenticated +from rest_framework.decorators import authentication_classes +from rest_framework.decorators import permission_classes # Create your views here. +@api_view(['GET']) +def all_equipment(request): + users = Equipment.objects.all() + serializer = EquipmentSerializer(users, many=True) + return Response(data=serializer.data, status=status.HTTP_200_OK) \ No newline at end of file diff --git a/exercise/serializers.py b/exercise/serializers.py index 765c7fb..3f09e51 100644 --- a/exercise/serializers.py +++ b/exercise/serializers.py @@ -3,6 +3,12 @@ from .models import * from muscle.models import ExerciseMuscle from equipment.models import WorkoutEquipment from muscle.serializers import ExerciseMuscleSerializer +from equipment.serializers import WorkoutEquipmentSerializer + +class ExerciseMuscleSerializer(serializers.ModelSerializer): + class Meta: + model = ExerciseMuscle + fields = '__all__' class ExerciseSerializer(serializers.ModelSerializer): muscles = serializers.SerializerMethodField() @@ -15,9 +21,11 @@ class ExerciseSerializer(serializers.ModelSerializer): fields = '__all__' def get_muscles(self, obj): - objs = ExerciseMuscle.objects.filter(exercise=obj).values_list('muscle__name', flat=True) - return objs + objs = ExerciseMuscle.objects.filter(exercise=obj) + data = ExerciseMuscleSerializer(objs, many=True).data + return data def get_equipment(self, obj): - objs = WorkoutEquipment.objects.filter(exercise=obj).values_list('equipment__name', flat=True) - return objs \ No newline at end of file + objs = WorkoutEquipment.objects.filter(exercise=obj) + data = WorkoutEquipmentSerializer(objs, many=True).data + return data \ No newline at end of file diff --git a/muscle/serializers.py b/muscle/serializers.py index c0eb672..ae2db3b 100644 --- a/muscle/serializers.py +++ b/muscle/serializers.py @@ -1,5 +1,11 @@ from rest_framework import serializers -from .models import ExerciseMuscle +from .models import * + + +class MuscleSerializer(serializers.ModelSerializer): + class Meta: + model = Muscle + fields = '__all__' class ExerciseMuscleSerializer(serializers.ModelSerializer): class Meta: diff --git a/muscle/urls.py b/muscle/urls.py new file mode 100644 index 0000000..d66acef --- /dev/null +++ b/muscle/urls.py @@ -0,0 +1,7 @@ +from django.urls import path +from . import views + + +urlpatterns = [ + path('all/', views.all_muscles, name='all muscles'), +] \ No newline at end of file diff --git a/muscle/views.py b/muscle/views.py index 91ea44a..ff9f9db 100644 --- a/muscle/views.py +++ b/muscle/views.py @@ -1,3 +1,21 @@ from django.shortcuts import render +from .models import * +from .serializers import * + +from django.shortcuts import render +from rest_framework.decorators import api_view +from rest_framework.response import Response +from rest_framework import status +from django.contrib.auth.models import User +from django.contrib.auth import authenticate +from rest_framework.authentication import TokenAuthentication +from rest_framework.permissions import IsAuthenticated +from rest_framework.decorators import authentication_classes +from rest_framework.decorators import permission_classes # Create your views here. +@api_view(['GET']) +def all_muscles(request): + users = Muscle.objects.all() + serializer = MuscleSerializer(users, many=True) + return Response(data=serializer.data, status=status.HTTP_200_OK) \ No newline at end of file diff --git a/werkout_api/urls.py b/werkout_api/urls.py index ad4547c..32fdbdc 100644 --- a/werkout_api/urls.py +++ b/werkout_api/urls.py @@ -8,7 +8,9 @@ urlpatterns = [ path('workout/', include('workout.urls')), path('exercise/', include('exercise.urls')), - path('scripts/', include('scripts.urls')), + path('muscle/', include('muscle.urls')), + path('equipment/', include('equipment.urls')), + # path('scripts/', include('scripts.urls')), ] + static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT) diff --git a/workout/serializers.py b/workout/serializers.py index e3f90bb..fcad271 100644 --- a/workout/serializers.py +++ b/workout/serializers.py @@ -36,6 +36,7 @@ class WorkoutSerializer(serializers.ModelSerializer): class Meta: model = Workout fields = '__all__' + depth = 1 class WorkoutDetailSerializer(serializers.ModelSerializer): exercises = serializers.SerializerMethodField() @@ -52,8 +53,8 @@ class WorkoutDetailSerializer(serializers.ModelSerializer): return data def get_registered_user(self, obj): - objs = RegisteredUser.objects.filter(pk=obj.registered_user.pk) - data = GetRegisteredUserSerializer(objs, many=True).data + objs = RegisteredUser.objects.get(pk=obj.registered_user.pk) + data = GetRegisteredUserSerializer(objs, many=False).data return data class GetCompleteWorkoutSerializer(serializers.ModelSerializer):