Skip to content

Commit 5b6511c

Browse files
Merge pull request #1380 from IFRCGo/fix/emergency-response
Add response_activity_count in event api
2 parents cf3204f + 81e2efc commit 5b6511c

File tree

4 files changed

+12
-13
lines changed

4 files changed

+12
-13
lines changed

api/drf_views.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
Country,
3535
CountryKeyFigure,
3636
CountrySnippet,
37-
3837
District,
3938
Admin2,
4039

@@ -247,10 +246,9 @@ class Meta:
247246
class DistrictRMDViewset(viewsets.ReadOnlyModelViewSet):
248247
queryset = District.objects.select_related('country').filter(is_deprecated=False)
249248
filterset_class = DistrictRMDFilter
250-
search_fields = ('name', 'country__name',)
249+
search_fields = ('name', 'country__name',)
251250
serializer_class = DistrictSerializerRMD
252251

253-
254252

255253
class RegionKeyFigureFilter(filters.FilterSet):
256254
region = filters.NumberFilter(field_name='region', lookup_expr='exact')
@@ -343,7 +341,7 @@ def get_serializer_class(self):
343341
class Admin2Filter(filters.FilterSet):
344342
class Meta:
345343
model = Admin2
346-
fields = ('admin1',)
344+
fields = ('admin1',)
347345

348346

349347
class Admin2Viewset(viewsets.ReadOnlyModelViewSet):
@@ -388,8 +386,7 @@ def get_queryset(self, *args, **kwargs):
388386
return qset.filter(parent_event__isnull=True).select_related('dtype')
389387
return (
390388
#Event.objects.filter(parent_event__isnull=True)
391-
qset.filter(parent_event__isnull=True)
392-
.select_related('dtype')
389+
qset.filter(parent_event__isnull=True).select_related('dtype')
393390
.prefetch_related(
394391
'regions',
395392
Prefetch('appeals', queryset=Appeal.objects.select_related('dtype', 'event', 'country', 'region')),

api/serializers.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
MainContact
5252
)
5353
from notifications.models import Subscription
54+
from deployments.models import EmergencyProject
5455

5556

5657
class GeoSerializerMixin:
@@ -653,6 +654,7 @@ class DetailEventSerializer(EnumSupportSerializerMixin, ModelSerializer):
653654
featured_documents = EventFeaturedDocumentSerializer(many=True, read_only=True)
654655
links = EventLinkSerializer(many=True, read_only=True)
655656
countries_for_preview = MiniCountrySerializer(many=True)
657+
response_activity_count = serializers.SerializerMethodField()
656658

657659
class Meta:
658660
model = Event
@@ -661,10 +663,14 @@ class Meta:
661663
'disaster_start_date', 'created_at', 'auto_generated', 'appeals', 'contacts', 'key_figures', 'is_featured',
662664
'is_featured_region', 'field_reports', 'hide_attached_field_reports', 'hide_field_report_map', 'updated_at',
663665
'id', 'slug', 'tab_one_title', 'ifrc_severity_level', 'ifrc_severity_level_display', 'parent_event', 'glide',
664-
'featured_documents', 'links', 'emergency_response_contact_email', 'countries_for_preview'
666+
'featured_documents', 'links', 'emergency_response_contact_email', 'countries_for_preview',
667+
'response_activity_count'
665668
)
666669
lookup_field = 'slug'
667670

671+
def get_response_activity_count(self, event):
672+
return EmergencyProject.objects.filter(event=event).count()
673+
668674

669675
class SituationReportTypeSerializer(ModelSerializer):
670676
class Meta:

