_render_form requires server_name as well

This commit is contained in:
Chia-liang Kao
2018-12-02 21:07:45 +08:00
parent 35d041a701
commit b60468d2b6

View File

@@ -73,11 +73,11 @@ class SpawnHandler(BaseHandler):
Only enabled when Spawner.options_form is defined.
"""
async def _render_form(self, message='', for_user=None):
async def _render_form(self, message='', for_user=None, server_name=''):
# Note that 'user' is the authenticated user making the request and
# 'for_user' is the user whose server is being spawned.
user = for_user or self.get_current_user()
spawner_options_form = await user.spawner.get_options_form()
spawner_options_form = await user.spawners[server_name].get_options_form()
return self.render_template('spawn.html',
for_user=for_user,
spawner_options_form=spawner_options_form,
@@ -111,7 +111,7 @@ class SpawnHandler(BaseHandler):
if spawner.options_form:
# Add handler to spawner here so you can access query params in form rendering.
spawner.handler = self
form = await self._render_form(for_user=user)
form = await self._render_form(for_user=user, server_name=server_name)
self.finish(form)
else:
# Explicit spawn request: clear _spawn_future
@@ -156,7 +156,7 @@ class SpawnHandler(BaseHandler):
await self.spawn_single_user(user, options=options)
except Exception as e:
self.log.error("Failed to spawn single-user server with form", exc_info=True)
form = await self._render_form(message=str(e), for_user=user)
form = await self._render_form(message=str(e), for_user=user, server_name=server_name)
self.finish(form)
return
if current_user is user: