Skip to content

Commit

Permalink
Merge ebdd86f into 18c0791
Browse files Browse the repository at this point in the history
  • Loading branch information
wasswa-derick committed Aug 9, 2018
2 parents 18c0791 + ebdd86f commit efedb00
Show file tree
Hide file tree
Showing 4 changed files with 65 additions and 1 deletion.
36 changes: 36 additions & 0 deletions wger/exercises/api/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,3 +71,39 @@ class MuscleSerializer(serializers.ModelSerializer):
'''
class Meta:
model = Muscle


class ExerciseAllInfoSerializer(serializers.ModelSerializer):
'''
Exercise All Information serializer
'''
exerciseimage_set = ExerciseImageSerializer(read_only=True, many=True)
muscles = MuscleSerializer(read_only=True, many=True)
muscles_secondary = MuscleSerializer(read_only=True, many=True)
category = ExerciseCategorySerializer(read_only=True)
equipment = EquipmentSerializer(read_only=True, many=True)
license = serializers.StringRelatedField(read_only=True)
language = serializers.StringRelatedField(read_only=True)
exercisecomment_set = serializers.StringRelatedField(read_only=True, many=True)
exercisecomment_set = serializers.StringRelatedField(read_only=True, many=True)

class Meta:
model = Exercise
fields = (
'id',
'creation_date',
'name',
'name_original',
'uuid',
'description',
'language',
'status',
'license',
'license_author',
'category',
'exerciseimage_set',
'muscles',
'muscles_secondary',
'equipment',
'exercisecomment_set'
)
19 changes: 18 additions & 1 deletion wger/exercises/api/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@
ExerciseImageSerializer,
ExerciseCategorySerializer,
EquipmentSerializer,
ExerciseCommentSerializer
ExerciseCommentSerializer,
ExerciseAllInfoSerializer
)
from wger.exercises.models import (
Exercise,
Expand Down Expand Up @@ -77,6 +78,22 @@ def perform_create(self, serializer):
obj.save()


class ExerciseAllInforViewSet(viewsets.ReadOnlyModelViewSet):
'''
API endpoint for all exercise objects information
'''
queryset = Exercise.objects.all()
serializer_class = ExerciseSerializer
permission_classes = (IsAuthenticatedOrReadOnly, )
ordering_fields = '__all__'

@detail_route(methods=["GET"])
def info(self, request, pk):
infos = Exercise.objects.filter(pk=pk)
serializer = ExerciseAllInfoSerializer(infos, many=True)
return Response(serializer.data, status=200)


@api_view(['GET'])
def search(request):
'''
Expand Down
7 changes: 7 additions & 0 deletions wger/exercises/tests/test_exercise.py
Original file line number Diff line number Diff line change
Expand Up @@ -401,6 +401,13 @@ def test_search_exercise_logged_in(self):
self.user_login('test')
self.search_exercise()

def test_showing_all_exercise_info(self):
'''
Tests the exercises details page
'''
response = self.client.get('/api/v2/exercises/1/info/', format=json)
self.assertEqual(response.status_code, 200)


class DeleteExercisesTestCase(WorkoutManagerDeleteTestCase):
'''
Expand Down
4 changes: 4 additions & 0 deletions wger/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,10 @@
r'exercise',
exercises_api_views.ExerciseViewSet,
base_name='exercise')
router.register(
r'exercises',
exercises_api_views.ExerciseAllInforViewSet,
base_name='exercises')
router.register(
r'equipment',
exercises_api_views.EquipmentViewSet,
Expand Down

0 comments on commit efedb00

Please sign in to comment.