Mercurial > kallithea
annotate rhodecode/controllers/changelog.py @ 3852:eae62e28343e beta
handle case of rewrite without an gistid in nginx example
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sun, 12 May 2013 17:19:21 +0200 |
parents | 222e9432298e |
children | a42bfe8a9335 |
rev | line source |
---|---|
861
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
699
diff
changeset
|
1 # -*- coding: utf-8 -*- |
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
699
diff
changeset
|
2 """ |
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
699
diff
changeset
|
3 rhodecode.controllers.changelog |
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
699
diff
changeset
|
4 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
699
diff
changeset
|
5 |
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
699
diff
changeset
|
6 changelog controller for rhodecode |
1130
1cecc7db3106
fixed some limits in changesets and changelogs
Marcin Kuzminski <marcin@python-works.com>
parents:
1109
diff
changeset
|
7 |
861
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
699
diff
changeset
|
8 :created_on: Apr 21, 2010 |
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
699
diff
changeset
|
9 :author: marcink |
1824
89efedac4e6c
2012 copyrights
Marcin Kuzminski <marcin@python-works.com>
parents:
1818
diff
changeset
|
10 :copyright: (C) 2010-2012 Marcin Kuzminski <marcin@python-works.com> |
861
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
699
diff
changeset
|
11 :license: GPLv3, see COPYING for more details. |
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
699
diff
changeset
|
12 """ |
1206
a671db5bdd58
fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
13 # This program is free software: you can redistribute it and/or modify |
a671db5bdd58
fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
14 # it under the terms of the GNU General Public License as published by |
a671db5bdd58
fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
15 # the Free Software Foundation, either version 3 of the License, or |
a671db5bdd58
fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
16 # (at your option) any later version. |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1130
diff
changeset
|
17 # |
252
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
18 # This program is distributed in the hope that it will be useful, |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
19 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
21 # GNU General Public License for more details. |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1130
diff
changeset
|
22 # |
252
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
23 # You should have received a copy of the GNU General Public License |
1206
a671db5bdd58
fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
24 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
861
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
699
diff
changeset
|
25 |
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
699
diff
changeset
|
26 import logging |
1656
833f9dec0a06
implemented #44 - branch filtering in changelog, aka branch browser
Marcin Kuzminski <marcin@python-works.com>
parents:
1514
diff
changeset
|
27 import traceback |
592
0a48c1ec04fc
#37 fixed json imports for python2.5
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
28 |
1656
833f9dec0a06
implemented #44 - branch filtering in changelog, aka branch browser
Marcin Kuzminski <marcin@python-works.com>
parents:
1514
diff
changeset
|
29 from pylons import request, url, session, tmpl_context as c |
833f9dec0a06
implemented #44 - branch filtering in changelog, aka branch browser
Marcin Kuzminski <marcin@python-works.com>
parents:
1514
diff
changeset
|
30 from pylons.controllers.util import redirect |
833f9dec0a06
implemented #44 - branch filtering in changelog, aka branch browser
Marcin Kuzminski <marcin@python-works.com>
parents:
1514
diff
changeset
|
31 from pylons.i18n.translation import _ |
861
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
699
diff
changeset
|
32 |
1656
833f9dec0a06
implemented #44 - branch filtering in changelog, aka branch browser
Marcin Kuzminski <marcin@python-works.com>
parents:
1514
diff
changeset
|
33 import rhodecode.lib.helpers as h |
547
1e757ac98988
renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
361
diff
changeset
|
34 from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator |
1045
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1038
diff
changeset
|
35 from rhodecode.lib.base import BaseRepoController, render |
1098
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1083
diff
changeset
|
36 from rhodecode.lib.helpers import RepoPage |
1514
87ec80c280bb
fixed issues with python2.5
Marcin Kuzminski <marcin@python-works.com>
parents:
1434
diff
changeset
|
37 from rhodecode.lib.compat import json |
2380
0c7dc3402efa
Unified DAG generation for hg and git
Marcin Kuzminski <marcin@python-works.com>
parents:
2370
diff
changeset
|
38 from rhodecode.lib.graphmod import _colored, _dagwalker |
3760
6302a1423a4e
Use changelog controller for displaying history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
3749
diff
changeset
|
39 from rhodecode.lib.vcs.exceptions import RepositoryError, ChangesetDoesNotExistError,\ |
3794
222e9432298e
in case of empty directory don't redirect to changelog, it causes an redirection loop
Marcin Kuzminski <marcin@python-works.com>
parents:
3764
diff
changeset
|
40 ChangesetError, NodeDoesNotExistError, EmptyRepositoryError |
2845
6b176c679896
failsafe the GET `page` argument
Marcin Kuzminski <marcin@python-works.com>
parents:
2632
diff
changeset
|
41 from rhodecode.lib.utils2 import safe_int |
3764
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
42 from webob.exc import HTTPNotFound |
1656
833f9dec0a06
implemented #44 - branch filtering in changelog, aka branch browser
Marcin Kuzminski <marcin@python-works.com>
parents:
1514
diff
changeset
|
43 |
318
fdf9f6ee5217
Implemented permissions into hg app, secured admin controllers, templates and repository specific controllers
Marcin Kuzminski <marcin@python-works.com>
parents:
291
diff
changeset
|
44 log = logging.getLogger(__name__) |
93
aec4c0071cb3
added empty controllers for branches tags files graph, routing and test for them
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
45 |
1212 | 46 |
3764
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
47 def _load_changelog_summary(): |
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
48 p = safe_int(request.GET.get('page'), 1) |
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
49 size = safe_int(request.GET.get('size'), 10) |
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
50 |
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
51 def url_generator(**kw): |
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
52 return url('changelog_summary_home', |
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
53 repo_name=c.rhodecode_db_repo.repo_name, size=size, **kw) |
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
54 |
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
55 collection = c.rhodecode_repo |
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
56 |
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
57 c.repo_changesets = RepoPage(collection, page=p, |
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
58 items_per_page=size, |
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
59 url=url_generator) |
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
60 page_revisions = [x.raw_id for x in list(c.repo_changesets)] |
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
61 c.comments = c.rhodecode_db_repo.get_comments(page_revisions) |
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
62 c.statuses = c.rhodecode_db_repo.statuses(page_revisions) |
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
63 |
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
64 |
1045
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1038
diff
changeset
|
65 class ChangelogController(BaseRepoController): |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
66 |
93
aec4c0071cb3
added empty controllers for branches tags files graph, routing and test for them
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
67 def __before__(self): |
192
f191f99f59c9
full changelog caching, secured changelog with LoginRequired, some minor changes in graph
Marcin Kuzminski <marcin@python-works.com>
parents:
142
diff
changeset
|
68 super(ChangelogController, self).__before__() |
1130
1cecc7db3106
fixed some limits in changesets and changelogs
Marcin Kuzminski <marcin@python-works.com>
parents:
1109
diff
changeset
|
69 c.affected_files_cut_off = 60 |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
70 |
3749
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
71 def _graph(self, repo, revs_int, repo_size, size, p): |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
72 """ |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
73 Generates a DAG graph for repo |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
74 |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
75 :param repo: |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
76 :param revs_int: |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
77 :param repo_size: |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
78 :param size: |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
79 :param p: |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
80 """ |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
81 if not revs_int: |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
82 c.jsdata = json.dumps([]) |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
83 return |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
84 |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
85 data = [] |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
86 revs = revs_int |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
87 |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
88 dag = _dagwalker(repo, revs, repo.alias) |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
89 dag = _colored(dag) |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
90 for (id, type, ctx, vtx, edges) in dag: |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
91 data.append(['', vtx, edges]) |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
92 |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
93 c.jsdata = json.dumps(data) |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
94 |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
95 @LoginRequired() |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
96 @HasRepoPermissionAnyDecorator('repository.read', 'repository.write', |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
97 'repository.admin') |
3760
6302a1423a4e
Use changelog controller for displaying history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
3749
diff
changeset
|
98 def index(self, repo_name, revision=None, f_path=None): |
213 | 99 limit = 100 |
1864
baef43bc457c
revert default to 20, for large repositories it's better to go less and have it faster.
Marcin Kuzminski <marcin@python-works.com>
parents:
1850
diff
changeset
|
100 default = 20 |
3748
9d743ca9cede
usage of request.GET is now more consistent
Marcin Kuzminski <marcin@python-works.com>
parents:
3747
diff
changeset
|
101 if request.GET.get('size'): |
9d743ca9cede
usage of request.GET is now more consistent
Marcin Kuzminski <marcin@python-works.com>
parents:
3747
diff
changeset
|
102 c.size = max(min(safe_int(request.GET.get('size')), limit), 1) |
192
f191f99f59c9
full changelog caching, secured changelog with LoginRequired, some minor changes in graph
Marcin Kuzminski <marcin@python-works.com>
parents:
142
diff
changeset
|
103 session['changelog_size'] = c.size |
f191f99f59c9
full changelog caching, secured changelog with LoginRequired, some minor changes in graph
Marcin Kuzminski <marcin@python-works.com>
parents:
142
diff
changeset
|
104 session.save() |
142
f7218849798a
Changeg graph to changelog, and changelog to shortlog
Marcin Kuzminski <marcin@python-works.com>
parents:
127
diff
changeset
|
105 else: |
282
237470e64bb8
switched filters into webhelpers for easy of usage.
Marcin Kuzminski <marcin@python-works.com>
parents:
276
diff
changeset
|
106 c.size = int(session.get('changelog_size', default)) |
2628
4548912f48c8
fixes issue #502, float division error on setting maxsize of changelog to 0
Marcin Kuzminski <marcin@python-works.com>
parents:
2520
diff
changeset
|
107 # min size must be 1 |
4548912f48c8
fixes issue #502, float division error on setting maxsize of changelog to 0
Marcin Kuzminski <marcin@python-works.com>
parents:
2520
diff
changeset
|
108 c.size = max(c.size, 1) |
3748
9d743ca9cede
usage of request.GET is now more consistent
Marcin Kuzminski <marcin@python-works.com>
parents:
3747
diff
changeset
|
109 p = safe_int(request.GET.get('page', 1), 1) |
9d743ca9cede
usage of request.GET is now more consistent
Marcin Kuzminski <marcin@python-works.com>
parents:
3747
diff
changeset
|
110 branch_name = request.GET.get('branch', None) |
3760
6302a1423a4e
Use changelog controller for displaying history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
3749
diff
changeset
|
111 c.changelog_for_path = f_path |
1656
833f9dec0a06
implemented #44 - branch filtering in changelog, aka branch browser
Marcin Kuzminski <marcin@python-works.com>
parents:
1514
diff
changeset
|
112 try: |
3760
6302a1423a4e
Use changelog controller for displaying history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
3749
diff
changeset
|
113 |
6302a1423a4e
Use changelog controller for displaying history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
3749
diff
changeset
|
114 if f_path: |
6302a1423a4e
Use changelog controller for displaying history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
3749
diff
changeset
|
115 log.debug('generating changelog for path %s' % f_path) |
6302a1423a4e
Use changelog controller for displaying history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
3749
diff
changeset
|
116 # get the history for the file ! |
6302a1423a4e
Use changelog controller for displaying history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
3749
diff
changeset
|
117 tip_cs = c.rhodecode_repo.get_changeset() |
6302a1423a4e
Use changelog controller for displaying history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
3749
diff
changeset
|
118 try: |
6302a1423a4e
Use changelog controller for displaying history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
3749
diff
changeset
|
119 collection = tip_cs.get_file_history(f_path) |
6302a1423a4e
Use changelog controller for displaying history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
3749
diff
changeset
|
120 except (NodeDoesNotExistError, ChangesetError): |
6302a1423a4e
Use changelog controller for displaying history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
3749
diff
changeset
|
121 #this node is not present at tip ! |
6302a1423a4e
Use changelog controller for displaying history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
3749
diff
changeset
|
122 try: |
6302a1423a4e
Use changelog controller for displaying history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
3749
diff
changeset
|
123 cs = self.__get_cs_or_redirect(revision, repo_name) |
6302a1423a4e
Use changelog controller for displaying history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
3749
diff
changeset
|
124 collection = cs.get_file_history(f_path) |
6302a1423a4e
Use changelog controller for displaying history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
3749
diff
changeset
|
125 except RepositoryError, e: |
6302a1423a4e
Use changelog controller for displaying history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
3749
diff
changeset
|
126 h.flash(str(e), category='warning') |
6302a1423a4e
Use changelog controller for displaying history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
3749
diff
changeset
|
127 redirect(h.url('changelog_home', repo_name=repo_name)) |
6302a1423a4e
Use changelog controller for displaying history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
3749
diff
changeset
|
128 collection = list(reversed(collection)) |
6302a1423a4e
Use changelog controller for displaying history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
3749
diff
changeset
|
129 else: |
6302a1423a4e
Use changelog controller for displaying history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
3749
diff
changeset
|
130 collection = c.rhodecode_repo.get_changesets(start=0, |
6302a1423a4e
Use changelog controller for displaying history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
3749
diff
changeset
|
131 branch_name=branch_name) |
3747
600ffde2634c
changelog pagination with branch filtering now uses
Marcin Kuzminski <marcin@python-works.com>
parents:
3573
diff
changeset
|
132 c.total_cs = len(collection) |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
133 |
1656
833f9dec0a06
implemented #44 - branch filtering in changelog, aka branch browser
Marcin Kuzminski <marcin@python-works.com>
parents:
1514
diff
changeset
|
134 c.pagination = RepoPage(collection, page=p, item_count=c.total_cs, |
833f9dec0a06
implemented #44 - branch filtering in changelog, aka branch browser
Marcin Kuzminski <marcin@python-works.com>
parents:
1514
diff
changeset
|
135 items_per_page=c.size, branch=branch_name) |
1884
0614862a20ec
Added number of comments in changelog for each changeset
Marcin Kuzminski <marcin@python-works.com>
parents:
1864
diff
changeset
|
136 collection = list(c.pagination) |
3747
600ffde2634c
changelog pagination with branch filtering now uses
Marcin Kuzminski <marcin@python-works.com>
parents:
3573
diff
changeset
|
137 page_revisions = [x.raw_id for x in c.pagination] |
2520
a1e156503afe
Fixed calls to Session in db model
Marcin Kuzminski <marcin@python-works.com>
parents:
2391
diff
changeset
|
138 c.comments = c.rhodecode_db_repo.get_comments(page_revisions) |
2215
2c2bdaeca912
code-review initial
Marcin Kuzminski <marcin@python-works.com>
parents:
2204
diff
changeset
|
139 c.statuses = c.rhodecode_db_repo.statuses(page_revisions) |
3794
222e9432298e
in case of empty directory don't redirect to changelog, it causes an redirection loop
Marcin Kuzminski <marcin@python-works.com>
parents:
3764
diff
changeset
|
140 except (EmptyRepositoryError), e: |
222e9432298e
in case of empty directory don't redirect to changelog, it causes an redirection loop
Marcin Kuzminski <marcin@python-works.com>
parents:
3764
diff
changeset
|
141 h.flash(str(e), category='warning') |
222e9432298e
in case of empty directory don't redirect to changelog, it causes an redirection loop
Marcin Kuzminski <marcin@python-works.com>
parents:
3764
diff
changeset
|
142 return redirect(url('summary_home', repo_name=c.repo_name)) |
1656
833f9dec0a06
implemented #44 - branch filtering in changelog, aka branch browser
Marcin Kuzminski <marcin@python-works.com>
parents:
1514
diff
changeset
|
143 except (RepositoryError, ChangesetDoesNotExistError, Exception), e: |
833f9dec0a06
implemented #44 - branch filtering in changelog, aka branch browser
Marcin Kuzminski <marcin@python-works.com>
parents:
1514
diff
changeset
|
144 log.error(traceback.format_exc()) |
3573
881ae12b3c7d
report ChangesetDoesNotExistError as an error but don't lose the repo context
Mads Kiilerich <madski@unity3d.com>
parents:
2845
diff
changeset
|
145 h.flash(str(e), category='error') |
881ae12b3c7d
report ChangesetDoesNotExistError as an error but don't lose the repo context
Mads Kiilerich <madski@unity3d.com>
parents:
2845
diff
changeset
|
146 return redirect(url('changelog_home', repo_name=c.repo_name)) |
1656
833f9dec0a06
implemented #44 - branch filtering in changelog, aka branch browser
Marcin Kuzminski <marcin@python-works.com>
parents:
1514
diff
changeset
|
147 |
833f9dec0a06
implemented #44 - branch filtering in changelog, aka branch browser
Marcin Kuzminski <marcin@python-works.com>
parents:
1514
diff
changeset
|
148 c.branch_name = branch_name |
1884
0614862a20ec
Added number of comments in changelog for each changeset
Marcin Kuzminski <marcin@python-works.com>
parents:
1864
diff
changeset
|
149 c.branch_filters = [('', _('All Branches'))] + \ |
0614862a20ec
Added number of comments in changelog for each changeset
Marcin Kuzminski <marcin@python-works.com>
parents:
1864
diff
changeset
|
150 [(k, k) for k in c.rhodecode_repo.branches.keys()] |
3760
6302a1423a4e
Use changelog controller for displaying history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
3749
diff
changeset
|
151 _revs = [] |
6302a1423a4e
Use changelog controller for displaying history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
3749
diff
changeset
|
152 if not f_path: |
6302a1423a4e
Use changelog controller for displaying history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
3749
diff
changeset
|
153 _revs = [x.revision for x in c.pagination] |
6302a1423a4e
Use changelog controller for displaying history of files.
Marcin Kuzminski <marcin@python-works.com>
parents:
3749
diff
changeset
|
154 self._graph(c.rhodecode_repo, _revs, c.total_cs, c.size, p) |
3747
600ffde2634c
changelog pagination with branch filtering now uses
Marcin Kuzminski <marcin@python-works.com>
parents:
3573
diff
changeset
|
155 |
142
f7218849798a
Changeg graph to changelog, and changelog to shortlog
Marcin Kuzminski <marcin@python-works.com>
parents:
127
diff
changeset
|
156 return render('changelog/changelog.html') |
f7218849798a
Changeg graph to changelog, and changelog to shortlog
Marcin Kuzminski <marcin@python-works.com>
parents:
127
diff
changeset
|
157 |
3749
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
158 @LoginRequired() |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
159 @HasRepoPermissionAnyDecorator('repository.read', 'repository.write', |
b950b884ab87
auth decorators are not used anymore on __before__
Marcin Kuzminski <marcin@python-works.com>
parents:
3748
diff
changeset
|
160 'repository.admin') |
1431
d5d7c40e8591
changelog uses lazy loading of affected files details, in some scenarios this can improve speed
Marcin Kuzminski <marcin@python-works.com>
parents:
1412
diff
changeset
|
161 def changelog_details(self, cs): |
d5d7c40e8591
changelog uses lazy loading of affected files details, in some scenarios this can improve speed
Marcin Kuzminski <marcin@python-works.com>
parents:
1412
diff
changeset
|
162 if request.environ.get('HTTP_X_PARTIAL_XHR'): |
d5d7c40e8591
changelog uses lazy loading of affected files details, in some scenarios this can improve speed
Marcin Kuzminski <marcin@python-works.com>
parents:
1412
diff
changeset
|
163 c.cs = c.rhodecode_repo.get_changeset(cs) |
d5d7c40e8591
changelog uses lazy loading of affected files details, in some scenarios this can improve speed
Marcin Kuzminski <marcin@python-works.com>
parents:
1412
diff
changeset
|
164 return render('changelog/changelog_details.html') |
3764
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
165 raise HTTPNotFound() |
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
166 |
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
167 @LoginRequired() |
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
168 @HasRepoPermissionAnyDecorator('repository.read', 'repository.write', |
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
169 'repository.admin') |
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
170 def changelog_summary(self, repo_name): |
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
171 if request.environ.get('HTTP_X_PARTIAL_XHR'): |
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
172 _load_changelog_summary() |
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
173 |
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
174 return render('changelog/changelog_summary_data.html') |
c7970889c5c0
Removed shortlog aka lightweight changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3760
diff
changeset
|
175 raise HTTPNotFound() |