First commit
commit
8ba1bb694d
|
@ -0,0 +1,2 @@
|
||||||
|
config.py
|
||||||
|
*pyc
|
|
@ -0,0 +1,39 @@
|
||||||
|
from flask import Flask, g, render_template
|
||||||
|
import psycopg2
|
||||||
|
|
||||||
|
|
||||||
|
app = Flask(__name__)
|
||||||
|
app.config.from_object('config')
|
||||||
|
|
||||||
|
|
||||||
|
@app.before_request
|
||||||
|
def before_request():
|
||||||
|
g.db = psycopg2.connect(app.config['DB'])
|
||||||
|
|
||||||
|
|
||||||
|
@app.teardown_request
|
||||||
|
def teardown_request(exception):
|
||||||
|
g.db.close()
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/terms')
|
||||||
|
@app.route('/')
|
||||||
|
def list_terms():
|
||||||
|
cur = g.db.cursor()
|
||||||
|
cur.execute("select _term._name, count(_entry._text) from _term left join _entry on _entry._term_oid = _term._oid group by _term._oid order by _term._name")
|
||||||
|
terms = [(t[0].decode('utf-8'), t[1]) for t in cur.fetchall()]
|
||||||
|
cur.close()
|
||||||
|
return render_template('terms.html', terms=terms)
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/term/<term>')
|
||||||
|
def show_term(term):
|
||||||
|
cur = g.db.cursor()
|
||||||
|
cur.execute('select _entry._text, _entry._added_at, _entry._added_by from _term left join _entry on _entry._term_oid = _term._oid where lower(_term._name) = lower(%s) order by _entry._added_at', [term,])
|
||||||
|
entries = [(e[0].decode('utf-8'), e[1], e[2]) for e in cur.fetchall()]
|
||||||
|
cur.close()
|
||||||
|
return render_template('term.html', entries=entries, term=term)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
app.run(debug=True)
|
|
@ -0,0 +1,8 @@
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>oodviewer</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
{% block body %}{% endblock %}
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,9 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
{% block body %}
|
||||||
|
<h1>Entries for {{term}}</h1>
|
||||||
|
<ul>
|
||||||
|
{% for entry, at, by in entries %}
|
||||||
|
<li>{{ entry}} <i>(added by {{ by }} on {{ at }})</i></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% endblock %}
|
|
@ -0,0 +1,9 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
{% block body %}
|
||||||
|
<h1>Available terms:</h1>
|
||||||
|
<ul>
|
||||||
|
{% for term, count in terms %}
|
||||||
|
<li><a href="/term/{{term}}">{{term}}</a> ({{count}} entries)</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% endblock %}
|
Loading…
Reference in New Issue