Show More
@@ -219,7 +219,7 b' def pygmentize(filenode, **kwargs):' | |||||
219 | pygmentize function using pygments |
|
219 | pygmentize function using pygments | |
220 | @param filenode: |
|
220 | @param filenode: | |
221 | """ |
|
221 | """ | |
222 |
return literal(code_highlight(filenode.content, |
|
222 | return literal(code_highlight(filenode.content, | |
223 | filenode.lexer, HtmlFormatter(**kwargs))) |
|
223 | filenode.lexer, HtmlFormatter(**kwargs))) | |
224 |
|
224 | |||
225 | def pygmentize_annotation(filenode, **kwargs): |
|
225 | def pygmentize_annotation(filenode, **kwargs): | |
@@ -239,11 +239,11 b' def pygmentize_annotation(filenode, **kw' | |||||
239 | h = 0.22717784590367374 |
|
239 | h = 0.22717784590367374 | |
240 | #generate 10k nice web friendly colors in the same order |
|
240 | #generate 10k nice web friendly colors in the same order | |
241 | for c in xrange(n): |
|
241 | for c in xrange(n): | |
242 | h +=golden_ratio |
|
242 | h += golden_ratio | |
243 | h %= 1 |
|
243 | h %= 1 | |
244 | HSV_tuple = [h, 0.95, 0.95] |
|
244 | HSV_tuple = [h, 0.95, 0.95] | |
245 | RGB_tuple = colorsys.hsv_to_rgb(*HSV_tuple) |
|
245 | RGB_tuple = colorsys.hsv_to_rgb(*HSV_tuple) | |
246 | yield map(lambda x:str(int(x*256)),RGB_tuple) |
|
246 | yield map(lambda x:str(int(x * 256)), RGB_tuple) | |
247 |
|
247 | |||
248 | cgenerator = gen_color() |
|
248 | cgenerator = gen_color() | |
249 |
|
249 | |||
@@ -255,7 +255,7 b' def pygmentize_annotation(filenode, **kw' | |||||
255 | return "color: rgb(%s)! important;" % (', '.join(col)) |
|
255 | return "color: rgb(%s)! important;" % (', '.join(col)) | |
256 |
|
256 | |||
257 | def url_func(changeset): |
|
257 | def url_func(changeset): | |
258 | tooltip_html = "<div style='font-size:0.8em'><b>Author:</b>"+\ |
|
258 | tooltip_html = "<div style='font-size:0.8em'><b>Author:</b>" + \ | |
259 | " %s<br/><b>Date:</b> %s</b><br/><b>Message:</b> %s<br/></div>" |
|
259 | " %s<br/><b>Date:</b> %s</b><br/><b>Message:</b> %s<br/></div>" | |
260 |
|
260 | |||
261 | tooltip_html = tooltip_html % (changeset.author, |
|
261 | tooltip_html = tooltip_html % (changeset.author, | |
@@ -286,6 +286,21 b' def repo_name_slug(value):' | |||||
286 | slug = recursive_replace(slug, '-') |
|
286 | slug = recursive_replace(slug, '-') | |
287 | return slug |
|
287 | return slug | |
288 |
|
288 | |||
|
289 | def get_changeset_safe(repo, rev): | |||
|
290 | from vcs.backends.base import BaseRepository | |||
|
291 | from vcs.exceptions import RepositoryError | |||
|
292 | if not isinstance(repo, BaseRepository): | |||
|
293 | raise Exception('You must pass an Repository ' | |||
|
294 | 'object as first argument got %s', type(repo)) | |||
|
295 | ||||
|
296 | try: | |||
|
297 | cs = repo.get_changeset(rev) | |||
|
298 | except RepositoryError: | |||
|
299 | from pylons_app.lib.utils import EmptyChangeset | |||
|
300 | cs = EmptyChangeset() | |||
|
301 | return cs | |||
|
302 | ||||
|
303 | ||||
289 | flash = _Flash() |
|
304 | flash = _Flash() | |
290 |
|
305 | |||
291 |
|
306 | |||
@@ -351,4 +366,4 b' def safe_unicode(str):' | |||||
351 | #incase we have a decode error just represent as byte string |
|
366 | #incase we have a decode error just represent as byte string | |
352 | u_str = unicode(str(str).encode('string_escape')) |
|
367 | u_str = unicode(str(str).encode('string_escape')) | |
353 |
|
368 | |||
354 | return u_str No newline at end of file |
|
369 | return u_str |
@@ -29,7 +29,7 b' from pylons.i18n.translation import _' | |||||
29 | from pylons_app.lib.auth import HasRepoPermissionAny |
|
29 | from pylons_app.lib.auth import HasRepoPermissionAny | |
30 | from pylons_app.model import meta |
|
30 | from pylons_app.model import meta | |
31 | from pylons_app.model.db import Repository, User |
|
31 | from pylons_app.model.db import Repository, User | |
32 | from sqlalchemy.orm import joinedload |
|
32 | from pylons_app.lib import helpers as h | |
33 | from vcs.exceptions import RepositoryError, VCSError |
|
33 | from vcs.exceptions import RepositoryError, VCSError | |
34 | import logging |
|
34 | import logging | |
35 | import os |
|
35 | import os | |
@@ -151,11 +151,7 b' class HgModel(object):' | |||||
151 | continue |
|
151 | continue | |
152 |
|
152 | |||
153 | last_change = repo.last_change |
|
153 | last_change = repo.last_change | |
154 | try: |
|
154 | tip = h.get_changeset_safe(repo, 'tip') | |
155 | tip = repo.get_changeset('tip') |
|
|||
156 | except RepositoryError: |
|
|||
157 | from pylons_app.lib.utils import EmptyChangeset |
|
|||
158 | tip = EmptyChangeset() |
|
|||
159 |
|
155 | |||
160 | tmp_d = {} |
|
156 | tmp_d = {} | |
161 | tmp_d['name'] = repo.name |
|
157 | tmp_d['name'] = repo.name |
@@ -98,7 +98,7 b'' | |||||
98 | %endif |
|
98 | %endif | |
99 |
|
99 | |||
100 | ${h.link_to(repo.name, h.url('summary_home',repo_name=repo.name))}</td> |
|
100 | ${h.link_to(repo.name, h.url('summary_home',repo_name=repo.name))}</td> | |
101 |
<td>${_('revision')}: ${repo.revision |
|
101 | <td>${_('revision')}: ${h.get_changeset_safe(repo,'tip').revision}</td> | |
102 | <td>${_('last changed')}: ${h.age(repo.last_change)}</td> |
|
102 | <td>${_('last changed')}: ${h.age(repo.last_change)}</td> | |
103 | <td><img class="icon" alt="${_('private')}" src="/images/icons/application_form_edit.png"/> ${h.link_to(_('edit'),h.url('edit_repo',repo_name=repo.name))}</td> |
|
103 | <td><img class="icon" alt="${_('private')}" src="/images/icons/application_form_edit.png"/> ${h.link_to(_('edit'),h.url('edit_repo',repo_name=repo.name))}</td> | |
104 | </tr> |
|
104 | </tr> |
General Comments 0
You need to be logged in to leave comments.
Login now