mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-28 23:43:22 +00:00
feat: Ajout des frais d'inscription lors de la création d'un RF [#18]
This commit is contained in:
@ -1,6 +1,7 @@
|
||||
from rest_framework import serializers
|
||||
from .models import RegistrationFileTemplate, RegistrationFile, RegistrationForm, Student, Guardian, Sibling, Language, RegistrationFee
|
||||
from School.models import SchoolClass
|
||||
from School.models import SchoolClass, Fee, Discount
|
||||
from School.serializers import FeeSerializer, DiscountSerializer
|
||||
from Auth.models import Profile
|
||||
from Auth.serializers import ProfileSerializer
|
||||
from GestionMessagerie.models import Messagerie
|
||||
@ -133,6 +134,9 @@ class RegistrationFormSerializer(serializers.ModelSerializer):
|
||||
status_label = serializers.SerializerMethodField()
|
||||
formatted_last_update = serializers.SerializerMethodField()
|
||||
registration_files = RegistrationFileSerializer(many=True, required=False)
|
||||
fees = serializers.PrimaryKeyRelatedField(queryset=Fee.objects.all(), many=True, required=False)
|
||||
discounts = serializers.PrimaryKeyRelatedField(queryset=Discount.objects.all(), many=True, required=False)
|
||||
|
||||
class Meta:
|
||||
model = RegistrationForm
|
||||
fields = '__all__'
|
||||
@ -140,11 +144,19 @@ class RegistrationFormSerializer(serializers.ModelSerializer):
|
||||
def create(self, validated_data):
|
||||
student_data = validated_data.pop('student')
|
||||
student = StudentSerializer.create(StudentSerializer(), student_data)
|
||||
fees_data = validated_data.pop('fees', [])
|
||||
discounts_data = validated_data.pop('discounts', [])
|
||||
registrationForm = RegistrationForm.objects.create(student=student, **validated_data)
|
||||
|
||||
# Associer les IDs des objets Fee et Discount au RegistrationForm
|
||||
registrationForm.fees.set([fee.id for fee in fees_data])
|
||||
registrationForm.discounts.set([discount.id for discount in discounts_data])
|
||||
return registrationForm
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
student_data = validated_data.pop('student', None)
|
||||
fees_data = validated_data.pop('fees', [])
|
||||
discounts_data = validated_data.pop('discounts', [])
|
||||
if student_data:
|
||||
student = instance.student
|
||||
StudentSerializer.update(StudentSerializer(), student, student_data)
|
||||
@ -156,6 +168,10 @@ class RegistrationFormSerializer(serializers.ModelSerializer):
|
||||
pass
|
||||
instance.save()
|
||||
|
||||
# Associer les IDs des objets Fee et Discount au RegistrationForm
|
||||
instance.fees.set([fee.id for fee in fees_data])
|
||||
instance.discounts.set([discount.id for discount in discounts_data])
|
||||
|
||||
return instance
|
||||
|
||||
def get_status_label(self, obj):
|
||||
|
||||
Reference in New Issue
Block a user