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,
|
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):
|
def test_submit_self_evaluation_feedback(self):
|
||||||
# GIVEN
|
# GIVEN
|
||||||
learning_unit = create_learning_unit(course=self.course, circle=self.circle)
|
learning_unit = create_learning_unit(course=self.course, circle=self.circle)
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,26 @@
|
||||||
from django.urls import path
|
from django.urls import path
|
||||||
|
|
||||||
from vbv_lernwelt.self_evaluation_feedback.views import (
|
from vbv_lernwelt.self_evaluation_feedback.views import (
|
||||||
|
add_provider_self_evaluation_feedback,
|
||||||
get_provider_self_evaluation_feedback,
|
get_provider_self_evaluation_feedback,
|
||||||
|
submit_provider_self_evaluation_feedback,
|
||||||
start_self_evaluation_feedback,
|
start_self_evaluation_feedback,
|
||||||
add_self_evaluation_feedback_assessment,
|
|
||||||
submit_self_evaluation_feedback,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path(
|
path(
|
||||||
"feedback/start",
|
"requester/feedback/start",
|
||||||
start_self_evaluation_feedback,
|
start_self_evaluation_feedback,
|
||||||
name="start_self_evaluation_feedback",
|
name="start_self_evaluation_feedback",
|
||||||
),
|
),
|
||||||
path(
|
path(
|
||||||
"feedback/<int:feedback_id>/submit",
|
"provider/feedback/<int:feedback_id>/submit",
|
||||||
submit_self_evaluation_feedback,
|
submit_provider_self_evaluation_feedback,
|
||||||
name="submit_self_evaluation_feedback",
|
name="submit_self_evaluation_feedback",
|
||||||
),
|
),
|
||||||
path(
|
path(
|
||||||
"feedback/<int:feedback_id>/add-feedback-assessment",
|
"provider/feedback/<int:feedback_id>/add-assessment",
|
||||||
add_self_evaluation_feedback_assessment,
|
add_provider_self_evaluation_feedback,
|
||||||
name="add_self_evaluation_feedback_assessment",
|
name="add_self_evaluation_feedback_assessment",
|
||||||
),
|
),
|
||||||
path(
|
path(
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,13 @@ from rest_framework.permissions import IsAuthenticated
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
|
|
||||||
from vbv_lernwelt.core.models import User
|
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.learning_mentor.models import LearningMentor
|
||||||
from vbv_lernwelt.learnpath.models import LearningUnit
|
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 (
|
from vbv_lernwelt.self_evaluation_feedback.serializers import (
|
||||||
SelfEvaluationFeedbackSerializer,
|
SelfEvaluationFeedbackSerializer,
|
||||||
)
|
)
|
||||||
|
|
@ -42,7 +46,7 @@ def start_self_evaluation_feedback(request):
|
||||||
|
|
||||||
@api_view(["PUT"])
|
@api_view(["PUT"])
|
||||||
@permission_classes([IsAuthenticated])
|
@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(
|
feedback = get_object_or_404(
|
||||||
SelfEvaluationFeedback, id=feedback_id, feedback_provider_user=request.user
|
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"])
|
@api_view(["PUT"])
|
||||||
@permission_classes([IsAuthenticated])
|
@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(
|
feedback = get_object_or_404(
|
||||||
SelfEvaluationFeedback, id=feedback_id, feedback_provider_user=request.user
|
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(
|
if not created:
|
||||||
# feedback=feedback,
|
course_completion_feedback.feedback_assessment = feedback_assessment
|
||||||
# course_completion=feedback.learning_unit.performancecriteria_set.first(),
|
course_completion_feedback.save()
|
||||||
# defaults={"feedback_assessment": feedback_assessment},
|
|
||||||
# )
|
|
||||||
|
|
||||||
return Response({"success": True})
|
return Response({"success": True})
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue