Skip to content

Commit

Permalink
Merge pull request #3529 from webkom/remove-user-from-surveysubmission
Browse files Browse the repository at this point in the history
Remove user field from survey submission read serializer
  • Loading branch information
eikhr authored Sep 24, 2024
2 parents 297e982 + 963c53c commit 19a385b
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 7 deletions.
8 changes: 5 additions & 3 deletions lego/apps/surveys/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
from lego.apps.events.serializers.events import EventForSurveySerializer
from lego.apps.surveys.constants import DISPLAY_TYPES, QUESTION_TYPES
from lego.apps.surveys.models import Answer, Option, Question, Submission, Survey
from lego.apps.users.serializers.users import PublicUserSerializer
from lego.utils.serializers import BasisModelSerializer


Expand Down Expand Up @@ -93,11 +92,14 @@ class Meta:

class SubmissionReadSerializer(BasisModelSerializer):
answers = AnswerSerializer(many=True)
user = PublicUserSerializer()
is_owner = serializers.SerializerMethodField()

class Meta:
model = Submission
fields = ("id", "user", "survey", "answers")
fields = ("id", "is_owner", "survey", "answers")

def get_is_owner(self, submission):
return submission.user == self.context["request"].user


class SubmissionAdminReadSerializer(SubmissionReadSerializer):
Expand Down
3 changes: 2 additions & 1 deletion lego/apps/surveys/tests/test_submissions_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,8 @@ def test_create_answer(self):

expected = submission_data(self.admin_user, 1)
result = response.json()
self.assertEqual(expected["user"], result["user"].get("id", None))
self.assertEqual(expected["survey"], result["survey"])
self.assertTrue(result["isOwner"])

self.assertEqual(len(result["answers"]), 3)
for i, answer in enumerate(result["answers"]):
Expand Down
12 changes: 9 additions & 3 deletions lego/apps/surveys/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,9 @@ def create(self, request, *args, **kwargs):
serializer.is_valid(raise_exception=True)
self.perform_create(serializer)
return Response(
SubmissionReadSerializer(serializer.instance).data,
SubmissionReadSerializer(
serializer.instance, context={"request": request}
).data,
status=status.HTTP_201_CREATED,
)

Expand All @@ -198,7 +200,9 @@ def hide(self, request, **kwargs):
submission, answer = self.validate_answer(request, **kwargs)
answer.hide()
return Response(
data=SubmissionAdminReadSerializer(submission).data,
data=SubmissionAdminReadSerializer(
submission, context={"request": request}
).data,
status=status.HTTP_202_ACCEPTED,
)

Expand All @@ -212,7 +216,9 @@ def show(self, request, **kwargs):
submission, answer = self.validate_answer(request, **kwargs)
answer.show()
return Response(
data=SubmissionAdminReadSerializer(submission).data,
data=SubmissionAdminReadSerializer(
submission, context={"request": request}
).data,
status=status.HTTP_202_ACCEPTED,
)

Expand Down

0 comments on commit 19a385b

Please sign in to comment.