# coding: utf-8 import representatives_votes.models as models from rest_framework import serializers class VoteSerializer(serializers.HyperlinkedModelSerializer): """ Vote serializer """ class Meta: model = models.Vote fields = ( 'proposal', 'representative', 'representative_name', 'position' ) class ProposalSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = models.Proposal fields = ( 'dossier', 'title', 'description', 'reference', 'datetime', 'kind', 'total_abstain', 'total_against', 'total_for', 'url', ) class ProposalDetailSerializer(ProposalSerializer): """ Proposal serializer that includes votes """ votes = VoteSerializer(many=True) class Meta: model = models.Proposal fields = ProposalSerializer.Meta.fields + ('votes',) class DocumentSerializer(serializers.HyperlinkedModelSerializer): """ Base document serializer """ class Meta: model = models.Document fields = ( 'dossier', 'chamber', 'kind', 'link' ) class DossierSerializer(serializers.HyperlinkedModelSerializer): """ Base dossier serializer """ class Meta: model = models.Dossier fields = ( 'title', 'reference', 'text', 'url', ) class DossierDetailSerializer(DossierSerializer): """ Dossier serializer that includes proposals and votes. """ proposals = ProposalSerializer(many=True) documents = DocumentSerializer(many=True) class Meta: model = models.Dossier field = DossierSerializer.Meta.fields + ('proposals', 'documents')