mirror of
https://github.com/Steffo99/estus.git
synced 2024-11-22 07:34:19 +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
|
- Aggiunta nuovi dispositivi tramite codice a barre
|
||||||
- Semplificati o rimossi molti dei campi inutilizzati del vecchio inventario
|
- Semplificati o rimossi molti dei campi inutilizzati del vecchio inventario
|
||||||
- Innovativa e sperimentale modalità di visualizzazione dati dell'inventario: la **IttioVision** :fish:!
|
- Innovativa e sperimentale modalità di visualizzazione dati dell'inventario: la **IttioVision** :fish:!
|
||||||
|
- Clona dispositivi per non dover rimettere gli stessi dati duecentomila volte
|
||||||
|
|
||||||
## Installazione
|
## Installazione
|
||||||
- Clonare il repository su un computer con installato Apache 2 utilizzando `git clone git@github.com:Steffo99/estus.git`.
|
- 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",
|
opzioni = ["Centralino", "Dispositivo generico di rete", "Marcatempo", "PC", "Portatile", "POS", "Router",
|
||||||
"Server", "Stampante di rete", "Switch", "Telefono IP", "Monitor", "Scanner", "Stampante locale"]
|
"Server", "Stampante di rete", "Switch", "Telefono IP", "Monitor", "Scanner", "Stampante locale"]
|
||||||
reti = Rete.query.order_by(Rete.nome).all()
|
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)
|
pagetype="disp", user=session.get("username"), opzioni=opzioni, reti=reti)
|
||||||
else:
|
else:
|
||||||
disp = Dispositivo.query.get_or_404(did)
|
disp = Dispositivo.query.get_or_404(did)
|
||||||
|
@ -590,6 +590,53 @@ def page_disp_show(did):
|
||||||
return redirect(url_for('page_disp_list'))
|
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'])
|
@app.route('/net_add', methods=['GET', 'POST'])
|
||||||
def page_net_add():
|
def page_net_add():
|
||||||
"""Pagina di creazione nuova rete:
|
"""Pagina di creazione nuova rete:
|
||||||
|
|
|
@ -27,7 +27,12 @@
|
||||||
<td>{{ d[0].dispositivo.modello }}</td>
|
<td>{{ d[0].dispositivo.modello }}</td>
|
||||||
<td>{{ d[0].dispositivo.fornitore }}</td>
|
<td>{{ d[0].dispositivo.fornitore }}</td>
|
||||||
<td>{{ d[0].dispositivo.seriale }}</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>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -36,9 +36,13 @@
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h1>
|
<h1>
|
||||||
|
{% if action == "show" %}
|
||||||
Modifica dispositivo
|
Modifica dispositivo
|
||||||
|
{% elif action == "clone" %}
|
||||||
|
Clona dispositivo
|
||||||
|
{% endif %}
|
||||||
</h1>
|
</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">
|
<div class="form-group">
|
||||||
<label class="col-xs-2" for="">Tipo dispositivo</label>
|
<label class="col-xs-2" for="">Tipo dispositivo</label>
|
||||||
<div class="col-xs-10">
|
<div class="col-xs-10">
|
||||||
|
|
Loading…
Reference in a new issue