summaryrefslogtreecommitdiffstats
path: root/views.py
diff options
context:
space:
mode:
authorAlexander Sulfrian <alex@spline.inf.fu-berlin.de>2014-11-19 02:38:09 +0100
committerAlexander Sulfrian <alex@spline.inf.fu-berlin.de>2014-11-19 02:48:45 +0100
commitdacfc5fe13dc6b46fa90e5ef9fb07509afd5d777 (patch)
tree105012c6c041d9bc98045846dd82c6ab262875cd /views.py
parent2d04a1bd8efe3c440ecf66a22b3ae138ed8eaabe (diff)
downloadpadlite-teams-dacfc5fe13dc6b46fa90e5ef9fb07509afd5d777.tar.gz
padlite-teams-dacfc5fe13dc6b46fa90e5ef9fb07509afd5d777.tar.bz2
padlite-teams-dacfc5fe13dc6b46fa90e5ef9fb07509afd5d777.zip
templates/all: add paginated list of all browsable groups
Diffstat (limited to 'views.py')
-rw-r--r--views.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/views.py b/views.py
index f52697c..d36e1ab 100644
--- a/views.py
+++ b/views.py
@@ -5,6 +5,7 @@ from flask_peewee.utils import get_object_or_404
from models import Group, Member
from forms import CreateGroup, DeleteForm, ChangeGroup
from utils import templated
+from pagination import Pagination
from filters import *
def get_group_or_404(*query):
@@ -27,6 +28,19 @@ def index():
return {'groups': groups, 'create_form': form}
+@app.route('/_all/', defaults={'page': 1})
+@app.route('/_all/_page/<int:page>')
+@templated('all.html')
+def all(page):
+ user_groups = Group.select().join(Member).where(Member.user == g.user)
+ public_groups = Group.select().where(~(Group.id << user_groups)).where(Group.browsable == True)
+ count = public_groups.count()
+ return {'groups': public_groups.paginate(page, 10),
+ 'count': count,
+ 'pagination': Pagination(page, 10, count),
+ 'breadcrumbs': [{'text': 'Public groups'}]}
+
+
@app.route('/<group_name>/_delete/', methods=['GET', 'POST'])
@templated('group_delete.html')
@auth.login_required