Create "Add Repository" form and view

Creates "Add repository" form with the required inputs: name and IP.
multi-ogserver
Javier Sánchez Parra 2022-07-01 10:36:20 +02:00
parent 9a6981d289
commit c068bd2144
4 changed files with 56 additions and 1 deletions

View File

@ -185,3 +185,10 @@ class ImageDetailsForm(FlaskForm):
modified = StringField(label=_l('Modified'))
permissions = StringField(label=_l('Permissions'))
software_id = StringField(label=_l('Software id'))
class RepositoryForm(FlaskForm):
name = StringField(label=_l('Name'),
validators=[InputRequired()])
ip = StringField(label=_l('IP'),
validators=[InputRequired()])
submit = SubmitField(label=_l('Submit'))

View File

@ -0,0 +1,17 @@
{% extends 'repositories.html' %}
{% import "bootstrap/wtf.html" as wtf %}
{% set sidebar_state = 'disabled' %}
{% set btn_back = true %}
{% block nav_repository_add %}active{% endblock %}
{% block content %}
<h1 class="m-5">{{_('Add a repository')}}</h1>
{{ wtf.quick_form(form,
action=url_for('repository_add_post'),
method='post',
button_map={'submit_btn':'primary'}) }}
{% endblock %}

View File

@ -24,6 +24,8 @@
{% endblock %}
{% block commands %}
<input class="btn btn-light {% block nav_repository_add %}{% endblock %}" type="submit" value="{{ _('Add repository') }}"
form="repositoriesForm" formaction="{{ url_for('repository_add_get') }}" formmethod="get">
{% if btn_back %}
<button class="btn btn-danger ml-3" type="button" id="backButton" onclick="history.back()">
{{ _("Back") }}

View File

@ -12,7 +12,8 @@ from ogcp.forms.action_forms import (
WOLForm, SetupForm, ClientDetailsForm, ImageDetailsForm, HardwareForm,
SessionForm, ImageRestoreForm, ImageCreateForm, SoftwareForm, BootModeForm,
RoomForm, DeleteRoomForm, CenterForm, DeleteCenterForm, OgliveForm,
GenericForm, SelectClientForm, ImageUpdateForm, ImportClientsForm
GenericForm, SelectClientForm, ImageUpdateForm, ImportClientsForm,
RepositoryForm
)
from flask_login import (
current_user, LoginManager,
@ -1245,6 +1246,34 @@ def repositories():
return render_template('repositories.html', repositories=repositories)
@app.route('/repositories/add', methods=['GET'])
@login_required
def repository_add_get():
form = RepositoryForm()
r = g.server.get('/repositories')
repositories = r.json()['repositories']
return render_template('actions/add_repository.html', form=form,
repositories=repositories)
@app.route('/repositories/add', methods=['POST'])
@login_required
def repository_add_post():
form = RepositoryForm(request.form)
if not form.validate():
flash(form.errors, category='error')
return redirect(url_for('repositories'))
payload = {"name": form.name.data,
"ip": form.ip.data}
r = g.server.post('/repository/add', payload)
if r.status_code != requests.codes.ok:
flash(_('ogServer: error adding the repository'), category='error')
else:
flash(_('Repository added successfully'), category='info')
return redirect(url_for("repositories"))
@app.route('/users/', methods=['GET'])
@login_required
def users():