from django.shortcuts import get_object_or_404 from rest_framework.decorators import api_view, permission_classes from rest_framework.exceptions import PermissionDenied from rest_framework.permissions import IsAuthenticated from rest_framework.response import Response from vbv_lernwelt.core.models import User from vbv_lernwelt.learning_mentor.models import LearningMentor from vbv_lernwelt.learnpath.models import LearningUnit from vbv_lernwelt.self_evaluation_feedback.models import SelfEvaluationFeedback @api_view(["POST"]) @permission_classes([IsAuthenticated]) def start_self_evaluation_feedback(request): learning_unit_id = request.data.get("learning_unit_id") feedback_provider_user_id = request.data.get("feedback_provider_user_id") learning_unit = get_object_or_404(LearningUnit, id=learning_unit_id) feedback_provider_user = get_object_or_404(User, id=feedback_provider_user_id) if not LearningMentor.objects.filter( course=learning_unit.get_course(), mentor=feedback_provider_user, participants__user=request.user, ).exists(): raise PermissionDenied() SelfEvaluationFeedback.objects.create( feedback_requester_user=request.user, feedback_provider_user=feedback_provider_user, learning_unit=learning_unit, ) # TODO: Create notification for feedback_provider_user return Response({"success": True}) @api_view(["GET"]) @permission_classes([IsAuthenticated]) def list_self_evaluation_feedback(request): feedbacks = SelfEvaluationFeedback.objects.filter( feedback_provider_user=request.user ) # TODO continue here return Response({"success": True})