diff --git a/backend/server/adventures/views.py b/backend/server/adventures/views.py index b9fcb30..e71cd4c 100644 --- a/backend/server/adventures/views.py +++ b/backend/server/adventures/views.py @@ -157,8 +157,8 @@ class AdventureViewSet(viewsets.ModelViewSet): (Q(user_id=request.user.id) | Q(is_public=True)) ) queryset = self.apply_sorting(queryset) - adventures = self.paginate_and_respond(queryset, request) - return adventures + serializer = self.get_serializer(queryset, many=True) + return Response(serializer.data) def paginate_and_respond(self, queryset, request): paginator = self.pagination_class() diff --git a/frontend/src/routes/search/+page.server.ts b/frontend/src/routes/search/+page.server.ts index 5c2ec87..0d270da 100644 --- a/frontend/src/routes/search/+page.server.ts +++ b/frontend/src/routes/search/+page.server.ts @@ -25,10 +25,7 @@ export const load = (async (event) => { return { props: { - adventures: data.results as Adventure[], - nextPage: data.next, - prevPage: data.previous, - total: data.count, + adventures: data, query } }; diff --git a/frontend/src/routes/search/+page.svelte b/frontend/src/routes/search/+page.svelte index 1017547..b6f2b33 100644 --- a/frontend/src/routes/search/+page.svelte +++ b/frontend/src/routes/search/+page.svelte @@ -4,7 +4,7 @@ import type { Adventure, OpenStreetMapPlace } from '$lib/types'; import { onMount } from 'svelte'; import type { PageData } from './$types'; - import { page } from '$app/stores'; + import EditAdventure from '$lib/components/EditAdventure.svelte'; export let data: PageData; @@ -41,8 +41,35 @@ if (data.props) { adventures = data.props.adventures; } + + let adventureToEdit: Adventure; + let isEditModalOpen: boolean = false; + let isShowingCreateModal: boolean = false; + + function editAdventure(event: CustomEvent) { + adventureToEdit = event.detail; + isEditModalOpen = true; + } + + function saveEdit(event: CustomEvent) { + adventures = adventures.map((adventure) => { + if (adventure.id === event.detail.id) { + return event.detail; + } + return adventure; + }); + isEditModalOpen = false; + } +{#if isEditModalOpen} + (isEditModalOpen = false)} + on:saveEdit={saveEdit} + /> +{/if} + {#if adventures.length === 0 && osmResults.length === 0} {/if} @@ -56,6 +83,7 @@ type={adventure.type} {adventure} on:delete={deleteAdventure} + on:edit={editAdventure} /> {/each}