1
0
Fork 0
mirror of https://github.com/seanmorley15/AdventureLog.git synced 2025-07-22 22:39:36 +02:00

search ui fixes

This commit is contained in:
Sean Morley 2024-07-22 10:08:42 -04:00
parent fc782d9354
commit e093be31af
3 changed files with 32 additions and 7 deletions

View file

@ -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()

View file

@ -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
}
};

View file

@ -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<Adventure>) {
adventureToEdit = event.detail;
isEditModalOpen = true;
}
function saveEdit(event: CustomEvent<Adventure>) {
adventures = adventures.map((adventure) => {
if (adventure.id === event.detail.id) {
return event.detail;
}
return adventure;
});
isEditModalOpen = false;
}
</script>
{#if isEditModalOpen}
<EditAdventure
{adventureToEdit}
on:close={() => (isEditModalOpen = false)}
on:saveEdit={saveEdit}
/>
{/if}
{#if adventures.length === 0 && osmResults.length === 0}
<NotFound error={data.error} />
{/if}
@ -56,6 +83,7 @@
type={adventure.type}
{adventure}
on:delete={deleteAdventure}
on:edit={editAdventure}
/>
{/each}
</div>