Coverage for apps/project/serializers.py : 97%
Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1from rest_framework import serializers
3from report.report_fields import LABELS
4from .models import Project, District
7class DistrictSerializer(serializers.ModelSerializer):
8 class Meta:
9 model = District
10 fields = ('name', 'code')
13class MunicipalitySerializer(serializers.ModelSerializer):
14 class Meta:
15 model = District
16 fields = ('name', 'code')
19class MiniProjectSerializer(serializers.ModelSerializer):
20 class Meta:
21 model = Project
22 fields = ('id', 'name',)
25class ProjectSerializer(serializers.ModelSerializer):
26 rc_data = serializers.SerializerMethodField()
27 district = DistrictSerializer()
28 municipalities = MunicipalitySerializer(many=True)
30 class Meta:
31 model = Project
32 fields = '__all__'
34 def get_rc_data(self, instance):
35 # NOTE: Make sure the reports are sorted correctly
36 report = instance.reports.first()
37 if report and report.data: 37 ↛ exitline 37 didn't return from function 'get_rc_data', because the condition on line 37 was never false
38 fields = [
39 'planned', 'totalRc', 'sponsored',
40 'available', 'hold', 'death',
41 'totalMale', 'totalFemale', 'totalLeft',
42 ]
43 rc_data = report.data.get('rcData') or {}
44 return [
45 {
46 'name': LABELS[field],
47 'value': rc_data.get(field),
48 } for field in fields
49 ]