summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app.py16
-rw-r--r--templates/index.html20
2 files changed, 28 insertions, 8 deletions
diff --git a/app.py b/app.py
index 225c167..78c97f2 100644
--- a/app.py
+++ b/app.py
@@ -35,8 +35,12 @@ class dbProxy(object):
score = 1/interactions * (joke["upvotes"]+1)/interactions
return score
- def getJokes(self):
- jokes = self.c.execute("SELECT * FROM jokes").fetchall()
+ def getPages(self, perpage):
+ l = self.c.execute("SELECT COUNT(*) FROM jokes").fetchone()['COUNT(*)']
+ return int(l/perpage)+1
+
+ def getJokes(self, perpage, page):
+ jokes = self.c.execute("SELECT * FROM jokes LIMIT ? OFFSET ?", (perpage, perpage*page)).fetchall()
jokes = sorted(jokes, key=self.sort, reverse=True)
return jokes
@@ -64,6 +68,7 @@ def db():
return db
app = Flask(__name__)
+PERPAGE = 10
@app.teardown_appcontext
def close_db(exception):
@@ -73,7 +78,12 @@ def close_db(exception):
@app.route('/')
def root():
- return render_template('index.html', jokes=db().getJokes())
+ return page(0)
+
+@app.route('/page/<int:num>')
+def page(num):
+ numpages = db().getPages(PERPAGE)
+ return render_template('index.html', currentpage=num, pages=[[]]*numpages, jokes=db().getJokes(PERPAGE, num))
@app.route('/submit', methods=['POST'])
def submit():
diff --git a/templates/index.html b/templates/index.html
index ca8f25b..08d89be 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -13,14 +13,14 @@
<h1>Lehrersprüche</h1>
<div class="divider"></div>
{% for joke in jokes %}
- <div class="section row valign-wrapper">
+ <div class="row section valign-wrapper">
<form class="col s2 row" action="vote" method="post">
<input type="hidden" name="id" value="{{ joke.id }}">
<button class="btn{% if joke.reports>0 %}-flat{% endif %} col s12" type="submit" name="vote" value="upvote"><i class="material-icons">thumb_up</i> {{ joke.upvotes }}</button>
<button class="btn{% if joke.reports>0 %}-flat{% endif %} col s12" type="submit" name="vote" value="downvote"><i class="material-icons">thumb_down</i> {{ joke.downvotes }}</button>
</form>
- <div class="col s8 {% if joke.reports>0 %}grey-text{% endif %}">
- <p>{{ joke.text|safe }}</p>
+ <div class="valign col s8 {% if joke.reports>0 %}grey-text{% endif %}">
+ {{ joke.text|safe }}
</div>
<form class="col s2" action="report" method="post">
<input type="hidden" name="id" value="{{ joke.id }}">
@@ -32,8 +32,18 @@
</div>
<div class="divider"></div>
{% endfor %}
- <div class="section row">
- <form class="col s12" action="submit" method="post">
+ <div class="section center">
+ <ul class="pagination">
+ <li{% if currentpage==0 %} class="disabled"{% endif %}><a href="/page/{{ currentpage-1 }}"><i class="material-icons">chevron_left</i></a></li>
+ {% for page in pages %}
+ <li{% if currentpage==loop.index0 %} class="active"{% endif %}><a href="/page/{{ loop.index0 }}">{{ loop.index }}</a></li>
+ {% endfor %}
+ <li{% if currentpage==loop.length-1 %} class="disabled"{% endif %}><a href="/page/{{ currentpage+1 }}"><i class="material-icons">chevron_right</i></a></li>
+ </ul>
+ </div>
+ <div class="divider"></div>
+ <div class="section">
+ <form action="submit" method="post">
<div class="row valign-wrapper">
<div class="col s8 input-field">
<label for="text">Neuen Spruch hinzufügen</label>