From: Michael Tremer Date: Mon, 28 Oct 2019 20:07:29 +0000 (+0000) Subject: people: Encourage people to upload an avatar X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5d42f49b8339175008c8c66787add610a0126815;p=ipfire.org.git people: Encourage people to upload an avatar Signed-off-by: Michael Tremer --- diff --git a/src/backend/accounts.py b/src/backend/accounts.py index d4e0db67..44952a34 100644 --- a/src/backend/accounts.py +++ b/src/backend/accounts.py @@ -960,6 +960,16 @@ class Account(Object): return ret + def has_avatar(self): + has_avatar = self.memcache.get("accounts:%s:has-avatar" % self.uid) + if has_avatar is None: + has_avatar = True if self.get_avatar() else False + + # Cache avatar status for up to 24 hours + self.memcache.set("accounts:%s:has-avatar" % self.uid, has_avatar, 3600 * 24) + + return has_avatar + def avatar_url(self, size=None): url = "https://people.ipfire.org/users/%s.jpg" % self.uid @@ -995,6 +1005,9 @@ class Account(Object): def upload_avatar(self, avatar): self._set("jpegPhoto", avatar) + # Delete cached avatar status + self.memcache.delete("accounts:%s:has-avatar" % self.uid) + class StopForumSpam(Object): def init(self, uid, email, address): diff --git a/src/backend/memcached.py b/src/backend/memcached.py index eac8a3a8..56a8cc80 100644 --- a/src/backend/memcached.py +++ b/src/backend/memcached.py @@ -19,7 +19,7 @@ class Memcached(Object): if ret is None: logging.debug("Found nothing for %s" % key) else: - logging.debug("Found object of %s bytes for %s" % (len(ret), key)) + logging.debug("Found object for %s" % key) return ret @@ -33,7 +33,7 @@ class Memcached(Object): if ret is None: logging.debug("Found nothing for %s" % keys) else: - logging.debug("Found object of %s bytes for %s" % (len(ret), keys)) + logging.debug("Found objects for %s" % keys) return ret @@ -43,7 +43,7 @@ class Memcached(Object): if data is None: logging.debug("Putting nothing into cache for %s" % key) else: - logging.debug("Putting %s bytes into cache for %s" % (len(data), key)) + logging.debug("Putting object into cache for %s" % key) return self._connection.add(key, data, *args, **kwargs) @@ -53,7 +53,7 @@ class Memcached(Object): if data is None: logging.debug("Putting nothing into cache for %s" % key) else: - logging.debug("Putting %s bytes into cache for %s" % (len(data), key)) + logging.debug("Putting object into cache for %s" % key) return self._connection.set(key, data, *args, **kwargs) diff --git a/src/templates/people/index.html b/src/templates/people/index.html index a3a18441..0d17bf1b 100644 --- a/src/templates/people/index.html +++ b/src/templates/people/index.html @@ -4,7 +4,7 @@ {% block content %}
-
+

{{ _("Hello, %s!") % current_user.first_name }}

@@ -13,5 +13,38 @@

+ + {% if hints %} +
+
+
+
+ +
+ +
+

{{ _("Tell us more about you!") }}

+

+ {{ _("Become a part of our community and allow other people to connect with you!") }} +

+
+
+
+ + +
+ {% end %}
{% end block %} diff --git a/src/web/people.py b/src/web/people.py index 758da2ae..8ed5f044 100644 --- a/src/web/people.py +++ b/src/web/people.py @@ -16,7 +16,13 @@ from . import ui_modules class IndexHandler(auth.CacheMixin, base.BaseHandler): @tornado.web.authenticated def get(self): - self.render("people/index.html") + hints = [] + + # Suggest uploading an avatar if this user does not have one + if not self.current_user.has_avatar(): + hints.append("avatar") + + self.render("people/index.html", hints=hints) class AvatarHandler(base.BaseHandler):