diff --git a/backend/server/adventures/views.py b/backend/server/adventures/views.py index 76a6a41..cfa2841 100644 --- a/backend/server/adventures/views.py +++ b/backend/server/adventures/views.py @@ -1084,19 +1084,39 @@ class ReverseGeocodeViewSet(viewsets.ViewSet): Returns a dictionary containing the region name, country name, and ISO code if found. """ iso_code = None + town = None + city = None + county = None + display_name = None + country_code = None if 'address' in data.keys(): keys = data['address'].keys() for key in keys: if key.find("ISO") != -1: iso_code = data['address'][key] + if 'town' in keys: + town = data['address']['town'] + if 'county' in keys: + county = data['address']['county'] + if 'city' in keys: + city = data['address']['city'] print(iso_code) region = Region.objects.filter(id=iso_code).first() visited_region = VisitedRegion.objects.filter(region=region).first() is_visited = False + country_code = iso_code[:2] + + if city: + display_name = f"{city}, {region.name}, {country_code}" + elif town and region.name: + display_name = f"{town}, {region.name}, {country_code}" + elif county and region.name: + display_name = f"{county}, {region.name}, {country_code}" + if visited_region: is_visited = True if region: - return {"id": iso_code, "region": region.name, "country": region.country.name, "is_visited": is_visited} + return {"id": iso_code, "region": region.name, "country": region.country.name, "is_visited": is_visited, "display_name": display_name} return {"error": "No region found"} @action(detail=False, methods=['get']) diff --git a/docker-compose-traefik.yaml b/docker-compose-traefik.yaml index 0e88f19..064b998 100644 --- a/docker-compose-traefik.yaml +++ b/docker-compose-traefik.yaml @@ -43,20 +43,6 @@ services: - "traefik.http.routers.adventurelog.tls=true" - "traefik.http.routers.adventurelog.tls.certresolver=letsencrypt" - nginx: - image: nginx:latest - restart: unless-stopped - labels: - - "traefik.enable=true" - - "traefik.http.routers.nginx.entrypoints=websecure" - - "traefik.http.routers.nginx.rule=Host(`yourdomain.com`) && PathPrefix(`/media`)" # Replace with your domain - - "traefik.http.routers.nginx.tls=true" - - "traefik.http.routers.nginx.tls.certresolver=letsencrypt" - - "traefik.http.middlewares.nginx-stripprefix.stripprefix.prefixes=/media" - - "traefik.http.routers.nginx.middlewares=nginx-stripprefix" - volumes: - - adventurelog-media:/usr/share/nginx/html - server: image: ghcr.io/seanmorley15/adventurelog-backend:latest restart: unless-stopped diff --git a/frontend/src/lib/components/AdventureModal.svelte b/frontend/src/lib/components/AdventureModal.svelte index f797e5b..27a67ef 100644 --- a/frontend/src/lib/components/AdventureModal.svelte +++ b/frontend/src/lib/components/AdventureModal.svelte @@ -111,6 +111,15 @@ markers = []; } + $: { + if ( + reverseGeocodePlace?.display_name && + adventure.location != reverseGeocodePlace.display_name + ) { + adventure.location = reverseGeocodePlace.display_name; + } + } + let imageSearch: string = adventure.name || ''; async function removeImage(id: string) { diff --git a/frontend/src/lib/types.ts b/frontend/src/lib/types.ts index 5c77745..5d168aa 100644 --- a/frontend/src/lib/types.ts +++ b/frontend/src/lib/types.ts @@ -175,4 +175,5 @@ export type ReverseGeocode = { region: string; country: string; is_visited: boolean; + display_name: string; };