feat: API for feedback provider to add feedback
This commit is contained in:
parent
a8b25ec216
commit
d2352d6166
|
|
@ -211,6 +211,57 @@ class SelfEvaluationFeedbackAPI(APITestCase):
|
|||
CourseCompletionStatus.UNKNOWN.value,
|
||||
)
|
||||
|
||||
def test_self_evaluation_feedback_assessment(self):
|
||||
# GIVEN
|
||||
learning_unit = create_learning_unit(course=self.course, circle=self.circle)
|
||||
|
||||
performance_criteria_1 = create_performance_criteria_page(
|
||||
course=self.course,
|
||||
course_page=self.course_page,
|
||||
circle=self.circle,
|
||||
learning_unit=learning_unit,
|
||||
)
|
||||
|
||||
completion = mark_course_completion(
|
||||
page=performance_criteria_1,
|
||||
user=self.member,
|
||||
course_session=self.course_session,
|
||||
completion_status=CourseCompletionStatus.SUCCESS.value,
|
||||
)
|
||||
|
||||
self_evaluation_feedback = create_self_evaluation_feedback(
|
||||
learning_unit=learning_unit,
|
||||
feedback_requester_user=self.member,
|
||||
feedback_provider_user=self.mentor,
|
||||
)
|
||||
|
||||
self.client.force_login(self.mentor)
|
||||
|
||||
# WHEN
|
||||
response = self.client.put(
|
||||
reverse(
|
||||
"add_self_evaluation_feedback_assessment",
|
||||
args=[self_evaluation_feedback.id],
|
||||
),
|
||||
{
|
||||
"course_completion_id": completion.id,
|
||||
"feedback_assessment": CourseCompletionStatus.FAIL.value,
|
||||
},
|
||||
)
|
||||
|
||||
# THEN
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response.data["success"], True)
|
||||
|
||||
feedback = CourseCompletionFeedback.objects.get(
|
||||
feedback=self_evaluation_feedback,
|
||||
course_completion=completion,
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
feedback.feedback_assessment, CourseCompletionStatus.FAIL.value
|
||||
)
|
||||
|
||||
def test_submit_self_evaluation_feedback(self):
|
||||
# GIVEN
|
||||
learning_unit = create_learning_unit(course=self.course, circle=self.circle)
|
||||
|
|
|
|||
|
|
@ -1,26 +1,26 @@
|
|||
from django.urls import path
|
||||
|
||||
from vbv_lernwelt.self_evaluation_feedback.views import (
|
||||
add_provider_self_evaluation_feedback,
|
||||
get_provider_self_evaluation_feedback,
|
||||
submit_provider_self_evaluation_feedback,
|
||||
start_self_evaluation_feedback,
|
||||
add_self_evaluation_feedback_assessment,
|
||||
submit_self_evaluation_feedback,
|
||||
)
|
||||
|
||||
urlpatterns = [
|
||||
path(
|
||||
"feedback/start",
|
||||
"requester/feedback/start",
|
||||
start_self_evaluation_feedback,
|
||||
name="start_self_evaluation_feedback",
|
||||
),
|
||||
path(
|
||||
"feedback/<int:feedback_id>/submit",
|
||||
submit_self_evaluation_feedback,
|
||||
"provider/feedback/<int:feedback_id>/submit",
|
||||
submit_provider_self_evaluation_feedback,
|
||||
name="submit_self_evaluation_feedback",
|
||||
),
|
||||
path(
|
||||
"feedback/<int:feedback_id>/add-feedback-assessment",
|
||||
add_self_evaluation_feedback_assessment,
|
||||
"provider/feedback/<int:feedback_id>/add-assessment",
|
||||
add_provider_self_evaluation_feedback,
|
||||
name="add_self_evaluation_feedback_assessment",
|
||||
),
|
||||
path(
|
||||
|
|
|
|||
|
|
@ -5,9 +5,13 @@ from rest_framework.permissions import IsAuthenticated
|
|||
from rest_framework.response import Response
|
||||
|
||||
from vbv_lernwelt.core.models import User
|
||||
from vbv_lernwelt.course.models import CourseCompletion
|
||||
from vbv_lernwelt.learning_mentor.models import LearningMentor
|
||||
from vbv_lernwelt.learnpath.models import LearningUnit
|
||||
from vbv_lernwelt.self_evaluation_feedback.models import SelfEvaluationFeedback
|
||||
from vbv_lernwelt.self_evaluation_feedback.models import (
|
||||
SelfEvaluationFeedback,
|
||||
CourseCompletionFeedback,
|
||||
)
|
||||
from vbv_lernwelt.self_evaluation_feedback.serializers import (
|
||||
SelfEvaluationFeedbackSerializer,
|
||||
)
|
||||
|
|
@ -42,7 +46,7 @@ def start_self_evaluation_feedback(request):
|
|||
|
||||
@api_view(["PUT"])
|
||||
@permission_classes([IsAuthenticated])
|
||||
def submit_self_evaluation_feedback(request, feedback_id):
|
||||
def submit_provider_self_evaluation_feedback(request, feedback_id):
|
||||
feedback = get_object_or_404(
|
||||
SelfEvaluationFeedback, id=feedback_id, feedback_provider_user=request.user
|
||||
)
|
||||
|
|
@ -65,19 +69,30 @@ def get_provider_self_evaluation_feedback(request, feedback_id):
|
|||
|
||||
@api_view(["PUT"])
|
||||
@permission_classes([IsAuthenticated])
|
||||
def add_self_evaluation_feedback_assessment(request, feedback_id):
|
||||
def add_provider_self_evaluation_feedback(request, feedback_id):
|
||||
feedback_assessment = request.data.get("feedback_assessment")
|
||||
|
||||
feedback = get_object_or_404(
|
||||
SelfEvaluationFeedback, id=feedback_id, feedback_provider_user=request.user
|
||||
)
|
||||
|
||||
feedback_assessment = request.data.get("feedback_assessment")
|
||||
course_completion = get_object_or_404(
|
||||
CourseCompletion,
|
||||
id=request.data.get("course_completion_id"),
|
||||
user=feedback.feedback_requester_user,
|
||||
)
|
||||
|
||||
# TODO @livioso continue here
|
||||
(
|
||||
course_completion_feedback,
|
||||
created,
|
||||
) = CourseCompletionFeedback.objects.get_or_create(
|
||||
feedback=feedback,
|
||||
course_completion=course_completion,
|
||||
defaults={"feedback_assessment": feedback_assessment},
|
||||
)
|
||||
|
||||
# CourseCompletionFeedback.objects.get_or_create(
|
||||
# feedback=feedback,
|
||||
# course_completion=feedback.learning_unit.performancecriteria_set.first(),
|
||||
# defaults={"feedback_assessment": feedback_assessment},
|
||||
# )
|
||||
if not created:
|
||||
course_completion_feedback.feedback_assessment = feedback_assessment
|
||||
course_completion_feedback.save()
|
||||
|
||||
return Response({"success": True})
|
||||
|
|
|
|||
Loading…
Reference in New Issue