from rest_framework import serializers from .models import ( BankTransaction, Destinataer, DestinataerUnterstuetzung, Foerderung, Land, LandVerpachtung, Paechter, StiftungsKalenderEintrag, StiftungsKonto, Veranstaltung, Veranstaltungsteilnehmer, Verwaltungskosten, ) class DestinataerUnterstuetzungSerializer(serializers.ModelSerializer): class Meta: model = DestinataerUnterstuetzung fields = "__all__" class DestinataerSerializer(serializers.ModelSerializer): unterstuetzungen = DestinataerUnterstuetzungSerializer(many=True, read_only=True) class Meta: model = Destinataer fields = "__all__" class LandVerpachtungSerializer(serializers.ModelSerializer): class Meta: model = LandVerpachtung fields = "__all__" class LandSerializer(serializers.ModelSerializer): aktive_verpachtungen = serializers.SerializerMethodField() class Meta: model = Land fields = "__all__" def get_aktive_verpachtungen(self, obj): qs = obj.neue_verpachtungen.filter(status="aktiv") return LandVerpachtungSerializer(qs, many=True).data class PaechterSerializer(serializers.ModelSerializer): aktive_verpachtungen = serializers.SerializerMethodField() class Meta: model = Paechter fields = "__all__" def get_aktive_verpachtungen(self, obj): qs = obj.neue_verpachtungen.filter(status="aktiv") return LandVerpachtungSerializer(qs, many=True).data class FoerderungSerializer(serializers.ModelSerializer): class Meta: model = Foerderung fields = "__all__" class StiftungsKontoSerializer(serializers.ModelSerializer): class Meta: model = StiftungsKonto fields = "__all__" class VerwaltungskostenSerializer(serializers.ModelSerializer): class Meta: model = Verwaltungskosten fields = "__all__" class StiftungsKalenderEintragSerializer(serializers.ModelSerializer): class Meta: model = StiftungsKalenderEintrag fields = "__all__" class BankTransactionSerializer(serializers.ModelSerializer): class Meta: model = BankTransaction fields = "__all__" class VeranstaltungsteilnehmerSerializer(serializers.ModelSerializer): class Meta: model = Veranstaltungsteilnehmer fields = "__all__" class VeranstaltungSerializer(serializers.ModelSerializer): teilnehmer = VeranstaltungsteilnehmerSerializer(many=True, read_only=True) teilnehmer_count = serializers.IntegerField( source="get_teilnehmer_count", read_only=True ) zugesagte_count = serializers.IntegerField( source="get_zugesagte_count", read_only=True ) class Meta: model = Veranstaltung fields = "__all__"