Skip to content

Commit

Permalink
Merge pull request #2396 from IFRCGo/project/search-result
Browse files Browse the repository at this point in the history
Fix: Appeal type issue on search
  • Loading branch information
szabozoltan69 authored Jan 29, 2025
2 parents 66e05e5 + 6104bb2 commit 21b2899
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 3 deletions.
13 changes: 12 additions & 1 deletion api/search_indexes.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,12 @@ class EmergenciesIndex(indexes.Indexable, indexes.SearchIndex):
countries_id = indexes.MultiValueField(
null=True,
)
appeal_type = indexes.CharField(model_attr="appeals__get_atype_display", null=True)
appeals_id = indexes.MultiValueField(
null=True,
)
appeals_type = indexes.MultiValueField(
null=True,
)
crisis_categorization = indexes.CharField(model_attr="get_ifrc_severity_level_display", null=True)
iso3 = indexes.MultiValueField(null=True)
visibility = indexes.CharField(model_attr="get_visibility_display", null=True)
Expand All @@ -96,6 +101,12 @@ def prepare_countries_id(self, obj):
def prepare_iso3(self, obj):
return [country.iso3 for country in obj.countries.all() if country.iso3]

def prepare_appeals_id(self, obj):
return [appeal.id for appeal in obj.appeals.all()]

def prepare_appeals_type(self, obj):
return [appeal.get_atype_display() for appeal in obj.appeals.all()]

def index_queryset(self, using=None):
return self.get_model().objects.all()

Expand Down
7 changes: 6 additions & 1 deletion api/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -2208,6 +2208,11 @@ class SearchMiniCountrySerializer(serializers.Serializer):
name = serializers.CharField()


class SearchMiniAppealSerializer(serializers.Serializer):
id = serializers.IntegerField()
atype = serializers.CharField()


class SearchEmergencySerializer(serializers.Serializer):
id = serializers.IntegerField()
name = serializers.CharField()
Expand All @@ -2219,7 +2224,7 @@ class SearchEmergencySerializer(serializers.Serializer):
# countries_id = serializers.ListField(child=serializers.IntegerField())
# iso3 = serializers.ListField(child=serializers.CharField())
severity_level_display = serializers.CharField()
appeal_type = serializers.CharField()
appeals = SearchMiniAppealSerializer(many=True)
score = serializers.FloatField()
severity_level = serializers.IntegerField()

Expand Down
2 changes: 1 addition & 1 deletion api/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -438,7 +438,7 @@ def get(self, request):
"score": data.score,
"countries": [{"id": id, "name": name} for id, name in zip(data.countries_id, data.countries)],
"severity_level_display": data.crisis_categorization,
"appeal_type": data.appeal_type,
"appeals": [{"id": id, "atype": atype} for id, atype in zip(data.appeals_id, data.appeals_type)],
"severity_level": data.severity_level,
}
for data in emergency_response[:50]
Expand Down

0 comments on commit 21b2899

Please sign in to comment.