##// END OF EJS Templates
reviewers: moved the new v1 api of default reviewers into pyramid view....
marcink -
r1767:dee6c9db default
parent child Browse files
Show More
@@ -94,6 +94,10 b' def includeme(config):'
94 name='repo_reviewers',
94 name='repo_reviewers',
95 pattern='/{repo_name:.*?[^/]}/settings/review/rules', repo_route=True)
95 pattern='/{repo_name:.*?[^/]}/settings/review/rules', repo_route=True)
96
96
97 config.add_route(
98 name='repo_default_reviewers_data',
99 pattern='/{repo_name:.*?[^/]}/settings/review/default-reviewers', repo_route=True)
100
97 # Maintenance
101 # Maintenance
98 config.add_route(
102 config.add_route(
99 name='repo_maintenance',
103 name='repo_maintenance',
@@ -23,6 +23,7 b' import logging'
23 from pyramid.view import view_config
23 from pyramid.view import view_config
24
24
25 from rhodecode.apps._base import RepoAppView
25 from rhodecode.apps._base import RepoAppView
26 from rhodecode.controllers import utils
26 from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
27 from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
27
28
28 log = logging.getLogger(__name__)
29 log = logging.getLogger(__name__)
@@ -49,3 +50,20 b' class RepoReviewRulesView(RepoAppView):'
49
50
50 return self._get_template_context(c)
51 return self._get_template_context(c)
51
52
53 @LoginRequired()
54 @HasRepoPermissionAnyDecorator(
55 'repository.read', 'repository.write', 'repository.admin')
56 @view_config(
57 route_name='repo_default_reviewers_data', request_method='GET',
58 renderer='json_ext')
59 def repo_default_reviewers_data(self):
60 reasons = ['Default reviewer', 'Repository owner']
61 default = utils.reviewer_as_json(
62 user=self.db_repo.user, reasons=reasons, mandatory=False)
63
64 return {
65 'api_ver': 'v1', # define version for later possible schema upgrade
66 'reviewers': [default],
67 'rules': {},
68 'rules_data': {},
69 }
@@ -623,9 +623,6 b' def make_map(config):'
623 rmap.connect('repo_refs_changelog_data', '/{repo_name}/refs-data-changelog',
623 rmap.connect('repo_refs_changelog_data', '/{repo_name}/refs-data-changelog',
624 controller='summary', action='repo_refs_changelog_data',
624 controller='summary', action='repo_refs_changelog_data',
625 requirements=URL_NAME_REQUIREMENTS, jsroute=True)
625 requirements=URL_NAME_REQUIREMENTS, jsroute=True)
626 rmap.connect('repo_default_reviewers_data', '/{repo_name}/default-reviewers',
627 controller='summary', action='repo_default_reviewers_data',
628 jsroute=True, requirements=URL_NAME_REQUIREMENTS)
629
626
630 rmap.connect('changeset_home', '/{repo_name}/changeset/{revision}',
627 rmap.connect('changeset_home', '/{repo_name}/changeset/{revision}',
631 controller='changeset', revision='tip',
628 controller='changeset', revision='tip',
@@ -27,7 +27,7 b' from string import lower'
27
27
28 from pylons import tmpl_context as c, request
28 from pylons import tmpl_context as c, request
29 from pylons.i18n.translation import _
29 from pylons.i18n.translation import _
30 from beaker.cache import cache_region, region_invalidate
30 from beaker.cache import cache_region
31
31
32 from rhodecode.config.conf import (LANGUAGES_EXTENSIONS_MAP)
32 from rhodecode.config.conf import (LANGUAGES_EXTENSIONS_MAP)
33 from rhodecode.controllers import utils
33 from rhodecode.controllers import utils
@@ -36,13 +36,12 b' from rhodecode.lib import caches, helper'
36 from rhodecode.lib.utils import jsonify
36 from rhodecode.lib.utils import jsonify
37 from rhodecode.lib.utils2 import safe_str
37 from rhodecode.lib.utils2 import safe_str
38 from rhodecode.lib.auth import (
38 from rhodecode.lib.auth import (
39 LoginRequired, HasRepoPermissionAnyDecorator, NotAnonymous, XHRRequired)
39 LoginRequired, HasRepoPermissionAnyDecorator, XHRRequired)
40 from rhodecode.lib.base import BaseRepoController, render
40 from rhodecode.lib.base import BaseRepoController, render
41 from rhodecode.lib.markup_renderer import MarkupRenderer, relative_links
41 from rhodecode.lib.markup_renderer import MarkupRenderer, relative_links
42 from rhodecode.lib.ext_json import json
42 from rhodecode.lib.ext_json import json
43 from rhodecode.lib.vcs.backends.base import EmptyCommit
43 from rhodecode.lib.vcs.backends.base import EmptyCommit
44 from rhodecode.lib.vcs.exceptions import (
44 from rhodecode.lib.vcs.exceptions import CommitError, EmptyRepositoryError
45 CommitError, EmptyRepositoryError, NodeDoesNotExistError)
46 from rhodecode.model.db import Statistics, CacheKey, User
45 from rhodecode.model.db import Statistics, CacheKey, User
47 from rhodecode.model.repo import ReadmeFinder
46 from rhodecode.model.repo import ReadmeFinder
48
47
@@ -259,16 +258,6 b' class SummaryController(BaseRepoControll'
259 }
258 }
260 return data
259 return data
261
260
262 @LoginRequired()
263 @HasRepoPermissionAnyDecorator('repository.read', 'repository.write',
264 'repository.admin')
265 @jsonify
266 def repo_default_reviewers_data(self, repo_name):
267 return {
268 'reviewers': [utils.reviewer_as_json(
269 user=c.rhodecode_db_repo.user, reasons=None)]
270 }
271
272 @jsonify
261 @jsonify
273 def repo_refs_changelog_data(self, repo_name):
262 def repo_refs_changelog_data(self, repo_name):
274 repo = c.rhodecode_repo
263 repo = c.rhodecode_repo
@@ -89,17 +89,19 b' def get_commit_from_ref_name(repo, ref_n'
89 return repo_scm.get_commit(commit_id)
89 return repo_scm.get_commit(commit_id)
90
90
91
91
92 def reviewer_as_json(user, reasons):
92 def reviewer_as_json(user, reasons, mandatory):
93 """
93 """
94 Returns json struct of a reviewer for frontend
94 Returns json struct of a reviewer for frontend
95
95
96 :param user: the reviewer
96 :param user: the reviewer
97 :param reasons: list of strings of why they are reviewers
97 :param reasons: list of strings of why they are reviewers
98 :param mandatory: bool, to set user as mandatory
98 """
99 """
99
100
100 return {
101 return {
101 'user_id': user.user_id,
102 'user_id': user.user_id,
102 'reasons': reasons,
103 'reasons': reasons,
104 'mandatory': mandatory,
103 'username': user.username,
105 'username': user.username,
104 'firstname': user.firstname,
106 'firstname': user.firstname,
105 'lastname': user.lastname,
107 'lastname': user.lastname,
@@ -21,7 +21,6 b' function registerRCRoutes() {'
21 pyroutes.register('repo_stats', '/%(repo_name)s/repo_stats/%(commit_id)s', ['repo_name', 'commit_id']);
21 pyroutes.register('repo_stats', '/%(repo_name)s/repo_stats/%(commit_id)s', ['repo_name', 'commit_id']);
22 pyroutes.register('repo_refs_data', '/%(repo_name)s/refs-data', ['repo_name']);
22 pyroutes.register('repo_refs_data', '/%(repo_name)s/refs-data', ['repo_name']);
23 pyroutes.register('repo_refs_changelog_data', '/%(repo_name)s/refs-data-changelog', ['repo_name']);
23 pyroutes.register('repo_refs_changelog_data', '/%(repo_name)s/refs-data-changelog', ['repo_name']);
24 pyroutes.register('repo_default_reviewers_data', '/%(repo_name)s/default-reviewers', ['repo_name']);
25 pyroutes.register('changeset_home', '/%(repo_name)s/changeset/%(revision)s', ['repo_name', 'revision']);
24 pyroutes.register('changeset_home', '/%(repo_name)s/changeset/%(revision)s', ['repo_name', 'revision']);
26 pyroutes.register('changeset_comment', '/%(repo_name)s/changeset/%(revision)s/comment', ['repo_name', 'revision']);
25 pyroutes.register('changeset_comment', '/%(repo_name)s/changeset/%(revision)s/comment', ['repo_name', 'revision']);
27 pyroutes.register('changeset_comment_preview', '/%(repo_name)s/changeset/comment/preview', ['repo_name']);
26 pyroutes.register('changeset_comment_preview', '/%(repo_name)s/changeset/comment/preview', ['repo_name']);
@@ -116,6 +115,7 b' function registerRCRoutes() {'
116 pyroutes.register('edit_repo_caches', '/%(repo_name)s/settings/caches', ['repo_name']);
115 pyroutes.register('edit_repo_caches', '/%(repo_name)s/settings/caches', ['repo_name']);
117 pyroutes.register('edit_repo_perms', '/%(repo_name)s/settings/permissions', ['repo_name']);
116 pyroutes.register('edit_repo_perms', '/%(repo_name)s/settings/permissions', ['repo_name']);
118 pyroutes.register('repo_reviewers', '/%(repo_name)s/settings/review/rules', ['repo_name']);
117 pyroutes.register('repo_reviewers', '/%(repo_name)s/settings/review/rules', ['repo_name']);
118 pyroutes.register('repo_default_reviewers_data', '/%(repo_name)s/settings/review/default-reviewers', ['repo_name']);
119 pyroutes.register('repo_maintenance', '/%(repo_name)s/settings/maintenance', ['repo_name']);
119 pyroutes.register('repo_maintenance', '/%(repo_name)s/settings/maintenance', ['repo_name']);
120 pyroutes.register('repo_maintenance_execute', '/%(repo_name)s/settings/maintenance/execute', ['repo_name']);
120 pyroutes.register('repo_maintenance_execute', '/%(repo_name)s/settings/maintenance/execute', ['repo_name']);
121 pyroutes.register('strip', '/%(repo_name)s/settings/strip', ['repo_name']);
121 pyroutes.register('strip', '/%(repo_name)s/settings/strip', ['repo_name']);
General Comments 0
You need to be logged in to leave comments. Login now