changeset 6223:873a3839865d

db: add a Repository.query() shortcut
author Søren Løvborg <sorenl@unity3d.com>
date Wed, 14 Sep 2016 15:52:26 +0200
parents 8ad40ef0ea80
children 506dd480e408
files kallithea/controllers/admin/repo_groups.py kallithea/controllers/admin/repos.py kallithea/controllers/home.py kallithea/controllers/journal.py kallithea/model/db.py
diffstat 5 files changed, 18 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/controllers/admin/repo_groups.py	Thu Sep 15 13:36:05 2016 +0200
+++ b/kallithea/controllers/admin/repo_groups.py	Wed Sep 14 15:52:26 2016 +0200
@@ -309,10 +309,7 @@
             .filter(RepoGroup.group_parent_id == c.group.group_id).all()
         c.groups = self.scm_model.get_repo_groups(groups)
 
-        c.repos_list = Repository.query() \
-                        .filter(Repository.group_id == c.group.group_id) \
-                        .order_by(func.lower(Repository.repo_name)) \
-                        .all()
+        c.repos_list = Repository.query(sorted=True).filter_by(group=c.group).all()
 
         repos_data = RepoModel().get_repos_as_dict(repos_list=c.repos_list,
                                                    admin=False, short_name=True)
--- a/kallithea/controllers/admin/repos.py	Thu Sep 15 13:36:05 2016 +0200
+++ b/kallithea/controllers/admin/repos.py	Wed Sep 14 15:52:26 2016 +0200
@@ -98,9 +98,7 @@
         return defaults
 
     def index(self, format='html'):
-        _list = Repository.query() \
-                        .order_by(func.lower(Repository.repo_name)) \
-                        .all()
+        _list = Repository.query(sorted=True).all()
 
         c.repos_list = RepoList(_list, perm_set=['repository.admin'])
         repos_data = RepoModel().get_repos_as_dict(repos_list=c.repos_list,
--- a/kallithea/controllers/home.py	Thu Sep 15 13:36:05 2016 +0200
+++ b/kallithea/controllers/home.py	Wed Sep 14 15:52:26 2016 +0200
@@ -57,10 +57,7 @@
         c.groups = self.scm_model.get_repo_groups()
         c.group = None
 
-        c.repos_list = Repository.query() \
-                        .filter(Repository.group_id == None) \
-                        .order_by(func.lower(Repository.repo_name)) \
-                        .all()
+        c.repos_list = Repository.query(sorted=True).filter_by(group=None).all()
 
         repos_data = RepoModel().get_repos_as_dict(repos_list=c.repos_list,
                                                    admin=False, short_name=True)
--- a/kallithea/controllers/journal.py	Thu Sep 15 13:36:05 2016 +0200
+++ b/kallithea/controllers/journal.py	Wed Sep 14 15:52:26 2016 +0200
@@ -211,10 +211,8 @@
         if request.environ.get('HTTP_X_PARTIAL_XHR'):
             return render('journal/journal_data.html')
 
-        repos_list = Session().query(Repository) \
-                     .filter(Repository.user_id ==
-                             self.authuser.user_id) \
-                     .order_by(func.lower(Repository.repo_name)).all()
+        repos_list = Repository.query(sorted=True) \
+            .filter_by(user_id=self.authuser.user_id).all()
 
         repos_data = RepoModel().get_repos_as_dict(repos_list=repos_list,
                                                    admin=True)
--- a/kallithea/model/db.py	Thu Sep 15 13:36:05 2016 +0200
+++ b/kallithea/model/db.py	Wed Sep 14 15:52:26 2016 +0200
@@ -1090,6 +1090,19 @@
             log.error(traceback.format_exc())
 
     @classmethod
+    def query(cls, sorted=False):
+        """Add Repository-specific helpers for common query constructs.
+
+        sorted: if True, apply the default ordering (name, case insensitive).
+        """
+        q = super(Repository, cls).query()
+
+        if sorted:
+            q = q.order_by(func.lower(Repository.repo_name))
+
+        return q
+
+    @classmethod
     def url_sep(cls):
         return URL_SEP