From 23eda14b7ef034b533fa2835ef759be74f059f70 Mon Sep 17 00:00:00 2001 From: livewater009 Date: Thu, 12 Mar 2026 20:04:43 -0400 Subject: [PATCH] Completed code challenge --- map/serializers.py | 29 +++------- map/static/js/RestaurantPermitMap.js | 79 ++++++++++++++++------------ tests/test_views.py | 45 ++++++++++------ 3 files changed, 82 insertions(+), 71 deletions(-) diff --git a/map/serializers.py b/map/serializers.py index 03dd912..2986839 100644 --- a/map/serializers.py +++ b/map/serializers.py @@ -6,29 +6,16 @@ class CommunityAreaSerializer(serializers.ModelSerializer): class Meta: model = CommunityArea - fields = ["name", "num_permits"] + fields = ["name", "area_id", "num_permits"] num_permits = serializers.SerializerMethodField() def get_num_permits(self, obj): - """ - TODO: supplement each community area object with the number - of permits issued in the given year. + year = self.context.get("year") + if not year: + return 0 - e.g. The endpoint /map-data/?year=2017 should return something like: - [ - { - "ROGERS PARK": { - area_id: 17, - num_permits: 2 - }, - "BEVERLY": { - area_id: 72, - num_permits: 2 - }, - ... - } - ] - """ - - pass + return RestaurantPermit.objects.filter( + community_area_id=str(obj.area_id), + issue_date__year=year, + ).count() diff --git a/map/static/js/RestaurantPermitMap.js b/map/static/js/RestaurantPermitMap.js index 57f8ea0..6abd600 100644 --- a/map/static/js/RestaurantPermitMap.js +++ b/map/static/js/RestaurantPermitMap.js @@ -6,19 +6,14 @@ import "leaflet/dist/leaflet.css" import RAW_COMMUNITY_AREAS from "../../../data/raw/community-areas.geojson" -function YearSelect({ setFilterVal }) { - // Filter by the permit issue year for each restaurant +function YearSelect({ filterVal, setFilterVal }) { const startYear = 2026 - const years = [...Array(11).keys()].map((increment) => { - return startYear - increment - }) - const options = years.map((year) => { - return ( - - ) - }) + const years = [...Array(11).keys()].map((increment) => startYear - increment) + const options = years.map((year) => ( + + )) return ( <> @@ -28,6 +23,7 @@ function YearSelect({ setFilterVal }) {