Changeset - 528c7f210b12
[Not reviewed]
beta
0 1 0
Marcin Kuzminski - 13 years ago 2012-10-22 22:47:07
marcin@python-works.com
added experimental lightweight param to journal
1 file changed with 27 insertions and 14 deletions:
0 comments (0 inline, 0 general)
rhodecode/lib/helpers.py
Show inline comments
 
@@ -482,77 +482,90 @@ def bool2icon(value):
 

	
 
    if value is True:
 
        return HTML.tag('img', src=url("/images/icons/accept.png"),
 
                        alt=_('True'))
 

	
 
    if value is False:
 
        return HTML.tag('img', src=url("/images/icons/cancel.png"),
 
                        alt=_('False'))
 

	
 
    return value
 

	
 

	
 
def action_parser(user_log, feed=False):
 
def action_parser(user_log, feed=False, parse_cs=True):
 
    """
 
    This helper will action_map the specified string action into translated
 
    fancy names with icons and links
 

	
 
    :param user_log: user log instance
 
    :param feed: use output for feeds (no html and fancy icons)
 
    :param parse_cs: parse Changesets into VCS instances
 
    """
 

	
 
    if request.GET.get('lightweight'):
 
        parse_cs = False
 
    action = user_log.action
 
    action_params = ' '
 

	
 
    x = action.split(':')
 

	
 
    if len(x) > 1:
 
        action, action_params = x
 

	
 
    def get_cs_links():
 
        revs_limit = 3  # display this amount always
 
        revs_top_limit = 50  # show upto this amount of changesets hidden
 
        revs_ids = action_params.split(',')
 
        deleted = user_log.repository is None
 
        if deleted:
 
            return ','.join(revs_ids)
 

	
 
        repo_name = user_log.repository.repo_name
 

	
 
        repo = user_log.repository.scm_instance
 

	
 
        def lnk(rev, repo_name):
 

	
 
            if isinstance(rev, BaseChangeset):
 
                lbl = 'r%s:%s' % (rev.revision, rev.short_id)
 
            if isinstance(rev, BaseChangeset) or isinstance(rev, AttributeDict):
 
                if rev.revision:
 
                    lbl = 'r%s:%s' % (rev.revision, rev.short_id)
 
                else:
 
                    lbl = '%s' % (rev.short_id)
 
                _url = url('changeset_home', repo_name=repo_name,
 
                           revision=rev.raw_id)
 
                title = tooltip(rev.message)
 
                title = tooltip(rev.message) if parse_cs else ''
 
            else:
 
                lbl = '%s' % rev
 
                _url = '#'
 
                title = _('Changeset not found')
 

	
 
            return link_to(lbl, _url, title=title, class_='tooltip',)
 
            return link_to(lbl, _url, title=title, 
 
                           class_='tooltip' if parse_cs else '',)
 

	
 
        revs = []
 
        if len(filter(lambda v: v != '', revs_ids)) > 0:
 
            if parse_cs:
 
                repo = user_log.repository.scm_instance
 
            for rev in revs_ids[:revs_top_limit]:
 
                try:
 
                    rev = repo.get_changeset(rev)
 
                if parse_cs:
 
                    try:
 
                        rev = repo.get_changeset(rev)
 
                        revs.append(rev)
 
                    except ChangesetDoesNotExistError:
 
                        log.error('cannot find revision %s in this repo' % rev)
 
                        revs.append(rev)
 
                        continue
 
                else:
 
                    rev = AttributeDict({
 
                        'short_id': rev[:12],
 
                        'raw_id': rev,
 
                    })
 
                    revs.append(rev)
 
                except ChangesetDoesNotExistError:
 
                    log.error('cannot find revision %s in this repo' % rev)
 
                    revs.append(rev)
 
                    continue
 
        cs_links = []
 
        cs_links.append(" " + ', '.join(
 
            [lnk(rev, repo_name) for rev in revs[:revs_limit]]
 
            )
 
        )
 

	
 
        compare_view = (
 
            ' <div class="compare_view tooltip" title="%s">'
 
            '<a href="%s">%s</a> </div>' % (
 
                _('Show all combined changesets %s->%s') % (
 
                    revs_ids[0], revs_ids[-1]
 
                ),
0 comments (0 inline, 0 general)