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},)