class ConditionsXMLSerializer(XMLMetaMixin, SkipNullMixin, activity_serializers.ConditionsSerializer): xml_meta = {'attributes': ('attached',)} attached = BoolToNumField() class ConditionXMLSerializer(XMLMetaMixin, SkipNullMixin, activity_serializers.ConditionSerializer): xml_meta = {'attributes': ('type', )} type = serializers.CharField(source='type.code') narrative = NarrativeXMLSerializer(many=True, source='narratives') class Meta: model = iati_models.Condition fields = ( 'type', 'narrative', ) condition = ConditionXMLSerializer( many=True, source="condition_set") class Meta(activity_serializers.ConditionsSerializer.Meta): fields = ( 'attached', 'condition', )
class ResultIndicatorXMLSerializer(XMLMetaMixin, SkipNullMixin, activity_serializers .ResultIndicatorSerializer): xml_meta = {'attributes': ('measure', 'ascending',)} title = NarrativeContainerXMLSerializer(source="resultindicatortitle") description = NarrativeContainerXMLSerializer( source="resultindicatordescription" ) reference = ResultIndicatorReferenceXMLSerializer( source='resultindicatorreference_set', many=True, required=False) baseline = ResultIndicatorBaselineXMLSerializer(source="*") period = ResultIndicatorPeriodXMLSerializer( source='resultindicatorperiod_set', many=True ) measure = serializers.CharField(source='measure.code') ascending = BoolToNumField() class Meta: model = iati_models.ResultIndicator fields = ( 'title', 'description', 'reference', 'baseline', 'period', 'measure', 'ascending' )
class TransactionSerializer(XMLMetaMixin, SkipNullMixin, transaction_serializers.TransactionSerializer): xml_meta = { 'attributes': ( 'ref', 'humanitarian', ) } transaction_type = CodelistSerializer() description = NarrativeContainerXMLSerializer() provider_org = TransactionProviderSerializer( source='provider_organisation') receiver_org = TransactionReceiverSerializer( source='receiver_organisation') flow_type = CodelistSerializer() finance_type = CodelistSerializer() aid_type = CodelistSerializer() tied_status = CodelistSerializer() currency = CodelistSerializer() sector = TransactionSectorXMLSerializer(many=True, required=False, source="transactionsector_set") recipient_country = TransactionRecipientCountryXMLSerializer( many=True, required=False, source="transactionrecipientcountry_set") recipient_region = TransactionRecipientRegionXMLSerializer( many=True, required=False, source="transactionrecipientregion_set") value = ValueSerializer(source='*') transaction_date = IsoDateSerializer() disbursement_channel = CodelistSerializer() humanitarian = BoolToNumField() class Meta(transaction_serializers.TransactionSerializer.Meta): fields = ( 'ref', 'humanitarian', 'transaction_type', 'transaction_date', 'value', 'description', 'provider_org', 'receiver_org', 'disbursement_channel', 'sector', 'recipient_country', 'recipient_region', 'flow_type', 'finance_type', 'aid_type', 'tied_status', )
class CrsAddOtherFlagsXMLSerializer( XMLMetaMixin, SkipNullMixin, activity_serializers .CrsAddOtherFlagsSerializer): xml_meta = {'attributes': ('code', 'significance', )} code = serializers.CharField(source='other_flags.code') significance = BoolToNumField() class Meta: model = iati_models.CrsAddOtherFlags fields = ( 'code', 'significance', )
class FssXMLSerializer(XMLMetaMixin, SkipNullMixin, activity_serializers.FssSerializer): xml_meta = { 'attributes': ( 'extraction_date', 'priority', 'phaseout_year', ) } priority = BoolToNumField() class FssForecastXMLSerializer(XMLMetaMixin, SkipNullMixin, activity_serializers.FssForecastSerializer): xml_meta = { 'attributes': ( 'year', 'value_date', 'currency', ) } currency = serializers.CharField(source='currency.code') text = serializers.DecimalField( source='value', max_digits=15, decimal_places=2, coerce_to_string=False, ) class Meta(activity_serializers.FssForecastSerializer.Meta): fields = ( 'text', 'year', 'value_date', 'currency', ) forecast = FssForecastXMLSerializer(many=True, source='fssforecast_set') class Meta(activity_serializers.FssSerializer.Meta): model = iati_models.Fss fields = ( 'extraction_date', 'priority', 'phaseout_year', 'forecast', )
class OrganisationReportingOrganisationSerializer(ModelSerializerNoValidation): xml_meta = {'attributes': ('ref', 'type', 'secondary_reporter')} ref = serializers.CharField(source="reporting_org_identifier") type = CodelistSerializer(source="org_type") secondary_reporter = BoolToNumField() narratives = OrganisationNarrativeSerializer(many=True) class Meta: model = org_models.OrganisationReportingOrganisation fields = ( 'ref', 'type', 'secondary_reporter', 'narratives', )
class ReportingOrganisationSerializer( XMLMetaMixin, SkipNullMixin, activity_serializers.ReportingOrganisationSerializer): xml_meta = {'attributes': ('ref', 'type', 'secondary_reporter')} ref = serializers.CharField( source="publisher.organisation.organisation_identifier") type = serializers.CharField(source="publisher.organisation.type.code") secondary_reporter = BoolToNumField() narrative = NarrativeXMLSerializer( source="publisher.organisation.name.narratives", many=True) class Meta(activity_serializers.ReportingOrganisationSerializer.Meta): fields = ( 'ref', 'type', 'secondary_reporter', 'narrative', )
class OrganisationReportingOrganisationXMLSerializer(XMLMetaMixin, SkipNullMixin, ModelSerializer): xml_meta = {'attributes': ('ref', 'type', 'secondary_reporter')} ref = serializers.CharField(source="reporting_org_identifier") type = serializers.CharField(source="org_type") secondary_reporter = BoolToNumField() narrative = OrganisationNarrativeXMLSerializer(many=True, source="narratives") class Meta: model = org_models.OrganisationReportingOrganisation fields = ( 'ref', 'type', 'secondary_reporter', 'narrative', )
class ResultXMLSerializer(XMLMetaMixin, SkipNullMixin, activity_serializers.ResultSerializer): xml_meta = {'attributes': ('type', 'aggregation_status',)} type = serializers.CharField(source='type.code') title = NarrativeContainerXMLSerializer(source="resulttitle") description = NarrativeContainerXMLSerializer(source="resultdescription") indicator = ResultIndicatorXMLSerializer( source='resultindicator_set', many=True ) aggregation_status = BoolToNumField() class Meta(activity_serializers.ResultSerializer.Meta): fields = ( 'title', 'description', 'indicator', 'type', 'aggregation_status', )