Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Same slug for sessions in different events lead to broken workshop registration #308

Open
jandd opened this issue Mar 15, 2023 · 0 comments

Comments

@jandd
Copy link
Contributor

jandd commented Mar 15, 2023

Describe the bug

When a Talk instance with an identical name is entered for multiple years and the talk is setup as a workshop, it crashes the workshop attendee registration.

To Reproduce

Register a Talk instance with a slug that already exists for an older event. Publish the Talk via the admin action, add the Talk to a talk slot and set the number of available seats. Login as an attendee and try to register for the workshop from the session grid -> Boom!

2023-03-15 09:13:30,787 ERROR Internal Server Error: /dev-day-2023/talk/<talk-slug>/reservation-confirmed/
Traceback (most recent call last):
File "/python-code/.venv/lib/python3.9/site-packages/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
File "/python-code/.venv/lib/python3.9/site-packages/django/core/handlers/base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/python-code/.venv/lib/python3.9/site-packages/django/core/handlers/base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/python-code/.venv/lib/python3.9/site-packages/django/views/generic/base.py", line 71, in view
return self.dispatch(request, *args, **kwargs)
File "/app/attendee/views.py", line 114, in dispatch
return super().dispatch(request, *args, **kwargs)
File "/python-code/.venv/lib/python3.9/site-packages/django/views/generic/base.py", line 97, in dispatch
return handler(request, *args, **kwargs)
File "/python-code/.venv/lib/python3.9/site-packages/django/views/generic/base.py", line 158, in get
context = self.get_context_data(**kwargs)
File "/app/talk/views.py", line 1261, in get_context_data
{"event": self.event, "talk": get_object_or_404(Talk, slug=kwargs["slug"])}
File "/python-code/.venv/lib/python3.9/site-packages/django/shortcuts.py", line 93, in get_object_or_404
return queryset.get(*args, **kwargs)
File "/python-code/.venv/lib/python3.9/site-packages/django/db/models/query.py", line 410, in get
raise self.model.MultipleObjectsReturned(
talk.models.Talk.MultipleObjectsReturned: get() returned more than one Talk -- it returned 2!

Expected behavior

The workshop registration works without issues.

Additional context

It is possible to change the slug of one of the conflicting Talk instances as a workaround.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant