comparison pylons_app/controllers/files.py @ 149:b3c93efd1c97

Updated template for summary (archives links) added nex prev revision to file browser. updated logic in files to implement next and prev revison switch
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 12 May 2010 10:29:41 +0200
parents 873fd2dc62c2
children 0c00fbaff55a
comparison
equal deleted inserted replaced
148:d928d5f0a251 149:b3c93efd1c97
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 hg_model = HgModel() 21 hg_model = HgModel()
22 c.repo = repo = hg_model.get_repo(c.repo_name) 22 c.repo = repo = hg_model.get_repo(c.repo_name)
23 revision = request.POST.get('at_rev', None) or revision
23 24
24 revision = request.POST.get('at_rev', None) or revision 25 def get_next_rev(cur):
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 26 max_rev = len(c.repo.revisions) - 1
30 if revision > max_rev: 27 r = cur + 1
31 revision = max_rev 28 if r > max_rev:
32 29 r = max_rev
30 return r
31
32 def get_prev_rev(cur):
33 r = cur - 1
34 return r
35
33 c.f_path = f_path 36 c.f_path = f_path
34 37
35 38
36 try: 39 try:
37 c.changeset = repo.get_changeset(repo._get_revision(revision)) 40 cur_rev = repo.get_changeset(revision).revision
41 prev_rev = repo.get_changeset(get_prev_rev(cur_rev)).raw_id
42 next_rev = repo.get_changeset(get_next_rev(cur_rev)).raw_id
43
44 c.url_prev = url('files_home', repo_name=c.repo_name,
45 revision=prev_rev, f_path=f_path)
46 c.url_next = url('files_home', repo_name=c.repo_name,
47 revision=next_rev, f_path=f_path)
48
49 c.changeset = repo.get_changeset(revision)
38 try: 50 try:
39 c.file_msg = c.changeset.get_file_message(f_path) 51 c.file_msg = c.changeset.get_file_message(f_path)
40 except: 52 except:
41 c.file_msg = None 53 c.file_msg = None
42 54
56 file_node = c.repo.get_changeset(revision).get_node(f_path) 68 file_node = c.repo.get_changeset(revision).get_node(f_path)
57 response.headers['Content-type'] = file_node.mimetype 69 response.headers['Content-type'] = file_node.mimetype
58 response.headers['Content-disposition'] = 'attachment; filename=%s' \ 70 response.headers['Content-disposition'] = 'attachment; filename=%s' \
59 % f_path.split('/')[-1] 71 % f_path.split('/')[-1]
60 return file_node.content 72 return file_node.content
73
74 def archivefile(self, repo_name, revision, fileformat):
75 return '%s %s %s' % (repo_name, revision, fileformat)
61 76
62 def diff(self, repo_name, f_path): 77 def diff(self, repo_name, f_path):
63 hg_model = HgModel() 78 hg_model = HgModel()
64 diff1 = request.GET.get('diff1') 79 diff1 = request.GET.get('diff1')
65 diff2 = request.GET.get('diff2') 80 diff2 = request.GET.get('diff2')