##// END OF EJS Templates
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups

File last commit:

r265:0e5455fd default
r265:0e5455fd default
Show More
helpers.py
125 lines | 4.3 KiB | text/x-python | PythonLexer
Marcin Kuzminski
initial commit.
r0 """Helper functions
Consists of functions to typically be used within templates, but also
available to Controllers. This module is available to both as 'h'.
"""
Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
r250 from pygments.formatters import HtmlFormatter
from pygments import highlight as code_highlight
implemented pygmentize codes into webhelpers. Together with color_dict caching into pylons globals
r165 from pylons import url, app_globals as g
added helper for filesize
r97 from pylons.i18n.translation import _, ungettext
Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
r250 from vcs.utils.annotate import annotate_highlight
from webhelpers.html import literal, HTML, escape
added pygments webhelper
r98 from webhelpers.html.builder import make_tag
Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
r250 from webhelpers.html.tags import auto_discovery_link, checkbox, css_classes, \
end_form, file, form, hidden, image, javascript_link, link_to, link_to_if, \
link_to_unless, ol, required_legend, select, stylesheet_link, submit, text, \
password, textarea, title, ul, xml_declaration
from webhelpers.html.tools import auto_link, button_to, highlight, js_obfuscate, \
mail_to, strip_links, strip_tags, tag_re
from webhelpers.number import format_byte_size, format_bit_size
Marcin Kuzminski
initial commit.
r0 from webhelpers.pylonslib import Flash as _Flash
from webhelpers.pylonslib.secure_form import secure_form
Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
r250 from webhelpers.text import chop_at, collapse, convert_accented_entities, \
convert_misc_entities, lchop, plural, rchop, remove_formatting, \
made global funcion to clean repo names, and remove all special chars from the name....
r260 replace_whitespace, urlify, truncate
Marcin Kuzminski
initial commit.
r0
added pygments webhelper
r98
Marcin Kuzminski
initial commit.
r0 #Custom helper here :)
class _Link(object):
'''
Make a url based on label and url with help of url_for
@param label:name of link if not defined url is used
@param url: the url for link
'''
changed for pylons 0.1 / 1.0...
r43 def __call__(self, label='', *url_, **urlargs):
Marcin Kuzminski
initial commit.
r0 if label is None or '':
label = url
changed for pylons 0.1 / 1.0...
r43 link_fn = link_to(label, url(*url_, **urlargs))
Marcin Kuzminski
initial commit.
r0 return link_fn
class _GetError(object):
def __call__(self, field_name, form_errors):
tmpl = """<span class="error_msg">%s</span>"""
if form_errors and form_errors.has_key(field_name):
return literal(tmpl % form_errors.get(field_name))
Updated tempaltes, added file browser breadcrumbs, and feed icons
r102 class _FilesBreadCrumbs(object):
def __call__(self, repo_name, rev, paths):
fixed file browser breadcrumbs with revision
r104 url_l = [link_to(repo_name, url('files_home', repo_name=repo_name, revision=rev, f_path=''))]
Updated tempaltes, added file browser breadcrumbs, and feed icons
r102 paths_l = paths.split('/')
for cnt, p in enumerate(paths_l, 1):
if p != '':
fixed file browser breadcrumbs with revision
r104 url_l.append(link_to(p, url('files_home', repo_name=repo_name, revision=rev, f_path='/'.join(paths_l[:cnt]))))
added helper for filesize
r97
Updated tempaltes, added file browser breadcrumbs, and feed icons
r102 return literal(' / '.join(url_l))
added pygments webhelper
r98
Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
r250 def pygmentize(filenode, **kwargs):
implemented pygmentize codes into webhelpers. Together with color_dict caching into pylons globals
r165 """
Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
r250 pygmentize function using pygments
@param filenode:
implemented pygmentize codes into webhelpers. Together with color_dict caching into pylons globals
r165 """
Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
r250 return literal(code_highlight(filenode.content, filenode.lexer, HtmlFormatter(**kwargs)))
implemented pygmentize codes into webhelpers. Together with color_dict caching into pylons globals
r165
Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
r250 def pygmentize_annotation(filenode, **kwargs):
implemented pygmentize codes into webhelpers. Together with color_dict caching into pylons globals
r165 """
Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
r250 pygmentize function for annotation
@param filenode:
implemented pygmentize codes into webhelpers. Together with color_dict caching into pylons globals
r165 """
Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
r250
implemented pygmentize codes into webhelpers. Together with color_dict caching into pylons globals
r165 color_dict = g.changeset_annotation_colors
def gen_color():
Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
r250 import random
return [str(random.randrange(10, 235)) for _ in xrange(3)]
implemented pygmentize codes into webhelpers. Together with color_dict caching into pylons globals
r165 def get_color_string(cs):
if color_dict.has_key(cs):
col = color_dict[cs]
else:
color_dict[cs] = gen_color()
col = color_dict[cs]
return "color: rgb(%s) ! important;" % (','.join(col))
Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
r250
def url_func(changeset):
return '%s\n' % (link_to(changeset.raw_id,
url('changeset_home', repo_name='test', revision=changeset.raw_id),
title=_('author') + ':%s rev:%s %s' % (changeset.author, changeset.revision,
changeset.message,),
style=get_color_string(changeset.raw_id)))
return literal(annotate_highlight(filenode, url_func, **kwargs))
added pygments webhelper
r98
made global funcion to clean repo names, and remove all special chars from the name....
r260 def recursive_replace(str, replace=' '):
"""
Recursive replace of given sign to just one instance
@param str: given string
@param replace:char to find and replace multiple instances
Examples::
>>> recursive_replace("Mighty---Mighty-Bo--sstones",'-')
'Mighty-Mighty-Bo-sstones'
"""
if str.find(replace * 2) == -1:
return str
else:
str = str.replace(replace * 2, replace)
return recursive_replace(str, replace)
def repo_name_slug(value):
"""
Return slug of name of repository
"""
slug = urlify(value)
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
r265 for c in """=[]\;'"<>,/~!@#$%^&*()+{}|:""":
made global funcion to clean repo names, and remove all special chars from the name....
r260 slug = slug.replace(c, '-')
slug = recursive_replace(slug, '-')
return slug
Updated tempaltes, added file browser breadcrumbs, and feed icons
r102 files_breadcrumbs = _FilesBreadCrumbs()
Marcin Kuzminski
initial commit.
r0 link = _Link()
flash = _Flash()
get_error = _GetError()