1
0
Fork 0

Replace django-avatar with Gravatar requests

Remove the dependency on django-avatar and use simple urls pointing
to Gravatar avatar images.

This replacement will require manual changes:
1. Remove from database the django-avatar table
2. Remove images directory that hosts old avatar images

Signed-off-by: Alfredos-Panagiotis Damkalis <fredy@fredy.gr>
spacecruft
Alfredos-Panagiotis Damkalis 2022-04-27 14:49:47 +03:00
parent 56255a0ad5
commit 842a6b3d77
10 changed files with 19 additions and 46 deletions

View File

@ -1,4 +1,6 @@
"""Django template tags for SatNOGS DB"""
from hashlib import md5
from django import template
from django.urls import reverse
from django.utils.html import format_html
@ -6,6 +8,15 @@ from django.utils.html import format_html
register = template.Library()
# TEMPLATE USE: {{ email|gravatar_url:150 }}
@register.filter
def gravatar_url(email, size=40):
"""Returns the Gravatar URL based on user's email address"""
return "https://www.gravatar.com/avatar/%s?s=%s" % (
md5(email.lower().encode('utf-8')).hexdigest(), str(size)
)
@register.simple_tag
def active(request, urls):
"""Returns if this is an active URL"""

View File

@ -32,7 +32,6 @@ DJANGO_APPS = (
'django.contrib.admin',
)
THIRD_PARTY_APPS = (
'avatar',
'bootstrap_modal_forms',
'rest_framework',
'rest_framework.authtoken',

View File

@ -1 +0,0 @@
{% extends "avatar/change.html" %}

View File

@ -1 +0,0 @@
<img src="{{ url }}" class="user-image m-1" alt="User Image"><i class="nav-icon fas fa-sm fa-caret-down"></i>

View File

@ -1,4 +0,0 @@
{% extends "base.html" %}
{% block title %} - Avatar{% endblock %}
{% block content %}{% endblock %}

View File

@ -1,31 +0,0 @@
{% extends "avatar/base.html" %}
{% load avatar_tags %}
{% block content %}
<h2>Avatar</h2>
<div class="row">
<div class="col-md-1">
{% avatar user %}
</div>
<div class="col-md-9">
{% if not avatars %}
<p>You haven't uploaded an avatar yet. Showing what found at Gravatar.</p>
{% endif %}
<form class="form-avatar" enctype="multipart/form-data" method="POST" action="{% url 'avatar_add' %}">
{% csrf_token %}
{{ upload_avatar_form.as_p }}
<input type="submit" class="btn btn-sm btn-primary" value="Upload New Image">
</form>
{% if avatars %}
<form class="form-avatar" method="POST" action="{% url 'avatar_delete' %}">
{% csrf_token %}
{% for avatar in avatars %}
<input name="choices" value="{{ avatar.id }}" type="hidden">
{% endfor %}
<input type="submit" class="btn btn-sm btn-danger" value="Delete Current Avatar">
</form>
{% endif %}
</div>
</div>
{% endblock %}

View File

@ -1,6 +1,6 @@
{% load static %}
{% load avatar_tags %}
{% load tags %}
{% load cache %}
{% load compress %}
<!DOCTYPE html>
@ -46,7 +46,9 @@
<ul class="nav navbar-nav ml-1">
<li class="user user-menu">
<a href="#" id="control-sidebar-toggle" data-widget="control-sidebar" role="button" data-slide="true">
{% avatar request.user %}
{% cache 3600 sidebar_avatar request.user.email %}
<img src="{{ request.user.email|gravatar_url:80 }}" class="user-image m-1" alt="User Avatar"/><i class="nav-icon fas fa-sm fa-caret-down"></i>
{% endcache %}
</a>
</li>
</ul>

View File

@ -17,7 +17,7 @@ mock==4.0.3
platformdirs==2.5.2
pluggy==1.0.0
py==1.11.0
pytest==7.1.1
pytest==7.1.2
pytest-celery==0.0.0
pytest-cov==3.0.0
pytest-django==4.5.2

View File

@ -17,14 +17,13 @@ click==8.1.2
click-didyoumean==0.3.0
click-plugins==1.1.1
click-repl==0.2.0
cryptography==36.0.2
cryptography==37.0.0
defusedxml==0.7.1
Deprecated==1.2.13
dj-database-url==0.5.0
Django==4.0.4
django-allauth==0.50.0
django-appconf==1.0.5
django-avatar @ git+https://github.com/ntoll/django-avatar@68340e8ac603401cfbf05b71bd3f6ad6232fe66c
django-bootstrap-modal-forms==2.2.0
django-compressor==4.0
django-cors-headers==3.11.0
@ -37,7 +36,7 @@ django-shortuuidfield==0.1.3
django-widget-tweaks==1.4.12
djangorestframework==3.13.1
dnspython==1.16.0
drf-spectacular==0.22.0
drf-spectacular==0.22.1
ecdsa==0.17.0
enum34==1.1.10
eventlet==0.30.2

View File

@ -27,6 +27,7 @@ install_requires =
Django~=4.0.0
django-shortuuidfield~=0.1.0
celery~=5.2.0
Pillow~=9.1.0
# Deployment
mysqlclient~=2.1.0
# pinning for https://github.com/benoitc/gunicorn/pull/2581
@ -46,8 +47,6 @@ install_requires =
django-cors-headers~=3.11.0
# Users
django-allauth~=0.50.0
# pinning until https://github.com/grantmcconnaughey/django-avatar/pull/204 is merged
django-avatar @ git+https://github.com/ntoll/django-avatar@68340e8ac603401cfbf05b71bd3f6ad6232fe66c
django-crispy-forms~=1.14.0
social-auth-app-django~=5.0.0
# Needed by Auth0, https://auth0.com/blog/django-authentication/#Adding-Authentication