diff --git a/backend/server/users/backends.py b/backend/server/users/backends.py index a099f11..f9291f0 100644 --- a/backend/server/users/backends.py +++ b/backend/server/users/backends.py @@ -3,7 +3,6 @@ from allauth.socialaccount.models import SocialAccount class NoPasswordAuthBackend(ModelBackend): def authenticate(self, request, username=None, password=None, **kwargs): - print("NoPasswordAuthBackend") # First, attempt normal authentication user = super().authenticate(request, username=username, password=password, **kwargs) if user is None: diff --git a/frontend/src/routes/collections/[id]/+page.svelte b/frontend/src/routes/collections/[id]/+page.svelte index 1a69fdd..df8ad0a 100644 --- a/frontend/src/routes/collections/[id]/+page.svelte +++ b/frontend/src/routes/collections/[id]/+page.svelte @@ -133,6 +133,7 @@ } let currentView: string = 'itinerary'; + let currentItineraryView: string = 'date'; let adventures: Adventure[] = []; @@ -303,6 +304,7 @@ } else { notFound = true; } + if (collection.start_date && collection.end_date) { numberOfDays = Math.floor( @@ -923,129 +925,233 @@ })}

+
+ (currentItineraryView = 'date')} + /> + (currentItineraryView = 'ordered')} + /> +
-
- {#each Array(numberOfDays) as _, i} - {@const startDate = new Date(collection.start_date)} - {@const tempDate = new Date(startDate.getTime())} - {@const adjustedDate = new Date(tempDate.setUTCDate(tempDate.getUTCDate() + i))} - {@const dateString = adjustedDate.toISOString().split('T')[0]} + {#if currentItineraryView == 'date'} +
+ {#each Array(numberOfDays) as _, i} + {@const startDate = new Date(collection.start_date)} + {@const tempDate = new Date(startDate.getTime())} + {@const adjustedDate = new Date(tempDate.setUTCDate(tempDate.getUTCDate() + i))} + {@const dateString = adjustedDate.toISOString().split('T')[0]} - {@const dayAdventures = - groupAdventuresByDate(adventures, new Date(collection.start_date), numberOfDays + 1)[ - dateString - ] || []} - {@const dayTransportations = - groupTransportationsByDate( - transportations, - new Date(collection.start_date), - numberOfDays + 1 - )[dateString] || []} - {@const dayLodging = - groupLodgingByDate(lodging, new Date(collection.start_date), numberOfDays + 1)[ - dateString - ] || []} - {@const dayNotes = - groupNotesByDate(notes, new Date(collection.start_date), numberOfDays + 1)[ - dateString - ] || []} - {@const dayChecklists = - groupChecklistsByDate(checklists, new Date(collection.start_date), numberOfDays + 1)[ - dateString - ] || []} + {@const dayAdventures = + groupAdventuresByDate(adventures, new Date(collection.start_date), numberOfDays + 1)[ + dateString + ] || []} + {@const dayTransportations = + groupTransportationsByDate( + transportations, + new Date(collection.start_date), + numberOfDays + 1 + )[dateString] || []} + {@const dayLodging = + groupLodgingByDate(lodging, new Date(collection.start_date), numberOfDays + 1)[ + dateString + ] || []} + {@const dayNotes = + groupNotesByDate(notes, new Date(collection.start_date), numberOfDays + 1)[ + dateString + ] || []} + {@const dayChecklists = + groupChecklistsByDate(checklists, new Date(collection.start_date), numberOfDays + 1)[ + dateString + ] || []} -
-
-

- {$t('adventures.day')} - {i + 1} -
- {adjustedDate.toLocaleDateString(undefined, { timeZone: 'UTC' })} +
+
+

+ {$t('adventures.day')} + {i + 1} +
+ {adjustedDate.toLocaleDateString(undefined, { timeZone: 'UTC' })} +
+

+ +
+ +
+ {#if dayAdventures.length > 0} + {#each dayAdventures as adventure} + + {/each} + {/if} + {#if dayTransportations.length > 0} + {#each dayTransportations as transportation} + { + transportations = transportations.filter((t) => t.id != event.detail); + }} + on:edit={(event) => { + transportationToEdit = event.detail; + isShowingTransportationModal = true; + }} + /> + {/each} + {/if} + {#if dayNotes.length > 0} + {#each dayNotes as note} + { + noteToEdit = event.detail; + isNoteModalOpen = true; + }} + on:delete={(event) => { + notes = notes.filter((n) => n.id != event.detail); + }} + /> + {/each} + {/if} + {#if dayLodging.length > 0} + {#each dayLodging as hotel} + { + lodging = lodging.filter((t) => t.id != event.detail); + }} + on:edit={editLodging} + /> + {/each} + {/if} + {#if dayChecklists.length > 0} + {#each dayChecklists as checklist} + { + notes = notes.filter((n) => n.id != event.detail); + }} + on:edit={(event) => { + checklistToEdit = event.detail; + isShowingChecklistModal = true; + }} + /> + {/each} + {/if}
-

-
- -
- {#if dayAdventures.length > 0} - {#each dayAdventures as adventure} - - {/each} - {/if} - {#if dayTransportations.length > 0} - {#each dayTransportations as transportation} - { - transportations = transportations.filter((t) => t.id != event.detail); - }} - on:edit={(event) => { - transportationToEdit = event.detail; - isShowingTransportationModal = true; - }} - /> - {/each} - {/if} - {#if dayNotes.length > 0} - {#each dayNotes as note} - { - noteToEdit = event.detail; - isNoteModalOpen = true; - }} - on:delete={(event) => { - notes = notes.filter((n) => n.id != event.detail); - }} - /> - {/each} - {/if} - {#if dayLodging.length > 0} - {#each dayLodging as hotel} - { - lodging = lodging.filter((t) => t.id != event.detail); - }} - on:edit={editLodging} - /> - {/each} - {/if} - {#if dayChecklists.length > 0} - {#each dayChecklists as checklist} - { - notes = notes.filter((n) => n.id != event.detail); - }} - on:edit={(event) => { - checklistToEdit = event.detail; - isShowingChecklistModal = true; - }} - /> - {/each} + {#if dayAdventures.length == 0 && dayTransportations.length == 0 && dayNotes.length == 0 && dayChecklists.length == 0 && dayLodging.length == 0} +

{$t('adventures.nothing_planned')}

{/if}
- - {#if dayAdventures.length == 0 && dayTransportations.length == 0 && dayNotes.length == 0 && dayChecklists.length == 0 && dayLodging.length == 0} -

{$t('adventures.nothing_planned')}

+
+ {/each} +
+ {:else} +
+
+
+ +
+
    + {#each orderedItems as orderedItem, index} +
  • + +
    + {#if orderedItem.type === 'adventure' && orderedItem.item && 'category' in orderedItem.item && orderedItem.item.category && 'icon' in orderedItem.item.category} + {orderedItem.item.category.icon} + {:else if orderedItem.type === 'transportation' && orderedItem.item && 'origin_latitude' in orderedItem.item} + {getTransportationEmoji(orderedItem.item.type)} + {:else if orderedItem.type === 'lodging' && orderedItem.item && 'reservation_number' in orderedItem.item} + {getLodgingIcon(orderedItem.item.type)} + {/if} +
    + +
    +
    + {orderedItem.type} +
    + {new Date(orderedItem.start).toLocaleDateString(undefined, { + month: 'short', + day: 'numeric' + })} + {#if orderedItem.start !== orderedItem.end} +
    + {new Date(orderedItem.start).toLocaleTimeString(undefined, { + hour: '2-digit', + minute: '2-digit' + })} +
    + {:else} +

    {$t('adventures.all_day')} ⏱️

    + {/if} +
    +
    + {#if orderedItem.type === 'adventure' && orderedItem.item && 'images' in orderedItem.item} + + {:else if orderedItem.type === 'transportation' && orderedItem.item && 'origin_latitude' in orderedItem.item} + { + transportations = transportations.filter((t) => t.id != event.detail); + }} + on:edit={editTransportation} + {collection} + /> + {:else if orderedItem.type === 'lodging' && orderedItem.item && 'reservation_number' in orderedItem.item} + { + lodging = lodging.filter((t) => t.id != event.detail); + }} + on:edit={editLodging} + {collection} + /> + {/if} +
    +
  • + {/each} +
+ {#if orderedItems.length === 0} +
+

{$t('adventures.nothing_planned')}

+
{/if}
- {/each} -
+
+ {/if} {/if} {/if} @@ -1331,13 +1437,16 @@ {recomendation.name || $t('recomendations.recommendation')}
{recomendation.tag}
- {#if recomendation.address} + {#if recomendation.address && (recomendation.address.housenumber || recomendation.address.street || recomendation.address.city || recomendation.address.state || recomendation.address.postcode)}

{$t('recomendations.address')}: - {recomendation.address.housenumber} - {recomendation.address.street}, {recomendation.address.city}, {recomendation - .address.state} - {recomendation.address.postcode} + {#if recomendation.address.housenumber}{recomendation.address + .housenumber}{/if} + {#if recomendation.address.street} + {recomendation.address.street}{/if} + {#if recomendation.address.city}, {recomendation.address.city}{/if} + {#if recomendation.address.state}, {recomendation.address.state}{/if} + {#if recomendation.address.postcode}, {recomendation.address.postcode}{/if}

{/if} {#if recomendation.contact} @@ -1389,43 +1498,6 @@ {/if} {/if} -{#each orderedItems as orderedItem} -

{orderedItem.type}

- {#if orderedItem.type === 'adventure'} - {#if orderedItem.item && 'images' in orderedItem.item} - - {/if} - {/if} - {#if orderedItem.type === 'transportation' && orderedItem.item && 'origin_latitude' in orderedItem.item} - { - transportations = transportations.filter((t) => t.id != event.detail); - }} - on:edit={editTransportation} - {collection} - /> - {/if} - {#if orderedItem.type === 'lodging' && orderedItem.item && 'reservation_number' in orderedItem.item} - { - lodging = lodging.filter((t) => t.id != event.detail); - }} - on:edit={editLodging} - {collection} - /> - {/if} -{/each} - {data.props.adventure && data.props.adventure.name