@@ -70,7 +70,8 @@ def get(self, request, *args, **kwargs):
7070 # Now expecting organizer and event from URL pattern: /{organizer}/{event}/video
7171 organizer_slug = kwargs .get ('organizer' )
7272 event_slug = kwargs .get ('event' )
73-
73+ event_identifier = kwargs .get ('event_identifier' )
74+
7475 # TODO remove debug logging once new video routing is stable
7576 event = None
7677 if organizer_slug and event_slug :
@@ -136,8 +137,6 @@ def safe_reverse(name, **kw):
136137 'locales' : ['en' , 'de' , 'pt_BR' , 'ar' , 'fr' , 'es' , 'uk' , 'ru' ],
137138 'noThemeEndpoint' : True , # Prevent frontend from requesting missing /theme endpoint
138139 }
139- import json as _json
140-
141140 class EventyayJSONEncoder (DjangoJSONEncoder ):
142141 def default (self , obj ):
143142 if isinstance (obj , (Promise , LazyI18nString )):
@@ -148,14 +147,11 @@ def default(self, obj):
148147 elif event_identifier :
149148 # Event identifier provided but not found -> 404
150149 return HttpResponse ('Event not found' , status = 404 )
151- serialized = _json .dumps (injected )
152- content = f"<script>window.eventyay={ serialized } ;window.venueless={ serialized } ;</script>{ content } "
153- if '<base ' not in content .lower ():
154- content = content .replace ('<head>' , f'<head><base href="{ base_href } ">' , 1 )
155- elif '<base ' not in content .lower ():
156- # Legacy plain /video should still load SPA; ensure assets resolve correctly
150+
151+ if '<base ' not in content .lower ():
152+ # Ensure assets resolve correctly regardless of nested route
157153 content = content .replace ('<head>' , f'<head><base href="{ base_href } ">' , 1 )
158-
154+
159155 resp = HttpResponse (content , content_type = 'text/html' )
160156 resp ._csp_ignore = True # Disable CSP for SPA (relies on dynamic inline scripts)
161157 return resp
0 commit comments