Remove hardcoded "A" and "I" #7

Closed
midgard wants to merge 4 commits from no-hardcoding into master
Showing only changes of commit bd714538df - Show all commits

View file

@ -30,26 +30,24 @@ def assign_reservations(self):
:param self: :param self:
:return: :return:
""" """
out = []
# Get all events of tomorrow # Get all events of tomorrow
events = Event.objects.filter(date=date.today() + timedelta(days=1)) events = Event.objects.filter(date=date.today() + timedelta(days=1))
out.append(f"{len(events) if events else 'Geen'} event(s)") print(f"{len(events) if events else 'Geen'} event(s)")
# Reservations # Reservations
registrations: List[EventRegistration] = EventRegistration.objects.filter( registrations: List[EventRegistration] = EventRegistration.objects.filter(
event_id__in=map(lambda event: event.id, events)) event_id__in=map(lambda event: event.id, events))
out.append(f"{len(registrations) if registrations else 'Geen'} registratie(s)") print(f"{len(registrations) if registrations else 'Geen'} registratie(s)")
out.append("") print("")
# Relevant users # Relevant users
users = [r.user for r in registrations if r.state == EventRegistration.INTERESTED] users = [r.user for r in registrations if r.state == EventRegistration.INTERESTED]
scores = list(map(calc_score, users)) scores = list(map(calc_score, users))
queue = sorted(list(zip(users, scores)), key=lambda tup: tup[1]) queue = sorted(list(zip(users, scores)), key=lambda tup: tup[1])
out.append("Prioriteiten: " + ", ".join(f"{u.username} ({s})" for u, s in queue)) print("Prioriteiten: " + ", ".join(f"{u.username} ({s})" for u, s in queue))
out.append("") print("")
for event in events: for event in events:
registrations = [r for r in registrations if r.event == event] registrations = [r for r in registrations if r.event == event]
@ -58,16 +56,16 @@ def assign_reservations(self):
left = max(event.capacity - sum(1 for r in already_admitted_regs), 0) left = max(event.capacity - sum(1 for r in already_admitted_regs), 0)
moment_str = Event.TIME_SLOTS[event.time] moment_str = Event.TIME_SLOTS[event.time]
out.append(f"• Event: {event.date}, {moment_str}. Vrije plaatsen: {left}/{event.capacity}") print(f"• Event: {event.date}, {moment_str}. Vrije plaatsen: {left}/{event.capacity}")
for reg in already_admitted_regs: for reg in already_admitted_regs:
out.append(f" = {reg.user.username}") print(f" = {reg.user.username}")
interested_users = {r.user for r in registrations interested_users = {r.user for r in registrations
if r.state == EventRegistration.INTERESTED} if r.state == EventRegistration.INTERESTED}
user_queue = list(filter(lambda element: element[0] in interested_users, queue)) user_queue = list(filter(lambda element: element[0] in interested_users, queue))
for user in user_queue[0:left]: for user in user_queue[0:left]:
out.append(f" + {user[0].username}") print(f" + {user[0].username}")
r = EventRegistration.objects.get( r = EventRegistration.objects.get(
event_id=event.id, event_id=event.id,
user_id=user[0].id user_id=user[0].id
@ -76,6 +74,4 @@ def assign_reservations(self):
r.save() r.save()
left -= 1 left -= 1
out.append(f" → Vrije plaatsen: {left}/{event.capacity}") print(f" → Vrije plaatsen: {left}/{event.capacity}")
return "\n".join(out)