Mercurial > public > src > rhodecode
comparison pylons_app/controllers/files.py @ 145:3f01d02c2cc6
fixed error when browsing revisions on path that doesn't exist. Fixed files browsing. Fixed templates in branches and tags
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Mon, 10 May 2010 23:12:45 +0200 |
parents | f7218849798a |
children | 873fd2dc62c2 |
comparison
equal
deleted
inserted
replaced
144:ea89ac73bef8 | 145:3f01d02c2cc6 |
---|---|
6 from pylons_app.lib.base import BaseController, render | 6 from pylons_app.lib.base import BaseController, render |
7 from pylons_app.lib.utils import get_repo_slug | 7 from pylons_app.lib.utils import get_repo_slug |
8 from pylons_app.model.hg_model import HgModel | 8 from pylons_app.model.hg_model import HgModel |
9 from difflib import unified_diff | 9 from difflib import unified_diff |
10 from pylons_app.lib.differ import render_udiff | 10 from pylons_app.lib.differ import render_udiff |
11 from vcs.exceptions import RepositoryError | 11 from vcs.exceptions import RepositoryError, ChangesetError |
12 | 12 |
13 log = logging.getLogger(__name__) | 13 log = logging.getLogger(__name__) |
14 | 14 |
15 class FilesController(BaseController): | 15 class FilesController(BaseController): |
16 def __before__(self): | 16 def __before__(self): |
17 c.repos_prefix = config['repos_name'] | 17 c.repos_prefix = config['repos_name'] |
18 c.repo_name = get_repo_slug(request) | 18 c.repo_name = get_repo_slug(request) |
19 | 19 |
20 def index(self, repo_name, revision, f_path): | 20 def index(self, repo_name, revision, f_path): |
21 revision = request.POST.get('at_rev', None) or revision | |
22 hg_model = HgModel() | 21 hg_model = HgModel() |
23 c.repo = repo = hg_model.get_repo(c.repo_name) | 22 c.repo = repo = hg_model.get_repo(c.repo_name) |
23 | |
24 revision = request.POST.get('at_rev', None) or revision | |
25 if request.POST.get('view_low'): | |
26 revision = int(revision) - 1 | |
27 if request.POST.get('view_high'): | |
28 revision = int(revision) + 1 | |
29 max_rev = len(c.repo.revisions) - 1 | |
30 if revision > max_rev: | |
31 revision = max_rev | |
32 | |
24 c.f_path = f_path | 33 c.f_path = f_path |
25 try: | 34 try: |
26 c.changeset = repo.get_changeset(repo._get_revision(revision)) | 35 c.changeset = repo.get_changeset(repo._get_revision(revision)) |
27 c.cur_rev = c.changeset.raw_id | 36 c.cur_rev = c.changeset.raw_id |
28 c.rev_nr = c.changeset.revision | 37 c.rev_nr = c.changeset.revision |
29 c.files_list = c.changeset.get_node(f_path) | 38 c.files_list = c.changeset.get_node(f_path) |
30 c.file_history = self._get_history(repo, c.files_list, f_path) | 39 c.file_history = self._get_history(repo, c.files_list, f_path) |
31 except RepositoryError: | 40 except (RepositoryError, ChangesetError): |
32 c.files_list = None | 41 c.files_list = None |
33 | 42 |
34 return render('files/files.html') | 43 return render('files/files.html') |
35 | 44 |
36 def diff(self, repo_name, f_path): | 45 def diff(self, repo_name, f_path): |