api/snapshots/snap_test_views.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@
7777
'name': 'event-OhbVrpoiVgRVIfLBcbfnoGMbJmTPSIAoCLrZaWZkSBvrjnWvgf',
7878
'num_affected': 0,
7979
'parent_event': 1,
80+
'response_activity_count': 0,
8081
'slug': 'ygwwmqzcudihyfjsonxkmtecqoxsfogyrdoxkxwnqrsrpemoki',
8182
'summary': 'MGyDLJYVcCZKPmuMEGjdCgZvTfGPlcpTCCHHNkxxsyAXvRMdYOPvevgJRysqUQMjvfLQjwtPSQziMTftJyPYviQSVRHfPQBGxbxtlnvXFmoijesYgGXIVHcQvXNiMyjklSXNZkUCcAxRUpCNsWVYCoIptZYEmxRKCDXsXyGHAkmZMiqdPExJgTHhsfWkrCGjBfoCwbAdzGxpyfxobugTPvYjicsESiWTECNafbqnjJUMHBhXspthdpAOYNDehFMIbOGKpTjsBaNwpKAlQQfHxeHIGYGJbyEcOyxqVbwYewpUQOgXLVWvicwIvPlXRDSEOlZieTXDcsmcYmcutGzIEqcWPmswXdPvrhZxBzVCyvlFSFxZHrZfUBfBMlIsugfuQstCMTBkSCwCcUwNBrOYdeQOzxGZVRkbjMRYCciepXPxxyKcMjRCxxCWeKiHxzuPrphbVlFHyJhqXqTCnNsSFmhieClTCfZRuQwTeJIstkTTSOlYxGoh',
8283
'tab_one_title': 'XKANObFOIsPtEpZZRztDeSdkCAEDnvMjuTuUwziWxGJgupDhrC',
@@ -150,6 +151,7 @@
150151
'name': 'event-OhbVrpoiVgRVIfLBcbfnoGMbJmTPSIAoCLrZaWZkSBvrjnWvgf',
151152
'num_affected': 0,
152153
'parent_event': 1,
154+
'response_activity_count': 0,
153155
'slug': 'ygwwmqzcudihyfjsonxkmtecqoxsfogyrdoxkxwnqrsrpemoki',
154156
'summary': 'MGyDLJYVcCZKPmuMEGjdCgZvTfGPlcpTCCHHNkxxsyAXvRMdYOPvevgJRysqUQMjvfLQjwtPSQziMTftJyPYviQSVRHfPQBGxbxtlnvXFmoijesYgGXIVHcQvXNiMyjklSXNZkUCcAxRUpCNsWVYCoIptZYEmxRKCDXsXyGHAkmZMiqdPExJgTHhsfWkrCGjBfoCwbAdzGxpyfxobugTPvYjicsESiWTECNafbqnjJUMHBhXspthdpAOYNDehFMIbOGKpTjsBaNwpKAlQQfHxeHIGYGJbyEcOyxqVbwYewpUQOgXLVWvicwIvPlXRDSEOlZieTXDcsmcYmcutGzIEqcWPmswXdPvrhZxBzVCyvlFSFxZHrZfUBfBMlIsugfuQstCMTBkSCwCcUwNBrOYdeQOzxGZVRkbjMRYCciepXPxxyKcMjRCxxCWeKiHxzuPrphbVlFHyJhqXqTCnNsSFmhieClTCfZRuQwTeJIstkTTSOlYxGoh',
155157
'tab_one_title': 'XKANObFOIsPtEpZZRztDeSdkCAEDnvMjuTuUwziWxGJgupDhrC',

deployments/serializers.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -546,15 +546,9 @@ class Meta:
546546
)
547547

548548
def validate(self, data):
549-
event = data.get('event', self.instance and self.instance.event)
550-
countries_id = list(event.countries.values_list('id', flat=True))
551549
reporting_ns = data.get('reporting_ns', self.instance and self.instance.reporting_ns)
552550
deployed_eru = data.get('deployed_eru', self.instance and self.instance.deployed_eru)
553551
country = data.get('country', None)
554-
if country and country.id not in countries_id:
555-
raise serializers.ValidationError({
556-
'country': ugettext("Country should be from event's countries"),
557-
})
558552
for district in data.get('districts') or []:
559553
if district.country_id != country.id:
560554
raise serializers.ValidationError({

0 commit comments

Comments
 (0)