Mercurial > kallithea
comparison rhodecode/model/db.py @ 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 | c1eda8ec4a46 |
children | 187a924ed653 |
comparison
equal
deleted
inserted
replaced
1154:36fe593dfe4b | 1155:37a9421f32a0 |
---|---|
209 @classmethod | 209 @classmethod |
210 def by_repo_name(cls, repo_name): | 210 def by_repo_name(cls, repo_name): |
211 return Session.query(cls).filter(cls.repo_name == repo_name).one() | 211 return Session.query(cls).filter(cls.repo_name == repo_name).one() |
212 | 212 |
213 @property | 213 @property |
214 def just_name(self): | |
215 return self.repo_name.split('/')[-1] | |
216 | |
217 @property | |
218 def groups_with_parents(self): | |
219 groups = [] | |
220 if self.group is None: | |
221 return groups | |
222 | |
223 cur_gr = self.group | |
224 groups.insert(0, cur_gr) | |
225 while 1: | |
226 gr = getattr(cur_gr, 'parent_group', None) | |
227 cur_gr = cur_gr.parent_group | |
228 if gr is None: | |
229 break | |
230 groups.insert(0, gr) | |
231 | |
232 return groups | |
233 | |
234 @property | |
214 def groups_and_repo(self): | 235 def groups_and_repo(self): |
215 just_name = self.repo_name.split('/')[-1] | 236 return self.groups_with_parents, self.just_name |
216 | |
217 return self.group, just_name | |
218 | 237 |
219 | 238 |
220 class Group(Base): | 239 class Group(Base): |
221 __tablename__ = 'groups' | 240 __tablename__ = 'groups' |
222 __table_args__ = (UniqueConstraint('group_name'), {'useexisting':True},) | 241 __table_args__ = (UniqueConstraint('group_name'), {'useexisting':True},) |