Add repository field to "Create image" form

Let users choose which repository want to use to save the image.
multi-ogserver
Javier Sánchez Parra 2022-05-23 10:29:21 +02:00
parent b74820a84c
commit d9d3d2ad5f
2 changed files with 15 additions and 1 deletions

View File

@ -140,6 +140,8 @@ class ImageCreateForm(FlaskForm):
name = StringField(label=_l('Image name'),
validators=[InputRequired()])
description = StringField(label=_l('Description'))
repository = SelectField(label=_l('Repository'), choices=[],
validators=[InputRequired()])
create = SubmitField(label=_l('Create'))

View File

@ -121,6 +121,13 @@ def get_clients(state_filter=None):
return filter(clients.items(), lambda c: c.state == state_filter)
return clients
def get_repositories():
r = g.server.get('/repositories')
repositories = r.json()['repositories']
return repositories
def parse_scopes_from_tree(tree, scope_type):
scopes = []
for scope in tree['scope']:
@ -956,7 +963,7 @@ def action_image_create():
"partition": partition,
"code": code,
"name": form.name.data,
"repository": g.server.ip,
"repository": form.repository.data,
"id": "0", # This is ignored by the server.
"description": form.description.data,
"group_id": 0, # Default group.
@ -987,6 +994,11 @@ def action_image_create():
f"{_('Partition')} {part_id} | "
f"{_('FS')} {FS_CODES[fs_id]}")
form.os.choices.append((choice_value, choice_name))
repositories = get_repositories()
for repo in repositories:
form.repository.choices.append((repo['ip'], repo['name']))
scopes, clients = get_scopes(set(ips))
return render_template('actions/image_create.html', form=form,
scopes=scopes)