mirror of
https://git.linux-kernel.at/oliver/ivatar.git
synced 2025-11-14 20:18:02 +00:00
Add tools, first interface, no functionality yet
This commit is contained in:
@@ -25,6 +25,7 @@ INSTALLED_APPS.extend([
|
|||||||
'anymail',
|
'anymail',
|
||||||
'ivatar',
|
'ivatar',
|
||||||
'ivatar.ivataraccount',
|
'ivatar.ivataraccount',
|
||||||
|
'ivatar.tools',
|
||||||
])
|
])
|
||||||
|
|
||||||
from ivatar.settings import MIDDLEWARE # noqa
|
from ivatar.settings import MIDDLEWARE # noqa
|
||||||
|
|||||||
64
ivatar/tools/forms.py
Normal file
64
ivatar/tools/forms.py
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
'''
|
||||||
|
Classes for our ivatar.tools.forms
|
||||||
|
'''
|
||||||
|
from django import forms
|
||||||
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
from django.core.exceptions import ValidationError
|
||||||
|
|
||||||
|
|
||||||
|
class CheckDomainForm(forms.Form):
|
||||||
|
'''
|
||||||
|
Form handling domain check
|
||||||
|
'''
|
||||||
|
can_distribute = forms.TextInput(
|
||||||
|
attrs={
|
||||||
|
'label': _('Domain'),
|
||||||
|
'required': True,
|
||||||
|
'error_messages': {
|
||||||
|
'required':
|
||||||
|
_('Cannot check without a domain name.')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class CheckForm(forms.Form):
|
||||||
|
'''
|
||||||
|
Form handling check
|
||||||
|
'''
|
||||||
|
mail = forms.EmailField(
|
||||||
|
label=_('E-Mail'),
|
||||||
|
required=False,
|
||||||
|
error_messages={
|
||||||
|
'required':
|
||||||
|
_('Cannot check without a domain name.')
|
||||||
|
})
|
||||||
|
|
||||||
|
openid = forms.CharField(
|
||||||
|
label=_('OpenID'),
|
||||||
|
required=False,
|
||||||
|
error_messages={
|
||||||
|
'required':
|
||||||
|
_('Cannot check without an openid name.')
|
||||||
|
})
|
||||||
|
|
||||||
|
size = forms.IntegerField(
|
||||||
|
label=_('Size'),
|
||||||
|
initial=80,
|
||||||
|
min_value=10,
|
||||||
|
max_value=160,
|
||||||
|
required=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
default_url = forms.URLField(
|
||||||
|
label=_('Default URL'),
|
||||||
|
required=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
def clean(self):
|
||||||
|
self.cleaned_data = super().clean()
|
||||||
|
mail = self.cleaned_data.get('mail')
|
||||||
|
openid = self.cleaned_data.get('openid')
|
||||||
|
if not mail and not openid:
|
||||||
|
raise ValidationError(_('Either OpenID or mail must be specified'))
|
||||||
|
return self.cleaned_data
|
||||||
21
ivatar/tools/templates/check.html
Normal file
21
ivatar/tools/templates/check.html
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{% extends 'base.html' %}
|
||||||
|
{% load i18n %}
|
||||||
|
{% load bootstrap4 %}
|
||||||
|
|
||||||
|
{% block title %}{% trans 'Check e-mail or openid' %}{% endblock title %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
|
||||||
|
<h1>{% trans 'Check e-mail or openid' %}</h1>
|
||||||
|
|
||||||
|
<div style="width:600px;">
|
||||||
|
<form method="post" name="check">{% csrf_token %}
|
||||||
|
{% bootstrap_form form %}
|
||||||
|
{% buttons %}
|
||||||
|
<button type="submit" class="btn btn-primary">{% trans 'Check' %}</button>
|
||||||
|
<button type="cancel" class="btn btn-danger">{% trans 'Cancel' %}</button>
|
||||||
|
{% endbuttons %}
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endblock content %}
|
||||||
11
ivatar/tools/urls.py
Normal file
11
ivatar/tools/urls.py
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
'''
|
||||||
|
ivatar/tools URL configuration
|
||||||
|
'''
|
||||||
|
|
||||||
|
from django.conf.urls import url
|
||||||
|
from . views import CheckView, CheckDomainView
|
||||||
|
|
||||||
|
urlpatterns = [ # pylint: disable=invalid-name
|
||||||
|
url('check/', CheckView.as_view(), name='tools_check'),
|
||||||
|
url('check_domain/', CheckDomainView.as_view(), name='tools_check_domain'),
|
||||||
|
]
|
||||||
29
ivatar/tools/views.py
Normal file
29
ivatar/tools/views.py
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
'''
|
||||||
|
View classes for ivatar/tools/
|
||||||
|
'''
|
||||||
|
from django.views.generic.edit import FormView
|
||||||
|
from django.urls import reverse_lazy as reverse
|
||||||
|
from django.shortcuts import render
|
||||||
|
|
||||||
|
from .forms import CheckDomainForm, CheckForm
|
||||||
|
|
||||||
|
|
||||||
|
class CheckDomainView(FormView):
|
||||||
|
'''
|
||||||
|
View class for checking a domain
|
||||||
|
'''
|
||||||
|
template_name = 'check_domain.html'
|
||||||
|
form_class = CheckDomainForm
|
||||||
|
|
||||||
|
|
||||||
|
class CheckView(FormView):
|
||||||
|
'''
|
||||||
|
View class for checking an e-mail or openid address
|
||||||
|
'''
|
||||||
|
template_name = 'check.html'
|
||||||
|
form_class = CheckForm
|
||||||
|
success_url = reverse('tools_check')
|
||||||
|
|
||||||
|
def form_valid(self, form):
|
||||||
|
super().form_valid(form)
|
||||||
|
return render(self.request, self.template_name, {'form': form})
|
||||||
@@ -13,6 +13,7 @@ urlpatterns = [ # pylint: disable=invalid-name
|
|||||||
path('admin/', admin.site.urls),
|
path('admin/', admin.site.urls),
|
||||||
url('openid/', include('django_openid_auth.urls')),
|
url('openid/', include('django_openid_auth.urls')),
|
||||||
url('accounts/', include('ivatar.ivataraccount.urls')),
|
url('accounts/', include('ivatar.ivataraccount.urls')),
|
||||||
|
url('tools/', include('ivatar.tools.urls')),
|
||||||
url(
|
url(
|
||||||
r'avatar/(?P<digest>\w{64})',
|
r'avatar/(?P<digest>\w{64})',
|
||||||
AvatarImageView.as_view(), name='avatar_view'),
|
AvatarImageView.as_view(), name='avatar_view'),
|
||||||
|
|||||||
Reference in New Issue
Block a user