Mercurial > kallithea
changeset 1155:37a9421f32a0 beta
Added handy methods to Repository model for fetching groups with parents
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Fri, 18 Mar 2011 22:04:21 +0100 |
parents | 36fe593dfe4b |
children | c9a9e0b3baf8 |
files | rhodecode/model/__init__.py rhodecode/model/db.py |
diffstat | 2 files changed, 25 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/rhodecode/model/__init__.py Fri Mar 18 19:39:48 2011 +0100 +++ b/rhodecode/model/__init__.py Fri Mar 18 22:04:21 2011 +0100 @@ -44,7 +44,9 @@ # MA 02110-1301, USA. import logging + from rhodecode.model import meta + log = logging.getLogger(__name__) def init_model(engine): @@ -54,7 +56,7 @@ :param engine: engine to bind to """ - log.info("initializing db models for %s", engine) + log.info("initializing db for %s", engine) meta.Base.metadata.bind = engine class BaseModel(object):
--- a/rhodecode/model/db.py Fri Mar 18 19:39:48 2011 +0100 +++ b/rhodecode/model/db.py Fri Mar 18 22:04:21 2011 +0100 @@ -211,10 +211,29 @@ return Session.query(cls).filter(cls.repo_name == repo_name).one() @property + def just_name(self): + return self.repo_name.split('/')[-1] + + @property + def groups_with_parents(self): + groups = [] + if self.group is None: + return groups + + cur_gr = self.group + groups.insert(0, cur_gr) + while 1: + gr = getattr(cur_gr, 'parent_group', None) + cur_gr = cur_gr.parent_group + if gr is None: + break + groups.insert(0, gr) + + return groups + + @property def groups_and_repo(self): - just_name = self.repo_name.split('/')[-1] - - return self.group, just_name + return self.groups_with_parents, self.just_name class Group(Base):