aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--okupy/accounts/forms.py3
-rw-r--r--okupy/accounts/models.py1
-rw-r--r--okupy/accounts/views.py6
-rw-r--r--okupy/templates/index.html5
-rw-r--r--okupy/templates/settings-email.html14
5 files changed, 28 insertions, 1 deletions
diff --git a/okupy/accounts/forms.py b/okupy/accounts/forms.py
index 47b66a2..d26c34b 100644
--- a/okupy/accounts/forms.py
+++ b/okupy/accounts/forms.py
@@ -105,7 +105,8 @@ class EmailSettingsForm(forms.Form):
email = forms.EmailField(max_length=254, label='Add Email',
help_text='A valid email address, please.',
required=False)
-
+ gravatar = forms.EmailField(max_length=254, label='Gravatar Email',
+ required=False)
class ContactSettingsForm(forms.Form):
website = forms.URLField(label='Website', required=False)
diff --git a/okupy/accounts/models.py b/okupy/accounts/models.py
index 4da7ee4..239c99f 100644
--- a/okupy/accounts/models.py
+++ b/okupy/accounts/models.py
@@ -51,6 +51,7 @@ class LDAPUser(ldapdb.models.Model):
gentoo_retire_date = ListField(db_column='gentooRetire')
gpg_fingerprint = ListField(db_column='gpgfingerprint')
gpg_key = ListField(db_column='gpgKey')
+ gravatar = CharField(db_column='gravatar')
im = ListField(db_column='gentooIM')
latitude = FloatField(db_column='lat')
location = CharField(db_column='gentooLocation')
diff --git a/okupy/accounts/views.py b/okupy/accounts/views.py
index febe39b..6487c8b 100644
--- a/okupy/accounts/views.py
+++ b/okupy/accounts/views.py
@@ -49,6 +49,7 @@ from okupy.otp.totp.models import TOTPDevice
import openid.yadis.discover
import openid.fetchers
import django_otp
+import hashlib
import io
import ldap
import logging
@@ -481,12 +482,17 @@ def email_settings(request):
if email_settings.is_valid():
try:
email = email_settings.cleaned_data['email']
+ gravatar_mail = email_settings.cleaned_data['gravatar']
if request.POST.get('delete'):
user_info.email.remove(email)
else:
user_info.email.append(email)
+ if gravatar_mail:
+ gravatar_hash = hashlib.md5(gravatar_mail).hexdigest()
+ user_info.gravatar = gravatar_hash
+
try:
user_info.save()
except IntegrityError:
diff --git a/okupy/templates/index.html b/okupy/templates/index.html
index 5c3e2de..f464d46 100644
--- a/okupy/templates/index.html
+++ b/okupy/templates/index.html
@@ -16,6 +16,11 @@
</table>
</div>
</p>
+ {% if user.gravatar %}
+ <div class="span2">
+ <img class="thumbnail" src="https://gravatar.com/avatar/{{ user.gravatar }}?d=identicons&s=200" alt="" />
+ </div>
+ {% endif %}
</div>
<div class="row-fluid">
<p>
diff --git a/okupy/templates/settings-email.html b/okupy/templates/settings-email.html
index 51a5eba..1c21f28 100644
--- a/okupy/templates/settings-email.html
+++ b/okupy/templates/settings-email.html
@@ -36,6 +36,20 @@
<input class="btn btn-primary" type="submit" value="Add email" />
</div>
</form>
+ <div>Current avatar:<br />
+ {% if user_info.gravatar %}
+ <img class="thumbnail" src="https://gravatar.com/avatar/{{ user_info.gravatar }}?d=identicons&s=170" />
+ {% else %}
+ No avatar
+ {% endif %}
+ </div><br />
+ <form action="." method="POST">{% csrf_token %}
+ {{ email_settings.gravatar.label_tag }}
+ {{ email_settings.gravatar }} {{ email_settings.gravatar.errors|striptags }}
+ <div class="row-fluid buttons">
+ <input class="btn btn-primary" type="submit" value="Submit" />
+ </div>
+ </form>
</div>
</div>
</div>