@action(detail=False, methods=['POST'], url_path='admin/create_lmssystem') def create_lmssystem(self, request, *args, **kwargs): serializer = AdminLMSSystemSerializer(data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) @action(detail=False, methods=['get'], url_path='admin/get_lmssystem') def get_lmssystem(self, request, *args, **kwargs): lmssystem = LMSSystem.objects.all() serializer = AdminLMSSystemSerializer(lmssystem, many=True) return Response(serializer.data, status=status.HTTP_200_OK) @action(detail=False, methods=['GET'], url_path='admin/get_lmssystem_by_id') def get_lmssystem_by_id(self, request): try: lmssystem_id = request.data.get('id') lmssystem_instance = LMSSystem.objects.get(id=lmssystem_id) if not lmssystem_instance: return Response({"detail": "LMSSystem not found"}, status=status.HTTP_400_BAD_REQUEST) lmssystem_serializer_data = AdminLMSSystemSerializer(lmssystem_instance) return Response({"payload":lmssystem_serializer_data.data, "status": status.HTTP_200_OK}) except LMSSystem.DoesNotExist: return Response({"error": "LMSSystem not found", "status": status.HTTP_404_NOT_FOUND}) @action(detail=False, methods=['PATCH'], url_path='admin/update_lmssystem') def update_lmssystem(self, request, *args, **kwargs): lmssystem_id = request.data.get('id') try: instance = LMSSystem.objects.get(id=lmssystem_id) except LMSSystem.DoesNotExist: return Response({"error":"LMSSystem not found"}, status=status.HTTP_400_BAD_REQUEST) serializer = AdminLMSSystemSerializer(instance, data=request.data, partial=True) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) @action(detail=False, methods=['DELETE'], url_path='admin/delete_lmssystem') def delete_lmssystem(self, request, *args, **kwargs): lmssystem_id = request.data.get('id') try: instance = LMSSystem.objects.get(id=lmssystem_id) except LMSSystem.DoesNotExist: return Response({"error":"LMSSystem not found"}, status=status.HTTP_400_BAD_REQUEST) instance.delete() return Response(status=status.HTTP_204_NO_CONTENT) class AdminLMSSystemSerializer(serializers.ModelSerializer): label = serializers.CharField(source='name', read_only=True) value = serializers.IntegerField(source='id', read_only=True) class Meta: model = LMSSystem fields = ['id', 'name', 'label', 'value'] read_only_fields = ['id', 'label', 'value']