From 8df4826745e5e8d17a7f07f2a0753ea4fdebf410 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Thu, 2 Feb 2017 09:33:54 +0100 Subject: [PATCH] Miglioramenti e classe Dispositivo --- dbgen.py | 41 ++++++++++++++++++++++++- server.py | 52 +++++++++++++++++++++++++++++--- templates/dashboard.html.j2 | 6 ++-- templates/impiegato/add.html.j2 | 2 +- templates/impiegato/show.html.j2 | 4 +-- templates/servizio/show.html.j2 | 2 +- 6 files changed, 94 insertions(+), 13 deletions(-) diff --git a/dbgen.py b/dbgen.py index 799146a..0374179 100644 --- a/dbgen.py +++ b/dbgen.py @@ -56,6 +56,7 @@ class Impiegato(db.Model): nomeimpiegato = db.Column(db.String(128)) username = db.Column(db.String(32), unique=True) passwd = db.Column(db.String(32)) + dispositivi = db.relationship("Accesso", backref='impiegato', lazy='dynamic') def __init__(self, sid, nome, username, passwd): self.sid = sid @@ -66,8 +67,46 @@ class Impiegato(db.Model): def __repr__(self): return "".format(self.nome) + +class Dispositivo(db.Model): + did = db.Column(db.Integer, primary_key=True) + utenti = db.relationship("Accesso", backref='dispositivo', lazy='dynamic') + tipo = db.Column(db.String(32)) + marca = db.Column(db.String(64)) + modello = db.Column(db.String(32)) + inv_ced = db.Column(db.String(8)) + inv_ente = db.Column(db.String(8)) + fornitore = db.Column(db.String(64)) + + def __init__(self, did, tipo, marca, modello, inv_ced, inv_ente, fornitore): + self.did = did + self.tipo = tipo + self.marca = marca + self.modello = modello + self.inv_ced = inv_ced + self.inv_ente = inv_ente + self.fornitore = fornitore + + def __repr__(self): + return "".format(self.inv_ced) + + +class Accesso(db.Model): + aid = db.Column(db.Integer, primary_key=True) + iid = db.Column(db.Integer, db.ForeignKey('impiegato.iid')) + did = db.Column(db.Integer, db.ForeignKey('dispositivo.did')) + + def __init__(self, iid, did): + self.iid = iid + self.did = did + + def __repr__(self): + return "".format(iid, did) + db.create_all() -nuovouser = User('Snake', 'v3n0m') +nuovouser = User('stagista', 'smecds') +db.session.add(nuovouser) +nuovouser = User('gmacchi', 'steffo99') db.session.add(nuovouser) db.session.commit() diff --git a/server.py b/server.py index 80a96ad..88dfb13 100644 --- a/server.py +++ b/server.py @@ -1,4 +1,4 @@ -from flask import Flask, session, url_for, redirect, request, render_template +from flask import Flask, session, url_for, redirect, request, render_template, abort from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) @@ -57,6 +57,7 @@ class Impiegato(db.Model): nomeimpiegato = db.Column(db.String(128)) username = db.Column(db.String(32), unique=True) passwd = db.Column(db.String(32)) + dispositivi = db.relationship("Accesso", backref='impiegato', lazy='dynamic') def __init__(self, sid, nomeimpiegato, username, passwd): self.sid = sid @@ -65,12 +66,53 @@ class Impiegato(db.Model): self.passwd = passwd def __repr__(self): - return "".format(self.nomeimpiegato) + return "".format(self.nome) + + +class Dispositivo(db.Model): + did = db.Column(db.Integer, primary_key=True) + utenti = db.relationship("Accesso", backref='dispositivo', lazy='dynamic') + tipo = db.Column(db.String(32)) + marca = db.Column(db.String(64)) + modello = db.Column(db.String(32)) + inv_ced = db.Column(db.String(8)) + inv_ente = db.Column(db.String(8)) + fornitore = db.Column(db.String(64)) + + def __init__(self, did, tipo, marca, modello, inv_ced, inv_ente, fornitore): + self.did = did + self.tipo = tipo + self.marca = marca + self.modello = modello + self.inv_ced = inv_ced + self.inv_ente = inv_ente + self.fornitore = fornitore + + def __repr__(self): + return "".format(self.inv_ced) + + +class Accesso(db.Model): + aid = db.Column(db.Integer, primary_key=True) + iid = db.Column(db.Integer, db.ForeignKey('impiegato.iid')) + did = db.Column(db.Integer, db.ForeignKey('dispositivo.did')) + + def __init__(self, iid, did): + self.iid = iid + self.did = did + + def __repr__(self): + return "".format(iid, did) + # Funzioni del sito def login(username, password): user = User.query.filter_by(username=username).first() - return password == user.passwd + try: + return password == user.passwd + except AttributeError: + # Se non esiste l'Utente + return False # Sito @app.route('/') @@ -92,7 +134,7 @@ def page_login(): session['username'] = request.form['username'] return redirect(url_for('page_dashboard')) else: - return "Errore." + abort(403) @app.route('/dashboard') def page_dashboard(): @@ -220,7 +262,7 @@ def page_imp_add(): if 'username' not in session: return redirect(url_for('page_login')) if request.method == 'GET': - servizi = Servizio.query.all() + servizi = Servizio.query.join(Ente).all() css = url_for("static", filename="style.css") return render_template("impiegato/add.html.j2", css=css, servizi=servizi, type="imp", user=session["username"]) else: diff --git a/templates/dashboard.html.j2 b/templates/dashboard.html.j2 index 2c82de0..8135555 100644 --- a/templates/dashboard.html.j2 +++ b/templates/dashboard.html.j2 @@ -8,7 +8,7 @@ {% include 'nav.html.j2' %}
-
+

Servizi per ente

@@ -21,7 +21,7 @@ {% endfor %}
-
+

Utenti per ente

@@ -34,7 +34,7 @@ {% endfor %}
-
+
Destra
diff --git a/templates/impiegato/add.html.j2 b/templates/impiegato/add.html.j2 index 19e5e6c..033c348 100644 --- a/templates/impiegato/add.html.j2 +++ b/templates/impiegato/add.html.j2 @@ -13,7 +13,7 @@
diff --git a/templates/impiegato/show.html.j2 b/templates/impiegato/show.html.j2 index c9eceaf..b7cc7d0 100644 --- a/templates/impiegato/show.html.j2 +++ b/templates/impiegato/show.html.j2 @@ -11,9 +11,9 @@ Modifica impiegato - {% for servizio in servizi %} - + {% endfor %} diff --git a/templates/servizio/show.html.j2 b/templates/servizio/show.html.j2 index b69b0ef..b00603d 100644 --- a/templates/servizio/show.html.j2 +++ b/templates/servizio/show.html.j2 @@ -13,7 +13,7 @@