comparison rhodecode/controllers/pullrequests.py @ 3676:9d2db665ef31 beta

pagination in pull-requests page + UI
author Marcin Kuzminski <marcin@python-works.com>
date Thu, 04 Apr 2013 22:33:41 +0200
parents ec6354949623
children b2575bdb847c 7efc8dcc0dc4
comparison
equal deleted inserted replaced
3675:7a5b11c23288 3676:9d2db665ef31
36 36
37 from rhodecode.lib.compat import json 37 from rhodecode.lib.compat import json
38 from rhodecode.lib.base import BaseRepoController, render 38 from rhodecode.lib.base import BaseRepoController, render
39 from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator,\ 39 from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator,\
40 NotAnonymous 40 NotAnonymous
41 from rhodecode.lib.helpers import Page
41 from rhodecode.lib import helpers as h 42 from rhodecode.lib import helpers as h
42 from rhodecode.lib import diffs 43 from rhodecode.lib import diffs
43 from rhodecode.lib.utils import action_logger, jsonify 44 from rhodecode.lib.utils import action_logger, jsonify
44 from rhodecode.lib.vcs.exceptions import EmptyRepositoryError 45 from rhodecode.lib.vcs.exceptions import EmptyRepositoryError
45 from rhodecode.lib.vcs.backends.base import EmptyChangeset 46 from rhodecode.lib.vcs.backends.base import EmptyChangeset
51 from rhodecode.model.repo import RepoModel 52 from rhodecode.model.repo import RepoModel
52 from rhodecode.model.comment import ChangesetCommentsModel 53 from rhodecode.model.comment import ChangesetCommentsModel
53 from rhodecode.model.changeset_status import ChangesetStatusModel 54 from rhodecode.model.changeset_status import ChangesetStatusModel
54 from rhodecode.model.forms import PullRequestForm 55 from rhodecode.model.forms import PullRequestForm
55 from mercurial import scmutil 56 from mercurial import scmutil
57 from rhodecode.lib.utils2 import safe_int
56 58
57 log = logging.getLogger(__name__) 59 log = logging.getLogger(__name__)
58 60
59 61
60 class PullrequestsController(BaseRepoController): 62 class PullrequestsController(BaseRepoController):
138 return (self.rhodecode_user.admin or owner or reviewer) 140 return (self.rhodecode_user.admin or owner or reviewer)
139 141
140 def show_all(self, repo_name): 142 def show_all(self, repo_name):
141 c.pull_requests = PullRequestModel().get_all(repo_name) 143 c.pull_requests = PullRequestModel().get_all(repo_name)
142 c.repo_name = repo_name 144 c.repo_name = repo_name
145 p = safe_int(request.params.get('page', 1), 1)
146
147 c.pullrequests_pager = Page(c.pull_requests, page=p, items_per_page=10)
148
149 c.pullrequest_data = render('/pullrequests/pullrequest_data.html')
150
151 if request.environ.get('HTTP_X_PARTIAL_XHR'):
152 return c.pullrequest_data
153
143 return render('/pullrequests/pullrequest_show_all.html') 154 return render('/pullrequests/pullrequest_show_all.html')
144 155
145 @NotAnonymous() 156 @NotAnonymous()
146 def index(self): 157 def index(self):
147 org_repo = c.rhodecode_db_repo 158 org_repo = c.rhodecode_db_repo
199 add_other_repo(org_repo.parent) 210 add_other_repo(org_repo.parent)
200 c.default_other_repo = org_repo.parent.repo_name 211 c.default_other_repo = org_repo.parent.repo_name
201 212
202 c.default_other_repo_info = other_repos_info[c.default_other_repo] 213 c.default_other_repo_info = other_repos_info[c.default_other_repo]
203 c.other_repos_info = json.dumps(other_repos_info) 214 c.other_repos_info = json.dumps(other_repos_info)
215
204 return render('/pullrequests/pullrequest.html') 216 return render('/pullrequests/pullrequest.html')
205 217
206 @NotAnonymous() 218 @NotAnonymous()
207 def create(self, repo_name): 219 def create(self, repo_name):
208 repo = RepoModel()._get_repo(repo_name) 220 repo = RepoModel()._get_repo(repo_name)