comparison rhodecode/model/scm.py @ 2440:1bc579bcd67a codereview

- pull request generates overview based on it's params - added page to show all pull-requests for a repository - db schema changes to support comments and inline comments for pull-requests
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 10 Jun 2012 18:15:00 +0200
parents e576410f911d
children 1f9c467e01eb
comparison
equal deleted inserted replaced
2439:ad19dfcdb1cc 2440:1bc579bcd67a
41 from rhodecode.lib.auth import HasRepoPermissionAny, HasReposGroupPermissionAny 41 from rhodecode.lib.auth import HasRepoPermissionAny, HasReposGroupPermissionAny
42 from rhodecode.lib.utils import get_repos as get_filesystem_repos, make_ui, \ 42 from rhodecode.lib.utils import get_repos as get_filesystem_repos, make_ui, \
43 action_logger, EmptyChangeset, REMOVED_REPO_PAT 43 action_logger, EmptyChangeset, REMOVED_REPO_PAT
44 from rhodecode.model import BaseModel 44 from rhodecode.model import BaseModel
45 from rhodecode.model.db import Repository, RhodeCodeUi, CacheInvalidation, \ 45 from rhodecode.model.db import Repository, RhodeCodeUi, CacheInvalidation, \
46 UserFollowing, UserLog, User, RepoGroup 46 UserFollowing, UserLog, User, RepoGroup, PullRequest
47 47
48 log = logging.getLogger(__name__) 48 log = logging.getLogger(__name__)
49 49
50 50
51 class UserTemp(object): 51 class UserTemp(object):
318 .filter(UserFollowing.follows_user == u)\ 318 .filter(UserFollowing.follows_user == u)\
319 .filter(UserFollowing.user_id == user_id).scalar() 319 .filter(UserFollowing.user_id == user_id).scalar()
320 320
321 return f is not None 321 return f is not None
322 322
323 def get_followers(self, repo_id): 323 def get_followers(self, repo):
324 if not isinstance(repo_id, int): 324 repo = self._get_repo(repo)
325 repo_id = getattr(Repository.get_by_repo_name(repo_id), 'repo_id')
326 325
327 return self.sa.query(UserFollowing)\ 326 return self.sa.query(UserFollowing)\
328 .filter(UserFollowing.follows_repo_id == repo_id).count() 327 .filter(UserFollowing.follows_repository == repo).count()
329 328
330 def get_forks(self, repo_id): 329 def get_forks(self, repo):
331 if not isinstance(repo_id, int): 330 repo = self._get_repo(repo)
332 repo_id = getattr(Repository.get_by_repo_name(repo_id), 'repo_id')
333
334 return self.sa.query(Repository)\ 331 return self.sa.query(Repository)\
335 .filter(Repository.fork_id == repo_id).count() 332 .filter(Repository.fork == repo).count()
333
334 def get_pull_requests(self, repo):
335 repo = self._get_repo(repo)
336 return self.sa.query(PullRequest)\
337 .filter(PullRequest.other_repo == repo).count()
336 338
337 def mark_as_fork(self, repo, fork, user): 339 def mark_as_fork(self, repo, fork, user):
338 repo = self.__get_repo(repo) 340 repo = self.__get_repo(repo)
339 fork = self.__get_repo(fork) 341 fork = self.__get_repo(fork)
340 repo.fork = fork 342 repo.fork = fork