mirror of
https://git.linux-kernel.at/oliver/ivatar.git
synced 2025-11-18 14:08:04 +00:00
Assign Photo to OpenId
This commit is contained in:
44
ivatar/ivataraccount/templates/assign_photo_openid.html
Normal file
44
ivatar/ivataraccount/templates/assign_photo_openid.html
Normal file
@@ -0,0 +1,44 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block title %}{% blocktrans with openid.openid as openid_address %}Choose a photo for {{ openid_address }}{% endblocktrans %} - ivatar{% endblock title %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h1>{% blocktrans with openid.openid as openid_address %}Choose a photo for {{ openid_address }}{% endblocktrans %}</h1>
|
||||
|
||||
{% if not user.photo_set.count %}
|
||||
|
||||
{% url 'upload_photo' as upload_url %}
|
||||
<p>{% blocktrans %}You need to <a href="{{ upload_url }}">upload some photos</a> first!{% endblocktrans %}</p>
|
||||
|
||||
<p><a href="{% url 'profile' %}">{% trans 'Back to your profile' %}</a></p>
|
||||
|
||||
{% else %}
|
||||
|
||||
<p>{% trans 'Here are the pictures you have uploaded, click on the one you wish to associate with this openid address:' %}</p>
|
||||
<ul class="horizontal-list avatar-list centered">
|
||||
{% for photo in user.photo_set.all %}
|
||||
<li>
|
||||
<form action="{% url 'assign_photo_openid' view.kwargs.openid_id %}" method="post">{% csrf_token %}
|
||||
<input type="hidden" name="photo_id" value="{{ photo.id }}">
|
||||
<input type="image" name="photo{{ photo.id }}" src="{% url 'raw_image' photo.id %}" class="thumbnail">
|
||||
{% ifequal openid.photo.id photo.id %}
|
||||
<br>{% trans '(current)' %}
|
||||
{% endifequal %}
|
||||
</form></li>
|
||||
{% endfor %}
|
||||
<li>
|
||||
<form action="{% url 'assign_photo_openid' view.kwargs.openid_id %}" method="post">{% csrf_token %}
|
||||
<input type="submit" name="photoNone" value="{% trans 'None' %}">
|
||||
{% ifequal openid.photo.id photo.id %}
|
||||
<br>{% trans '(current)' %}
|
||||
{% endifequal %}
|
||||
</form></li>
|
||||
</ul>
|
||||
|
||||
<p><a href="{% url 'upload_photo' %}">{% blocktrans %}upload a new one{% endblocktrans %}</a></p>
|
||||
|
||||
{% endif %}
|
||||
|
||||
{% endblock content %}
|
||||
@@ -6,7 +6,8 @@ from . views import CreateView, PasswordSetView, AddEmailView
|
||||
from . views import RemoveUnconfirmedEmailView, ConfirmEmailView
|
||||
from . views import RemoveConfirmedEmailView, AssignPhotoEmailView
|
||||
from . views import RemoveUnconfirmedOpenIDView, RemoveConfirmedOpenIDView
|
||||
from . views import ImportPhotoView, RawImageView, DeletePhotoView, UploadPhotoView
|
||||
from . views import ImportPhotoView, RawImageView, DeletePhotoView
|
||||
from . views import UploadPhotoView, AssignPhotoOpenIDView
|
||||
from . views import AddOpenIDView, RedirectOpenIDView, ConfirmOpenIDView
|
||||
from django.contrib.auth.views import login, logout, password_change, password_change_done
|
||||
from django.urls import reverse_lazy
|
||||
@@ -41,7 +42,7 @@ urlpatterns = [
|
||||
url('remove_unconfirmed_email/(?P<email_id>\d+)', RemoveUnconfirmedEmailView.as_view(), name='remove_unconfirmed_email'),
|
||||
url('remove_confirmed_email/(?P<email_id>\d+)', RemoveConfirmedEmailView.as_view(), name='remove_confirmed_email'),
|
||||
url('assign_photo_email/(?P<email_id>\d+)', AssignPhotoEmailView.as_view(), name='assign_photo_email'),
|
||||
url('assign_photo_openid/(?P<email_id>\d+)', TemplateView.as_view(template_name='fixme.html'), name='assign_photo_openid'),
|
||||
url('assign_photo_openid/(?P<openid_id>\d+)', AssignPhotoOpenIDView.as_view(), name='assign_photo_openid'),
|
||||
url('import_photo/(?P<email_id>\d+)', ImportPhotoView.as_view(), name='import_photo'),
|
||||
url('delete_photo/(?P<pk>\d+)', DeletePhotoView.as_view(), name='delete_photo'),
|
||||
url('raw_image/(?P<pk>\d+)', RawImageView.as_view(), name='raw_image'),
|
||||
|
||||
@@ -210,6 +210,47 @@ class AssignPhotoEmailView(SuccessMessageMixin, TemplateView):
|
||||
return data
|
||||
|
||||
|
||||
@method_decorator(login_required, name='dispatch')
|
||||
class AssignPhotoOpenIDView(SuccessMessageMixin, TemplateView):
|
||||
'''
|
||||
View class for assigning a photo to an openid address
|
||||
'''
|
||||
model = Photo
|
||||
template_name = 'assign_photo_openid.html'
|
||||
|
||||
def post(self, *args, **kwargs):
|
||||
photo = None
|
||||
if 'photo_id' not in self.request.POST:
|
||||
messages.error(self.request,
|
||||
_('Invalid request [photo_id] missing'))
|
||||
return HttpResponseRedirect(reverse_lazy('profile'))
|
||||
|
||||
try:
|
||||
photo = self.model.objects.get(
|
||||
id=self.request.POST['photo_id'], user=self.request.user)
|
||||
except self.model.DoesNotExist:
|
||||
messages.error(self.request, _('Photo does not exist'))
|
||||
return HttpResponseRedirect(reverse_lazy('profile'))
|
||||
|
||||
try:
|
||||
openid = ConfirmedOpenId.objects.get(
|
||||
user=self.request.user, id=kwargs['openid_id'])
|
||||
except ConfirmedOpenId.DoesNotExist:
|
||||
messages.error(self.request, _('Invalid request'))
|
||||
return HttpResponseRedirect(reverse_lazy('profile'))
|
||||
|
||||
openid.photo = photo
|
||||
openid.save()
|
||||
|
||||
messages.success(self.request, _('Successfully changed photo'))
|
||||
return HttpResponseRedirect(reverse_lazy('profile'))
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
data = super().get_context_data(**kwargs)
|
||||
data['openid'] = ConfirmedOpenId.objects.get(pk=kwargs['openid_id'])
|
||||
return data
|
||||
|
||||
|
||||
@method_decorator(login_required, name='dispatch')
|
||||
class ImportPhotoView(SuccessMessageMixin, View):
|
||||
'''
|
||||
|
||||
Reference in New Issue
Block a user