Browse Source

implement displaying Gravatars in the user detail pages

Natenom/support-murmur-13-1446181288462
Michael Ziegler 14 years ago
parent
commit
7d293b7224
  1. 17
      pyweb/mumble/models.py
  2. 6
      pyweb/mumble/templates/mumble/mumble.html
  3. 2
      pyweb/settings.py

17
pyweb/mumble/models.py

@ -566,6 +566,11 @@ class MumbleUser( models.Model ):
comment = mk_registration_property( "comment", doc=ugettext_noop("The user's comment.") );
hash = mk_registration_property( "hash", doc=ugettext_noop("The user's hash.") );
gravatar256 = property( lambda self: self.gravatarUrl( size=256 ) )
gravatar128 = property( lambda self: self.gravatarUrl( size=128 ) )
gravatar64 = property( lambda self: self.gravatarUrl( size=64 ) )
gravatar = property( lambda self: self.gravatarUrl() )
class Meta:
unique_together = ( ( 'server', 'owner' ), ( 'server', 'mumbleid' ) );
verbose_name = _( 'User account' );
@ -675,6 +680,18 @@ class MumbleUser( models.Model ):
else:
return True;
def gravatarUrl( self, size=80 ):
""" Get a Gravatar URL for my owner's email adress (if any), or using the User's cert hash.
The size parameter is optional, and defaults to 80 pixels (the default used by Gravatar
if you omit this parameter in the URL).
"""
if self.owner and self.owner.email:
from hashlib import md5
return settings.GRAVATAR_URL % { 'hash': md5(self.owner.email).hexdigest(), 'size': size }
elif self.hash:
return settings.GRAVATAR_URL % { 'hash': self.hash, 'size': size }
return None
def getTextureUrl( self ):
""" Get a URL under which the texture can be retrieved. """
from views import showTexture

6
pyweb/mumble/templates/mumble/mumble.html

@ -143,6 +143,12 @@
{{ item.comment|removetags:"script link meta html head body style"|safe }}
</fieldset>
{% endif %}
{% if item.mumbleuser and item.mumbleuser.gravatar %}
<fieldset>
<legend>Gravatar</legend>
<img src="{{ item.mumbleuser.gravatar }}" alt="{{ item.name }}'s gravatar" />
</fieldset>
{% endif %}
{% if item.mumbleuser and item.mumbleuser.hasTexture %}
<fieldset>
<legend>{% trans "User Texture" %}</legend>

2
pyweb/settings.py

@ -58,6 +58,8 @@ from os.path import join, dirname, abspath, exists
if not MUMBLE_DJANGO_ROOT or not exists( MUMBLE_DJANGO_ROOT ):
MUMBLE_DJANGO_ROOT = dirname(dirname(abspath(__file__)));
# URL Template for constructing Gravatars.
GRAVATAR_URL = 'http://www.gravatar.com/avatar/%(hash)s.jpg?d=monsterid&s=%(size)d'
# The default connection string to set for newly created instances.
# ICE:

Loading…
Cancel
Save