from django.db import models from django.core.validators import MaxValueValidator from backend.models.user import UserRestrictedModule, UserRestrictedModuleSerializer, UserRestrictedModuleViewSet from backend.models.user import PreviousDeparture from backend.fields import JSONField from backend.utils import get_model_config, get_viewset_permissions class PreviousDepartureFeedback(UserRestrictedModule): model_config = get_model_config("Country") departure = models.OneToOneField( PreviousDeparture, on_delete=models.CASCADE) courses_and_courses_feedback = JSONField(default=dict) adequation_comment = models.TextField() integration_comment = models.TextField() adequation_grate = models.PositiveIntegerField( validators=[MaxValueValidator(20)]) integration_grade = models.PositiveIntegerField( validators=[MaxValueValidator(20)]) # TODO check on save that courses are coherent with Previous Departure class PreviousDepartureFeedbackSerializer(UserRestrictedModuleSerializer): class Meta: model = PreviousDepartureFeedback fields = '__all__' class PreviousDepartureFeedbackViewSet(UserRestrictedModuleViewSet): permission_classes = get_viewset_permissions( "PreviousDepartureFeedbackViewSet") queryset = PreviousDepartureFeedback.objects.all() # pylint: disable=E1101 serializer_class = PreviousDepartureFeedbackSerializer