diff --git a/backend/server/adventures/views.py b/backend/server/adventures/views.py index e658623..e981fcc 100644 --- a/backend/server/adventures/views.py +++ b/backend/server/adventures/views.py @@ -175,6 +175,10 @@ class CollectionViewSet(viewsets.ModelViewSet): permission_classes = [IsOwnerOrReadOnly, IsPublicReadOnly] pagination_class = StandardResultsSetPagination + def get_queryset(self): + print(self.request.user.id) + return Collection.objects.filter(user_id=self.request.user.id) + def apply_sorting(self, queryset): order_by = self.request.query_params.get('order_by', 'name') order_direction = self.request.query_params.get('order_direction', 'asc') @@ -255,9 +259,19 @@ class CollectionViewSet(viewsets.ModelViewSet): return Response(serializer.data) def get_queryset(self): - collections = Collection.objects.filter( - Q(is_public=True) | Q(user_id=self.request.user.id) - ).prefetch_related( + + adventures = None + + if self.action == 'retrieve': + # For individual collection retrieval, include public collections + adventures = Collection.objects.filter( + Q(is_public=True) | Q(user_id=self.request.user.id) + ) + else: + # For other actions, only include user's own collections + adventures = Collection.objects.filter(user_id=self.request.user.id) + + adventures = adventures.prefetch_related( Prefetch('adventure_set', queryset=Adventure.objects.filter( Q(is_public=True) | Q(user_id=self.request.user.id) )) @@ -266,7 +280,7 @@ class CollectionViewSet(viewsets.ModelViewSet): Q(is_public=True) | Q(user_id=self.request.user.id) )) ) - return self.apply_sorting(collections) + return self.apply_sorting(adventures) def perform_create(self, serializer): serializer.save(user_id=self.request.user) diff --git a/docker-compose.yml b/docker-compose.yml index 7ffadeb..9326387 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,6 +8,9 @@ services: - PUBLIC_SERVER_URL=http://server:8000 - ORIGIN=http://localhost:8080 - BODY_SIZE_LIMIT=Infinity + # Analytics can be configured here using Umami (https://umami.is) + - ENABLE_ANALYTICS=false + #- UNAMI_KEY='' ports: - "8080:3000" depends_on: diff --git a/frontend/src/routes/+layout.svelte b/frontend/src/routes/+layout.svelte index 390d3c5..745f92b 100644 --- a/frontend/src/routes/+layout.svelte +++ b/frontend/src/routes/+layout.svelte @@ -3,8 +3,17 @@ import Toast from '$lib/components/Toast.svelte'; import 'tailwindcss/tailwind.css'; export let data; + + const enableAnalytics = process.env['ENABLE_ANALYTICS'] || 'false'; + const unamiKey = process.env['UNAMI_KEY'] || ''; + + {#if enableAnalytics === 'true' && unamiKey} + + {/if} + + diff --git a/frontend/src/routes/map/+page.svelte b/frontend/src/routes/map/+page.svelte index ee9d760..4cdfd64 100644 --- a/frontend/src/routes/map/+page.svelte +++ b/frontend/src/routes/map/+page.svelte @@ -19,7 +19,6 @@ let showVisited = true; let showPlanned = true; - let showCollectionAdventures = false; $: { if (!showVisited) { @@ -34,12 +33,6 @@ const plannedMarkers = data.props.markers.filter((marker) => marker.type === 'planned'); markers = [...markers, ...plannedMarkers]; } - if (!showCollectionAdventures) { - markers = markers.filter((marker) => marker.collection === null); - } else { - const collectionMarkers = data.props.markers.filter((marker) => marker.collection !== null); - markers = [...markers, ...collectionMarkers]; - } } let newMarker = []; @@ -124,14 +117,6 @@ Planned - {#if newMarker.length > 0}