From 7cb9335c0ac8bcf26be1a580f32471adbae31e3b Mon Sep 17 00:00:00 2001 From: benaryorg Date: Sun, 25 May 2014 15:45:54 +0200 Subject: [PATCH] Added a simple UI --- models.py | 3 ++- server.py | 61 +++++++++++++++++++++++++++++++++++++++++--- templates/diary.html | 22 ++++++++++++++++ templates/index.html | 9 ++++++- templates/login.html | 14 ++++++++++ 5 files changed, 103 insertions(+), 6 deletions(-) create mode 100644 templates/diary.html create mode 100644 templates/login.html diff --git a/models.py b/models.py index df39f26..be90b19 100755 --- a/models.py +++ b/models.py @@ -38,4 +38,5 @@ class Entry(Base): def __init__(self,diary,text): self.diary=diary self.text=text - self.date=datetime.datetime.now().strftime("%Y-%m-%d") + #self.date=datetime.datetime.now().strftime("%Y-%m-%d") + self.date=datetime.datetime.now() diff --git a/server.py b/server.py index 3768a02..470ca6b 100755 --- a/server.py +++ b/server.py @@ -1,22 +1,75 @@ #!/usr/bin/env python2.7 import os -from flask import Flask,render_template,abort,redirect,url_for,request +from flask import Flask,render_template,abort,redirect,url_for,request,session from database import db_session as db +from models import * app=Flask(__name__) +def loggedin(): + username=session.get('user') + password=session.get('pass') + if username and password: + user=db.query(User).filter_by(username=username).first() + if user: + if user.checkpass(password): + session['id']=user.id + return True + return False + +def setuser(name,pwd): + session['user']=name + session['pass']=pwd + @app.errorhandler(404) def err404(err): return redirect(url_for('index')) @app.route('/') def index(): - return render_template('index.html') + if not loggedin(): + return redirect(url_for('login')) + diaries=db.query(Diary).filter_by(owner=session['id']).all() + return render_template('index.html',diaries=diaries) -@app.route('/login',methods=['GET','POST','PUT']) +@app.route('/login',methods=['GET','POST']) def login(): - return 'login' + if request.method=='GET': + return render_template('login.html') + username=request.form['user'] + password=request.form['pass'] + setuser(username,password) + if not loggedin(): + setuser('','') + return redirect(url_for('index')) + +@app.route('/logout') +def logout(): + setuser('','') + return redirect(url_for('index')) + +@app.route('/diary/') +def diary(name=''): + if not loggedin(): + abort(403) + d=db.query(Diary).filter_by(name=name,owner=session['id']).first() + if not d: + abort(404) + ents=db.query(Entry).filter_by(diary=d.id).all() + return render_template('diary.html',diary=d,entries=ents) + +@app.route('/diary//addentry',methods=['POST']) +def addentry(name=''): + if not loggedin(): + abort(403) + d=db.query(Diary).filter_by(name=name,owner=session['id']).first() + if not d: + abort(404) + e=Entry(d.id,request.form['text']) + db.add(e) + db.commit() + return 'success' if __name__=='__main__': app.debug=True diff --git a/templates/diary.html b/templates/diary.html new file mode 100644 index 0000000..56eb7b3 --- /dev/null +++ b/templates/diary.html @@ -0,0 +1,22 @@ + + + + + Diary – {{ diary.name }} + + + + +

{{ diary.name }}:

+
+ {% for e in entries %} +

+ {{ e.date }}: +

+ {{ e.text }} +

+

+ {% endfor %} +
+ + diff --git a/templates/index.html b/templates/index.html index c9e0d56..2e80da4 100644 --- a/templates/index.html +++ b/templates/index.html @@ -7,6 +7,13 @@ - No content yet! +

Logout

+
    + {% for d in diaries %} +
  • + {{ d.name }} +
  • + {% endfor %} +
diff --git a/templates/login.html b/templates/login.html new file mode 100644 index 0000000..a7d30af --- /dev/null +++ b/templates/login.html @@ -0,0 +1,14 @@ + + + + + Diary – Login + + +
+
+
+ +
+ +