Skip to content

Commit 10defc9

Browse files
Merge branch 'main' into dependabot/npm_and_yarn/frontend/vue-i18n-11.1.2
2 parents ec33b41 + 511a92c commit 10defc9

File tree

9 files changed

+175
-255
lines changed

9 files changed

+175
-255
lines changed

backend/src/main/java/org/eventplanner/events/application/usecases/EventUseCase.java

+3
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ public class EventUseCase {
7878
signedInUser.assertHasPermission(Permission.READ_EVENTS);
7979
var event = this.eventRepository.findByKey(key)
8080
.filter(evt -> filterForVisibility(signedInUser, evt))
81+
.map(eventService::removeInvalidSlotAssignments)
82+
.map(evt -> clearConfidentialData(signedInUser, evt))
8183
.orElseThrow();
8284
return clearConfidentialData(signedInUser, event);
8385
}
@@ -114,6 +116,7 @@ public class EventUseCase {
114116

115117
var event = this.eventRepository.findByKey(eventKey).orElseThrow();
116118
log.info("Updating event {}", event.getName());
119+
event = eventService.removeInvalidSlotAssignments(event);
117120
var previousState = event.getState();
118121

119122
if (signedInUser.hasPermission(Permission.WRITE_EVENT_DETAILS)) {

frontend/package-lock.json

+4-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
"tailwindcss": "^3.4.17",
5151
"typescript": "^5.7.3",
5252
"typescript-eslint": "^8.26.0",
53-
"vite": "^6.2.0",
53+
"vite": "^6.2.1",
5454
"vite-plugin-pwa": "^0.21.1",
5555
"vite-svg-loader": "^5.1.0",
5656
"vue-tsc": "^2.2.4"

frontend/src/application/usecases/EventUseCase.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import type {
1111
} from '@/application';
1212
import { saveBlobToFile, saveStringToFile } from '@/common/utils/DownloadUtils.ts';
1313
import type { Event, EventKey, EventService, PositionKey, Registration, RegistrationKey, RegistrationService, UserKey } from '@/domain';
14-
import { EventState, EventType, SlotCriticality } from '@/domain';
14+
import { EventState, EventType } from '@/domain';
1515
import type { ResolvedRegistrationSlot } from '@/domain/aggregates/ResolvedRegistrationSlot';
1616

1717
export class EventUseCase {
@@ -205,18 +205,18 @@ export class EventUseCase {
205205

206206
public filterForWaitingList(event: Event, registrations: ResolvedRegistrationSlot[]): ResolvedRegistrationSlot[] {
207207
if ([EventState.Draft, EventState.OpenForSignup].includes(event.state)) {
208-
// crew is not public yet, so all registrations are on the waiting list-admin
208+
// crew is not public yet, so all registrations are on the waiting list
209209
return registrations.filter((it) => it.registration !== undefined);
210210
}
211211
return registrations.filter((it) => it.registration !== undefined && it.slot === undefined);
212212
}
213213

214214
public filterForCrew(event: Event, registrations: ResolvedRegistrationSlot[]): ResolvedRegistrationSlot[] {
215215
if ([EventState.Draft, EventState.OpenForSignup].includes(event.state)) {
216-
// crew is not public yet, so all registrations are on the waiting list-admin
216+
// crew is not public yet, so all registrations are on the waiting list
217217
return [];
218218
}
219-
return registrations.filter((it) => it.slot && (it.registration || it.slot.criticality >= SlotCriticality.Important));
219+
return registrations.filter((it) => it.slot !== undefined);
220220
}
221221

222222
public async leaveEvents(events: Event[]): Promise<void> {

frontend/src/domain/services/EventService.ts

+1-12
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ export class EventService {
110110
* @param event
111111
*/
112112
private optimizeSlots(event: Event): Event {
113+
console.log('🏎️ Optimizing slots');
113114
// this.debugSlots(event);
114115
for (let i = 0; i < event.slots.length; i++) {
115116
const slot = event.slots[i];
@@ -229,22 +230,10 @@ export class EventService {
229230
return event;
230231
}
231232

232-
public isSlotFilled(event: Event | null | undefined, slotkey: SlotKey): boolean {
233-
if (!event) {
234-
return false;
235-
}
236-
const slot = event.slots.find((it) => it.key === slotkey);
237-
return slot !== undefined && slot.assignedRegistrationKey !== undefined;
238-
}
239-
240233
public hasOpenRequiredSlots(event: Event, positions?: PositionKey[]): boolean {
241234
return this.hasOpenSlots(event, positions, SlotCriticality.Required);
242235
}
243236

244-
public hasOpenImportantSlots(event: Event, positions?: PositionKey[]): boolean {
245-
return this.hasOpenSlots(event, positions, SlotCriticality.Important);
246-
}
247-
248237
public hasOpenSlots(event: Event, positions?: PositionKey[], criticality: number = 0): boolean {
249238
const openSlots = event.slots.filter(
250239
(it) =>

frontend/src/ui/views/events/details/EventDetailsView.vue

+1-4
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@
202202
</RouterLink>
203203
<span v-else-if="it.name" class="truncate">{{ it.name }}</span>
204204
<span v-else-if="it.user?.key" class="italic text-error"> Unbekannter Nutzer </span>
205-
<span v-else class="truncate italic text-error">Noch nicht besetzt</span>
205+
<span v-else class="truncate italic text-error text-opacity-75">Noch nicht besetzt</span>
206206
<span class="flex-grow"></span>
207207
<span :style="{ background: it.position.color }" class="position ml-auto text-xs">
208208
{{ it.position.name }}
@@ -413,9 +413,6 @@ async function fetchTeam(event: Event): Promise<void> {
413413
const registrations = await eventUseCase.resolveRegistrations(event);
414414
team.value = eventUseCase.filterForCrew(event, registrations);
415415
waitingList.value = eventUseCase.filterForWaitingList(event, registrations);
416-
// const slots = await usersUseCase.resolveEventSlots(event);
417-
// team.value = slots.filter((it) => it.criticality >= 1 || it.userName);
418-
// waitingList.value = await usersUseCase.resolveWaitingList(event);
419416
}
420417
421418
async function choosePositionAndJoinEvent(evt: Event): Promise<void> {

0 commit comments

Comments
 (0)