From eb729cb3618cf54d8e985f09cf154659d3f2f9f7 Mon Sep 17 00:00:00 2001 From: Mathieu Bridon Date: Mar 19 2014 09:42:35 +0000 Subject: List projects from the database There's no need to list the directory any more, now that we can create projects. --- diff --git a/progit/app.py b/progit/app.py index 5851e15..27af8c1 100644 --- a/progit/app.py +++ b/progit/app.py @@ -39,13 +39,11 @@ def index(): limit = APP.config['ITEM_PER_PAGE'] start = limit * (page - 1) - end = limit * page - repos = sorted(os.listdir(APP.config['GIT_FOLDER'])) - repos_length = len(repos) - total_page = int(ceil(repos_length / float(limit))) + repos = progit.lib.list_projects(SESSION, start=start, limit=limit) + num_repos = progit.lib.count_projects(SESSION) - repos = repos[start:end] + total_page = int(ceil(num_repos / float(limit))) return flask.render_template( 'index.html', diff --git a/progit/lib.py b/progit/lib.py index 50f0d10..a91e2ef 100644 --- a/progit/lib.py +++ b/progit/lib.py @@ -79,3 +79,19 @@ def new_project(session, user, name, folder, pygit2.init_repository(gitrepo, bare=True) return 'Project "%s" created' % name + +def list_projects(session, start=None, limit=None): + """List existing projects""" + projects = session.query(model.Project) + + if start is not None: + projects = projects.offset(start) + + if limit is not None: + projects = projects.limit(limit) + + return projects.all() + +def count_projects(session): + """Count the number of projects in the database""" + return session.query(model.Project).count() diff --git a/progit/templates/index.html b/progit/templates/index.html index eaa1353..61e59f2 100644 --- a/progit/templates/index.html +++ b/progit/templates/index.html @@ -38,8 +38,8 @@