@@ -27,7 +27,7 @@ from pylons import request, response, se
from pylons.controllers.util import redirect
from pylons_app.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
from pylons_app.lib.base import BaseController, render
from pylons_app.lib.utils import EmptyChangeset, get_repo_slug
from pylons_app.lib.utils import EmptyChangeset
from pylons_app.model.hg_model import HgModel
from vcs.exceptions import RepositoryError, ChangesetError
from vcs.nodes import FileNode
@@ -17,9 +17,7 @@ class Globals(object):
"""
self.cache = CacheManager(**parse_cache_config_options(config))
self.changeset_annotation_colors = {}
self.available_permissions = None # propagated after init_model
self.app_title = None # propagated after init_model
self.baseui = None # propagated after init_model
@LazyProperty
@@ -24,7 +24,6 @@ from webhelpers.text import chop_at, col
convert_misc_entities, lchop, plural, rchop, remove_formatting, \
replace_whitespace, urlify, truncate, wrap_paragraphs
#Custom helpers here :)
class _Link(object):
'''
@@ -229,17 +228,31 @@ def pygmentize_annotation(filenode, **kw
@param filenode:
color_dict = g.changeset_annotation_colors
color_dict = {}
def gen_color():
import random
return [str(random.randrange(10, 235)) for _ in xrange(3)]
"""generator for getting 10k of evenly distibuted colors using hsv color
and golden ratio.
import colorsys
n = 10000
golden_ratio = 0.618033988749895
h = 0.22717784590367374
#generate 10k nice web friendly colors in the same order
for c in xrange(n):
h +=golden_ratio
h %= 1
HSV_tuple = [h, 0.95, 0.95]
RGB_tuple = colorsys.hsv_to_rgb(*HSV_tuple)
yield map(lambda x:str(int(x*256)),RGB_tuple)
cgenerator = gen_color()
def get_color_string(cs):
if color_dict.has_key(cs):
col = color_dict[cs]
else:
color_dict[cs] = gen_color()
return "color: rgb(%s) ! important;" % (', '.join(col))
col = color_dict[cs] = cgenerator.next()
return "color: rgb(%s)! important;" % (', '.join(col))
def url_func(changeset):
tooltip_html = "<div style='font-size:0.8em'><b>Author:</b>"+\
@@ -248,7 +261,7 @@ def pygmentize_annotation(filenode, **kw
tooltip_html = tooltip_html % (changeset.author,
changeset.date,
tooltip(changeset.message))
lnk_format = 'r%s:%s' % (changeset.revision,
lnk_format = 'r%-5s:%s' % (changeset.revision,
changeset.raw_id)
uri = link_to(
lnk_format,
Status change: