Exemple #1
0
 def destroy(self, request, pk):
     try:
         exercise = Exercise.objects.get(name=pk)
         serializer = ExerciseSerializer(exercise)
         exercise.delete()
         if serializer.is_valid():
             return Response(serializer.data,
                             status=status.HTTP_202_ACCEPTED)
         else:
             return Response(status=status.HTTP_400_BAD_REQUEST)
     except Exercise.DoesNotExist:
         return Response(status=status.HTTP_404_NOT_FOUND)
Exemple #2
0
 def partial_update(self, request, pk):
     try:
         data = JSONParser().parse(request)
         exercise = Exercise.objects.get(name=pk)
         serializer = ExerciseSerializer(exercise, data=data, partial=True)
         if serializer.is_valid():
             serializer.save()
             return Response(serializer.data,
                             status=status.HTTP_202_ACCEPTED)
         else:
             return Response(serializer.errors,
                             status=status.HTTP_400_BAD_REQUEST)
     except Exercise.DoesNotExist:
         return Response(status=status.HTTP_404_NOT_FOUND)
Exemple #3
0
class ProfileSerializer(serializers.ModelSerializer):
    user = UserSerializer(required=True)
    exercises = ExerciseSerializer(many=True)

    class Meta:
        model = Profile
        fields = ['id', 'user', 'exercises']
Exemple #4
0
 def list(self, request):
     queryset = Exercise.objects.all()
     name = request.query_params.get('name')
     type = request.query_params.get('type')
     age = request.query_params.get('age')
     difficulty = request.query_params.get('difficulty')
     muscle = request.query_params.get('muscle')
     categories = request.query_params.get('categories')
     if name is not None:
         queryset = queryset.filter(name=name)
     elif type is not None:
         queryset = queryset.filter(type=type)
     elif age is not None:
         queryset = queryset.filter(age=age)
     elif difficulty is not None:
         queryset = queryset.filter(difficulty=difficulty)
     elif muscle is not None:
         queryset = queryset.filter(muscle=muscle)
     elif categories is not None:
         queryset = queryset.filter(categories=categories)
     if queryset.count() > 0:
         serializer = ExerciseSerializer(queryset, many=True)
         return Response(serializer.data, status=status.HTTP_200_OK)
     else:
         return Response(status=status.HTTP_404_NOT_FOUND)
Exemple #5
0
class TopicSerializer(serializers.ModelSerializer):
    exercises = ExerciseSerializer(many=True)
    lessons = LessonSerializer(many=True)
    subject_title = serializers.CharField()
    adminnote_notes = AdminNoteSerializer(many=True)
    class Meta:
        model=Topic
        fields='__all__'
Exemple #6
0
class ExerciseRecordNoUserSerializer(serializers.ModelSerializer):
    exercise = ExerciseSerializer()
    answer = UserAnswerRecordSerializer(many=True)

    class Meta:
        model = ExerciseRecord
        fields = ('exercise', 'answer', 'score')
        read_only_fields = ('exercise', 'score')
Exemple #7
0
class ExerciseRecordSerializer(serializers.ModelSerializer):
    exercise = ExerciseSerializer()
    user = UserAccountSerializer()

    class Meta:
        model = ExerciseRecord
        fields = ('exercise', 'user', 'score')
        read_only_fields = ('exercise', 'user')
Exemple #8
0
    def get(self, request, grade_id, skill_id, format=None):
        skills = Skill.objects.filter(grade__id=grade_id)
        skill = skills.get(id_in_grade=skill_id)
        exercises = Exercise.objects.filter(skill=skill).all()

        exercise = exercises[randint(0, exercises.count() - 1)]

        serializer = ExerciseSerializer(exercise)

        return Response(serializer.data)
Exemple #9
0
class RoutineSerializer(serializers.ModelSerializer):
    exercises = ExerciseSerializer(read_only=True, many=True)

    class Meta:
        model = Routine
        # fields = '__all__'
        fields = ("id", "name", "description", "exercises", "created_at", "author")
        extra_kwargs = {'exercises': {'required': False}}

    # def create(self, validated_data):
    #     profile_data = validated_data.pop('profile')
    #     user = User.objects.create(**validated_data)
    #     Profile.objects.create(user=user, **profile_data)
    #     return user
Exemple #10
0
class WorkoutSerializer(OwnedMultiAliasResourceSerializer):
    exercises = ExerciseSerializer(many=True)

    class Meta:
        model = Workout
        fields = extend_fields(OwnedMultiAliasResourceSerializer, ['exercises', 'time', 'is_complete'])
        extra_kwargs = {
            'url': {'view_name': 'workout-detail', 'lookup_field': 'pk'}
        }

    def update(self, instance, validated_data):
        instance.name = validated_data.get('name', instance.name)
        instance.snames = validated_data.get('snames', instance.snames)
        instance.time = validated_data.get('time', instance.time)
        instance.is_complete = validated_data.get('is_complete', instance.is_complete)
        for exercise_data in validated_data.get('exercises', []):
            _update_exercise(instance[exercise_data['order']], exercise_data)
        instance.save()
        return instance
Exemple #11
0
 def get_exercises(self, obj):
     return ExerciseSerializer(instance=obj.exercise_set, many=True).data