Changeset - 39b49c999efb
[Not reviewed]
beta
0 5 0
Marcin Kuzminski - 14 years ago 2011-12-08 00:23:11
marcin@python-works.com
fixes issue #320.
- added mapping of commit users into rhodecode users
5 files changed with 42 insertions and 7 deletions:
0 comments (0 inline, 0 general)
rhodecode/lib/helpers.py
Show inline comments
 
@@ -35,13 +35,12 @@ from webhelpers.paginate import Page
 
from webhelpers.html.tags import _set_input_attrs, _set_id_attr, \
 
    convert_boolean_attrs, NotGiven, _make_safe_id_component
 

	
 
from rhodecode.lib.annotate import annotate_highlight
 
from rhodecode.lib.utils import repo_name_slug
 
from rhodecode.lib import str2bool, safe_unicode, safe_str, get_changeset_safe
 

	
 
from rhodecode.lib.markup_renderer import MarkupRenderer
 

	
 
def _reset(name, value=None, id=NotGiven, type="reset", **attrs):
 
    """
 
    Reset button
 
    """
 
@@ -285,21 +284,56 @@ flash = _Flash()
 

	
 
#==============================================================================
 
# SCM FILTERS available via h.
 
#==============================================================================
 
from vcs.utils import author_name, author_email
 
from rhodecode.lib import credentials_filter, age as _age
 
from rhodecode.model.db import User
 

	
 
age = lambda  x:_age(x)
 
capitalize = lambda x: x.capitalize()
 
email = author_email
 
email_or_none = lambda x: email(x) if email(x) != x else None
 
person = lambda x: author_name(x)
 
short_id = lambda x: x[:12]
 
hide_credentials = lambda x: ''.join(credentials_filter(x))
 

	
 

	
 
def email_or_none(x):
 
    if email(x) != '':
 
        return email(x)
 

	
 
    # See if it contains a username we can get an email from
 
    user = User.get_by_username(author_name(x), case_insensitive=True,
 
                                cache=True)
 
    if user is not None:
 
        return user.email
 

	
 
    # No valid email, not a valid user in the system, none!
 
    return None
 

	
 
def person(x):
 
    # Valid email in the attribute passed, see if they're in the system
 

	
 
    # attr to return from fetched user
 
    person_getter = lambda usr: usr.username
 

	
 
    if email(x) != '':
 
        user = User.get_by_email(email(x), case_insensitive=True, cache=True)
 
        if user is not None:
 
            return person_getter(user)
 
        return email(x)
 

	
 
    # Maybe it's a username?
 
    user = User.get_by_username(author_name(x), case_insensitive=True,
 
                                cache=True)
 
    if user is not None:
 
        return person_getter(user)
 

	
 
    # Still nothing?  Just pass back the author name then
 
    return author_name(x)
 

	
 
def bool2icon(value):
 
    """Returns True/False values represented as small html image of true/false
 
    icons
 

	
 
    :param value: bool value
 
    """
rhodecode/templates/changelog/changelog.html
Show inline comments
 
@@ -51,14 +51,13 @@ ${c.repo_name} ${_('Changelog')} - ${c.r
 
							<span>${_('commit')} ${cs.revision}: ${h.short_id(cs.raw_id)}@${cs.date}</span>
 
							</div>
 
							<div class="author">
 
								<div class="gravatar">
 
									<img alt="gravatar" src="${h.gravatar_url(h.email(cs.author),16)}"/>
 
								</div>
 
								<div title="${h.email_or_none(cs.author)}" class="user">${h.person(cs.author)}</div>
 
								##<span><a href="mailto:${h.email_or_none(cs.author)}">${h.email_or_none(cs.author)}</a></span><br/>
 
								<div title="${cs.author}" class="user">${h.person(cs.author)}</div>
 
							</div>
 
							<div class="message">${h.link_to(h.wrap_paragraphs(cs.message),h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id))}</div>
 
						</div>	
 
						<div class="right">
 
									<div id="${cs.raw_id}_changes_info" class="changes">
 
                                        <span id="${cs.raw_id}" class="changed_total tooltip" title="${_('Affected number of files, click to show more details')}">${len(cs.affected_files)}</span>
rhodecode/templates/files/files_annotate.html
Show inline comments
 
@@ -61,13 +61,13 @@
 
                        </div>
 
                    </div>
 
                    <div class="author">
 
                        <div class="gravatar">
 
                            <img alt="gravatar" src="${h.gravatar_url(h.email(c.cs.author),16)}"/>
 
                        </div>
 
                        <div title="${h.email_or_none(c.cs.author)}" class="user">${h.person(c.cs.author)}</div>
 
                        <div title="${c.cs.author}" class="user">${h.person(c.cs.author)}</div>
 
                    </div>
 
                    <div class="commit">${c.file.last_changeset.message}</div>
 
                </div>
 
				<div class="code-body">
 
			       %if c.file.is_binary:
 
			           ${_('Binary file (%s)') % c.file.mimetype}
rhodecode/templates/files/files_browser.html
Show inline comments
 
@@ -93,13 +93,15 @@
 
		             		<span class="tooltip" title="${node.last_changeset.date}">
 
                            ${h.age(node.last_changeset.date)}</span>
 
		             	%endif
 
		             </td>
 
		             <td>
 
		             	%if node.is_file():
 
		             		${node.last_changeset.author}
 
		             		<span title="${node.last_changeset.author}">
 
                            ${h.person(node.last_changeset.author)}
 
                            </span>
 
		             	%endif                    
 
		             </td>
 
				</tr>
 
			%endfor
 
                </tbody>
 
                <tbody id="tbody_filtered" style="display:none">
rhodecode/templates/files/files_source.html
Show inline comments
 
@@ -32,13 +32,13 @@
 
            </div>
 
        </div>
 
        <div class="author">
 
            <div class="gravatar">
 
                <img alt="gravatar" src="${h.gravatar_url(h.email(c.changeset.author),16)}"/>
 
            </div>
 
            <div title="${h.email_or_none(c.changeset.author)}" class="user">${h.person(c.changeset.author)}</div>
 
            <div title="${c.changeset.author}" class="user">${h.person(c.changeset.author)}</div>
 
        </div>
 
		<div class="commit">${c.file.last_changeset.message}</div>
 
	</div>
 
	<div class="code-body">
 
	   %if c.file.is_binary:
 
	       ${_('Binary file (%s)') % c.file.mimetype}
0 comments (0 inline, 0 general)