mirror of
https://github.com/Steffo99/estus.git
synced 2024-11-25 00:54:18 +00:00
Add clone device feature
This commit is contained in:
parent
f2a695aafa
commit
851e80a2f7
4 changed files with 61 additions and 4 deletions
|
@ -6,6 +6,7 @@ Il nuovo inventario per il CED dell'[Unione Terre di Castelli](http://www.terred
|
|||
- Aggiunta nuovi dispositivi tramite codice a barre
|
||||
- Semplificati o rimossi molti dei campi inutilizzati del vecchio inventario
|
||||
- Innovativa e sperimentale modalità di visualizzazione dati dell'inventario: la **IttioVision** :fish:!
|
||||
- Clona dispositivi per non dover rimettere gli stessi dati duecentomila volte
|
||||
|
||||
## Installazione
|
||||
- Clonare il repository su un computer con installato Apache 2 utilizzando `git clone git@github.com:Steffo99/estus.git`.
|
||||
|
|
49
server.py
49
server.py
|
@ -547,7 +547,7 @@ def page_disp_show(did):
|
|||
opzioni = ["Centralino", "Dispositivo generico di rete", "Marcatempo", "PC", "Portatile", "POS", "Router",
|
||||
"Server", "Stampante di rete", "Switch", "Telefono IP", "Monitor", "Scanner", "Stampante locale"]
|
||||
reti = Rete.query.order_by(Rete.nome).all()
|
||||
return render_template("dispositivo/show.htm", dispositivo=disp, accessi=accessi, impiegati=impiegati,
|
||||
return render_template("dispositivo/show.htm", action="show", dispositivo=disp, accessi=accessi, impiegati=impiegati,
|
||||
pagetype="disp", user=session.get("username"), opzioni=opzioni, reti=reti)
|
||||
else:
|
||||
disp = Dispositivo.query.get_or_404(did)
|
||||
|
@ -590,6 +590,53 @@ def page_disp_show(did):
|
|||
return redirect(url_for('page_disp_list'))
|
||||
|
||||
|
||||
@app.route('/disp_clone/<int:did>', methods=['GET', 'POST'])
|
||||
def page_disp_clone(did):
|
||||
if 'username' not in session:
|
||||
return abort(403)
|
||||
if request.method == 'GET':
|
||||
disp = Dispositivo.query.get_or_404(did)
|
||||
accessi = Accesso.query.filter_by(did=did).all()
|
||||
impiegati = Impiegato.query.order_by(Impiegato.nomeimpiegato).all()
|
||||
opzioni = ["Centralino", "Dispositivo generico di rete", "Marcatempo", "PC", "Portatile", "POS", "Router",
|
||||
"Server", "Stampante di rete", "Switch", "Telefono IP", "Monitor", "Scanner", "Stampante locale"]
|
||||
reti = Rete.query.order_by(Rete.nome).all()
|
||||
return render_template("dispositivo/show.htm", action="clone", dispositivo=disp, accessi=accessi, impiegati=impiegati,
|
||||
pagetype="disp", user=session.get("username"), opzioni=opzioni, reti=reti)
|
||||
else:
|
||||
if request.form["inv_ced"]:
|
||||
try:
|
||||
int(request.form["inv_ced"])
|
||||
except ValueError:
|
||||
return render_template("error.htm", error="Il campo Inventario CED deve contenere un numero.")
|
||||
if request.form["inv_ente"]:
|
||||
try:
|
||||
int(request.form["inv_ente"])
|
||||
except ValueError:
|
||||
return render_template("error.htm", error="Il campo Inventario ente deve contenere un numero.")
|
||||
nuovodisp = Dispositivo(request.form['tipo'], request.form['marca'], request.form['modello'],
|
||||
int(request.form['inv_ced']) if request.form['inv_ced'] else None,
|
||||
int(request.form['inv_ente']) if request.form['inv_ente'] else None,
|
||||
request.form['fornitore'], request.form['rete'], request.form['seriale'],
|
||||
request.form['ip'])
|
||||
db.session.add(nuovodisp)
|
||||
db.session.commit()
|
||||
# Trova tutti gli utenti, edizione sporco hack in html
|
||||
users = list()
|
||||
while True:
|
||||
# Trova tutti gli utenti esistenti
|
||||
userstring = 'utente{}'.format(len(users))
|
||||
if userstring in request.form:
|
||||
users.append(request.form[userstring])
|
||||
else:
|
||||
break
|
||||
for user in users:
|
||||
nuovologin = Accesso(int(user), nuovodisp.did)
|
||||
db.session.add(nuovologin)
|
||||
db.session.commit()
|
||||
return redirect(url_for('page_disp_list'))
|
||||
|
||||
|
||||
@app.route('/net_add', methods=['GET', 'POST'])
|
||||
def page_net_add():
|
||||
"""Pagina di creazione nuova rete:
|
||||
|
|
|
@ -27,7 +27,12 @@
|
|||
<td>{{ d[0].dispositivo.modello }}</td>
|
||||
<td>{{ d[0].dispositivo.fornitore }}</td>
|
||||
<td>{{ d[0].dispositivo.seriale }}</td>
|
||||
<td><a href="/disp_details/{{ d[0].did }}"><span class="glyphicon glyphicon-zoom-in"></span></a> <a href="/disp_show/{{ d[0].did }}"><span class="glyphicon glyphicon-pencil"></span></a> <a href="/disp_del/{{ d[0].did }}"><span class="glyphicon glyphicon-remove"></span></a></td>
|
||||
<td>
|
||||
<a href="/disp_details/{{ d[0].did }}" title="Dettagli"><span class="glyphicon glyphicon-zoom-in"></span></a>
|
||||
<a href="/disp_show/{{ d[0].did }}" title="Modifica"><span class="glyphicon glyphicon-pencil"></span></a>
|
||||
<a href="/disp_clone/{{ d[0].did }}" title="Clona"><span class="glyphicon glyphicon-duplicate"></span></a>
|
||||
<a href="/disp_del/{{ d[0].did }}" title="Elimina"><span class="glyphicon glyphicon-remove"></span></a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
|
|
|
@ -36,9 +36,13 @@
|
|||
{% endblock %}
|
||||
{% block content %}
|
||||
<h1>
|
||||
{% if action == "show" %}
|
||||
Modifica dispositivo
|
||||
{% elif action == "clone" %}
|
||||
Clona dispositivo
|
||||
{% endif %}
|
||||
</h1>
|
||||
<form class="form-horizontal" action="/disp_show/{{ dispositivo.did }}" method="post">
|
||||
<form class="form-horizontal" action="/disp_{{ action }}/{{ dispositivo.did }}" method="post">
|
||||
<div class="form-group">
|
||||
<label class="col-xs-2" for="">Tipo dispositivo</label>
|
||||
<div class="col-xs-10">
|
||||
|
|
Loading…
Reference in a new issue