2 # -*- coding: utf-8 -*-
4 from flask
import Flask
, request
, session
, g
, redirect
, url_for
, abort
, \
7 from datetime
import date
, timedelta
9 locale
.setlocale(locale
.LC_ALL
, '')
11 DATABASE
= '/tmp/cavote.db'
12 SECRET_KEY
= '{J@uRKO,xO-PK7B,jF?>iHbxLasF9s#zjOoy=+:'
18 app
.config
.from_object(__name__
)
21 return sqlite3
.connect(app
.config
['DATABASE'])
28 def teardown_request(exception
):
31 @app.route('/admin/votes')
33 cur
= g
.db
.execute('select title, description, date from votes order by id desc')
34 votes
= [dict(title
=row
[0], description
=row
[1], date
=row
[2]) for row
in cur
.fetchall()]
35 return render_template('show_votes.html', votes
=votes
)
37 @app.route('/admin/vote/add', methods
=['POST'])
39 if not session
.get('logged_in'):
41 g
.db
.execute('insert into votes (title, description, date) values (?, ?, ?)',
42 [request
.form
['title'], request
.form
['description'], date
.today() + timedelta(days
=60)])
44 flash('New entry was successfully posted')
45 return redirect(url_for('show_votes'))
47 @app.route('/login', methods
=['GET', 'POST'])
50 if request
.method
== 'POST':
51 if request
.form
['username'] != app
.config
['USERNAME']:
52 error
= 'Invalid username'
53 elif request
.form
['password'] != app
.config
['PASSWORD']:
54 error
= 'Invalid password'
56 session
['logged_in'] = True
57 flash('You were logged in')
58 return redirect(url_for('show_votes'))
59 return render_template('login.html', error
=error
)
63 session
.pop('logged_in', None)
64 flash('You were logged out')
65 return redirect(url_for('show_votes'))
69 if __name__
== '__main__':