You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2017/01/31 20:27:08 UTC

[6/7] allura git commit: [#8143] hi-res user icons, including gravatar

[#8143] hi-res user icons, including gravatar


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/2b894fcd
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/2b894fcd
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/2b894fcd

Branch: refs/heads/db/8143
Commit: 2b894fcd2dace3c9e68fd41456fb77c827f5db80
Parents: a124e25
Author: Dave Brondsema <da...@brondsema.net>
Authored: Tue Jan 31 13:01:06 2017 -0500
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Tue Jan 31 15:12:31 2017 -0500

----------------------------------------------------------------------
 Allura/allura/controllers/project.py          |  2 +-
 Allura/allura/model/auth.py                   | 11 +++++++++--
 Allura/allura/templates/jinja_master/lib.html | 11 +++++++++--
 3 files changed, 19 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/2b894fcd/Allura/allura/controllers/project.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/project.py b/Allura/allura/controllers/project.py
index eca8833..32167dc 100644
--- a/Allura/allura/controllers/project.py
+++ b/Allura/allura/controllers/project.py
@@ -433,7 +433,7 @@ class ProjectController(FeedController):
     @expose()
     def user_icon(self, **kw):
         try:
-            return self.icon()
+            return self.icon(**kw)
         except exc.HTTPNotFound:
             redirect(g.forge_static('images/user.png'))
 

http://git-wip-us.apache.org/repos/asf/allura/blob/2b894fcd/Allura/allura/model/auth.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/auth.py b/Allura/allura/model/auth.py
index 94bbcf0..69a3bd7 100644
--- a/Allura/allura/model/auth.py
+++ b/Allura/allura/model/auth.py
@@ -624,7 +624,7 @@ class User(MappedClass, ActivityNode, ActivityObject, SearchIndexable):
         return '/%s/' % plugin.AuthenticationProvider.get(request).user_project_shortname(self)
 
     @memoize
-    def icon_url(self, gravatar_default_url=None):
+    def icon_url(self, gravatar_default_url=None, return_more=False):
         icon_url = None
         try:
             private_project = self.private_project()
@@ -632,14 +632,21 @@ class User(MappedClass, ActivityNode, ActivityObject, SearchIndexable):
             log.warn('Error getting/creating user-project for %s',
                      self.username, exc_info=True)
             private_project = None
+        icon_source = None
         if private_project and private_project.icon:
             icon_url = self.url() + 'user_icon'
+            icon_source = 'local'
         elif self.preferences.email_address:
             gravatar_args = {}
             if gravatar_default_url:
                 gravatar_args['d'] = gravatar_default_url
             icon_url = g.gravatar(self.preferences.email_address, **gravatar_args)
-        return icon_url
+            icon_source = 'gravatar'
+
+        if return_more:
+            return icon_url, private_project, icon_source
+        else:
+            return icon_url
 
     @classmethod
     def upsert(cls, username):

http://git-wip-us.apache.org/repos/asf/allura/blob/2b894fcd/Allura/allura/templates/jinja_master/lib.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/jinja_master/lib.html b/Allura/allura/templates/jinja_master/lib.html
index 65a5f52..8feabf0 100644
--- a/Allura/allura/templates/jinja_master/lib.html
+++ b/Allura/allura/templates/jinja_master/lib.html
@@ -54,8 +54,15 @@
 
 {% macro gravatar(user, size, className, gravatar_default_url=None) -%}
   {% set display_name = h.really_unicode(user.display_name) %}
-  {% if user.icon_url() %}
-    <img src="{{user.icon_url(gravatar_default_url)}}"
+  {% set icon_url, user_proj, icon_source = user.icon_url(gravatar_default_url, return_more=True) %}
+  {% if icon_url %}
+    <img {% if icon_source == 'local' %}
+             {{ project_icon_srcs(user_proj, icon_url=icon_url) }}
+         {% elif icon_source == 'gravatar' %}
+             src="{{ icon_url }}"
+             srcset="{{icon_url}}&s={{ size*1.5 }} 1.5x,
+                     {{icon_url}}&s={{ size*2 }} 2x,"
+         {% endif %}
          alt="{{display_name}}"
          title="{{display_name}}"
          class="emboss{% if size %} x{{size}}{% endif %}{% if className %} {{className}}{% endif %}">