diff --git a/backend/server/worldtravel/serializers.py b/backend/server/worldtravel/serializers.py index ab312df..b6be995 100644 --- a/backend/server/worldtravel/serializers.py +++ b/backend/server/worldtravel/serializers.py @@ -2,7 +2,6 @@ import os from .models import Country, Region, VisitedRegion from rest_framework import serializers - class CountrySerializer(serializers.ModelSerializer): def get_public_url(self, obj): return os.environ.get('PUBLIC_URL', 'http://127.0.0.1:8000').rstrip('/').replace("'", "") @@ -15,17 +14,21 @@ class CountrySerializer(serializers.ModelSerializer): class Meta: model = Country - fields = '__all__' # Serialize all fields of the Adventure model + fields = '__all__' read_only_fields = ['id', 'name', 'country_code', 'subregion', 'flag_url'] class RegionSerializer(serializers.ModelSerializer): class Meta: model = Region - fields = '__all__' # Serialize all fields of the Adventure model + fields = '__all__' read_only_fields = ['id', 'name', 'country', 'longitude', 'latitude'] class VisitedRegionSerializer(serializers.ModelSerializer): + longitude = serializers.DecimalField(source='region.longitude', max_digits=9, decimal_places=6, read_only=True) + latitude = serializers.DecimalField(source='region.latitude', max_digits=9, decimal_places=6, read_only=True) + name = serializers.CharField(source='region.name', read_only=True) + class Meta: model = VisitedRegion - fields = '__all__' # Serialize all fields of the Adventure model - read_only_fields = ['user_id', 'id'] \ No newline at end of file + fields = ['id', 'user_id', 'region', 'longitude', 'latitude', 'name'] + read_only_fields = ['user_id', 'id', 'longitude', 'latitude', 'name'] \ No newline at end of file diff --git a/frontend/src/routes/map/+page.svelte b/frontend/src/routes/map/+page.svelte index a157198..5c10b8e 100644 --- a/frontend/src/routes/map/+page.svelte +++ b/frontend/src/routes/map/+page.svelte @@ -54,7 +54,7 @@ } let visitedRegions = data.props.visitedRegions; - let geoJSON = []; + let allRegions = []; let visitArray = []; @@ -72,12 +72,12 @@ // mapped to the checkbox let showGEO = false; $: { - if (showGEO && geoJSON.length === 0) { + if (showGEO && allRegions.length === 0) { (async () => { - geoJSON = await fetch('/api/geojson/').then((res) => res.json()); + allRegions = await fetch('/api/visitedregion/').then((res) => res.json()); })(); } else if (!showGEO) { - geoJSON = []; + allRegions = []; } } @@ -99,7 +99,7 @@ - + {/if} {/each} - {#if showGEO} - - - - - - {/if} + {#each newMarker as marker} {/each} + + {#each allRegions as { longitude, latitude, name, region }} + (clickedName = name)} + class="grid h-8 w-8 place-items-center rounded-full border border-gray-200 bg-green-300 text-black shadow-md" + > + + + + + +
{name}
+

{region}

+
+
+ {/each}