diff --git a/dbgen.py b/dbgen.py index 73d14f2..03bc584 100644 --- a/dbgen.py +++ b/dbgen.py @@ -27,12 +27,12 @@ class Ente(db.Model): nomebreveente = db.Column(db.String(16)) servizi = db.relationship("Servizio", backref='ente', lazy='dynamic') - def __init__(self, nome, nomebreve): - self.nome = nome - self.nomebreve = nomebreve + def __init__(self, nomeente, nomebreveente): + self.nomeente = nomeente + self.nomebreveente = nomebreveente def __repr__(self): - return "".format(self.nomebreve) + return "".format(self.nomebreveente) # Servizio di un ente @@ -42,12 +42,12 @@ class Servizio(db.Model): nomeservizio = db.Column(db.String(128)) impiegati = db.relationship("Impiegato", backref='servizio', lazy='dynamic') - def __init__(self, eid, nome): + def __init__(self, eid, nomeservizio): self.eid = eid - self.nome = nome + self.nomeservizio = nomeservizio def __repr__(self): - return "".format(self.nome) + return "".format(self.nomeservizio) class Impiegato(db.Model): @@ -58,9 +58,9 @@ class Impiegato(db.Model): passwd = db.Column(db.String(32)) dispositivi = db.relationship("Accesso", backref='impiegato', lazy='dynamic') - def __init__(self, sid, nome, username, passwd): + def __init__(self, sid, nomeimpiegato, username, passwd): self.sid = sid - self.nome = nome + self.nomeimpiegato = nomeimpiegato self.username = username self.passwd = passwd @@ -78,7 +78,7 @@ class Dispositivo(db.Model): inv_ente = db.Column(db.String(8)) fornitore = db.Column(db.String(64)) - def __init__(self, tipo, marca, modello, inv_ced, inv_ente, fornitore + def __init__(self, tipo, marca, modello, inv_ced, inv_ente, fornitore): self.tipo = tipo self.marca = marca self.modello = modello @@ -102,6 +102,7 @@ class Accesso(db.Model): def __repr__(self): return "".format(iid, did) + db.create_all() nuovouser = User('stagista', 'smecds') diff --git a/server.py b/server.py index 9ee9c1d..3c1093f 100644 --- a/server.py +++ b/server.py @@ -101,7 +101,7 @@ class Accesso(db.Model): self.did = did def __repr__(self): - return "".format(iid, did) + return "".format(self.iid, self.did) # Funzioni del sito @@ -326,6 +326,20 @@ def page_disp_add(): nuovodisp = Dispositivo(request.form['tipo'], request.form['marca'], request.form['modello'], request.form['inv_ced'], request.form['inv_ente'], request.form['fornitore']) 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() + #TODO: se un dispositivo non ha utenti si incasina parecchio return redirect(url_for('page_disp_list')) @app.route('/disp_del/') @@ -341,38 +355,14 @@ def page_disp_del(did): def page_disp_list(): if 'username' not in session: return redirect(url_for('page_login')) + accessi = list() dispositivi = Dispositivo.query.all() + for dispositivo in dispositivi: + accesso = Accesso.query.join(Dispositivo).filter_by(did=dispositivo.did).join(Impiegato).all() + accessi.append(accesso) css = url_for("static", filename="style.css") - return render_template("dispositivo/list.html.j2", css=css, dispositivi=dispositivi, type="disp", user=session["username"]) + return render_template("dispositivo/list.html.j2", css=css, accessi=accessi, type="disp", user=session["username"]) -@app.route('/disp_list/') -def page_disp_list_plus(did): - if 'username' not in session: - return redirect(url_for('page_login')) - dispositivi = Dispositivo.query.all() - css = url_for("static", filename="style.css") - return render_template("dispositivo/list.html.j2", css=css, impiegati=impiegati, user=session["username"]) - -@app.route('/disp_show/', methods=['GET', 'POST']) -def page_disp_show(did): - if 'username' not in session: - return redirect(url_for('page_login')) - if request.method == "GET": - opzioni = ["Centralino", "Dispositivo generico di rete", "Marcatempo", "PC", "Portatile", "POS", "Router", "Server", "Stampante di rete", "Switch", "Telefono IP", "Monitor", "Scanner", "Stampante locale"] - dev = Dispositivo.query.get(did) - css = url_for("static", filename="style.css") - return render_template("dispositivo/show.html.j2", css=css, dispositivo=dev, tipi=opzioni, user=session["username"]) - else: - dev = Dispositivo.query.get(did) - dev.tipo = request.form["tipo"] - dev.marca = request.form["marca"] - dev.modello = request.form["modello"] - dev.inv_ced = request.form["inv_ced"] - dev.inv_ente = request.form["inv_ente"] - dev.fornitore = request.form["fornitore"] - db.session.commit() - return redirect(url_for('page_disp_list')) - -@app.route('/details_host') +@app.route('/disp_details') def page_details_host(): - return "Non implementato" + raise NotImplementedError() diff --git a/templates/dispositivo/add.html.j2 b/templates/dispositivo/add.html.j2 index 7b6387b..004f689 100644 --- a/templates/dispositivo/add.html.j2 +++ b/templates/dispositivo/add.html.j2 @@ -3,6 +3,35 @@ Aggiunta dispositivo - Inventario + + {% include 'nav.html.j2' %} @@ -23,12 +52,9 @@
-
- +
+
+
+
-
diff --git a/templates/dispositivo/details.html.j2 b/templates/dispositivo/details.html.j2 deleted file mode 100644 index e69de29..0000000 diff --git a/templates/dispositivo/list.html.j2 b/templates/dispositivo/list.html.j2 index 5040fe1..463a773 100644 --- a/templates/dispositivo/list.html.j2 +++ b/templates/dispositivo/list.html.j2 @@ -21,22 +21,20 @@ Modello Fornitore Ispeziona - Modifica Elimina - {% for dispositivo in dispositivi %} + {% for d in accessi %} - {{ dispositivo.tipo }} - ITS A FEATURE - {{ dispositivo.inv_ced }} - {{ dispositivo.inv_ente }} - {{ dispositivo.marca }} - {{ dispositivo.modello }} - {{ dispositivo.fornitore }} - - - + {{ d[0].dispositivo.tipo }} + {% for u in d %}

{{ u.impiegato.nomeimpiegato }}

{% endfor %} + {{ d[0].dispositivo.inv_ced }} + {{ d[0].dispositivo.inv_ente }} + {{ d[0].dispositivo.marca }} + {{ d[0].dispositivo.modello }} + {{ d[0].dispositivo.fornitore }} + + {% endfor %} diff --git a/templates/dispositivo/show.html.j2 b/templates/dispositivo/show.html.j2 deleted file mode 100644 index 830de00..0000000 --- a/templates/dispositivo/show.html.j2 +++ /dev/null @@ -1,73 +0,0 @@ - - - Modifica servizio - Inventario - - - - - {% include 'nav.html.j2' %} -
-

- Modifica servizio -

-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
-
- - diff --git a/templates/nav.html.j2 b/templates/nav.html.j2 index 262fb26..6047921 100644 --- a/templates/nav.html.j2 +++ b/templates/nav.html.j2 @@ -12,6 +12,7 @@
  • Enti
  • Servizi
  • Impiegati
  • +
  • Dispositivi