From 415cc9a283294b6c08e32a5b0c09071a3bb0301e Mon Sep 17 00:00:00 2001 From: Slava Kyrachevsky Date: Thu, 19 Jan 2017 09:11:53 +0200 Subject: [PATCH] =?UTF-8?q?Ajax=20=D0=B2=D0=B0=D0=BB=D0=B8=D0=B4=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D1=8F=20=D1=84=D0=BE=D1=80=D0=BC=D1=8B=20=D1=80?= =?UTF-8?q?=D0=B5=D0=B3=D0=B8=D1=81=D1=82=D1=80=D0=B0=D1=86=D0=B8=D0=B8=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BB=D0=B5=D1=82=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 4 +- proj/settings.py | 2 +- proj/urls.py | 3 +- registration/backends/default/views.py | 38 +++++---- templates/client/popups/register.html | 102 ++++++++++++------------- 5 files changed, 78 insertions(+), 71 deletions(-) diff --git a/.gitignore b/.gitignore index 0226211e..620ee544 100644 --- a/.gitignore +++ b/.gitignore @@ -10,9 +10,9 @@ media/ media logs/ Thumbs.db -/proj/local.py +proj/local.py .DS_Store -locale +locale/ collected_static # gulp diff --git a/proj/settings.py b/proj/settings.py index aaadf0fa..4654fdbd 100644 --- a/proj/settings.py +++ b/proj/settings.py @@ -118,7 +118,7 @@ MEDIA_URL = '/media/' STATIC_URL = '/static/' STATIC_ROOT = os.path.join(SITE_ROOT, 'collected_static') STATICFILES_DIRS = ( - (os.path.join(SITE_ROOT, 'static')), + 'static', ) STATICFILES_FINDERS = ( diff --git a/proj/urls.py b/proj/urls.py index 8eecc716..ac0b6037 100644 --- a/proj/urls.py +++ b/proj/urls.py @@ -123,7 +123,8 @@ if settings.DEBUG: # ajax urls urlpatterns += solid_i18n_patterns('', url(r'^registration/reply/$', 'registration.backends.default.views.RegisterReply'), - url(r'^register/', 'registration.backends.default.views.RegisterAjaxView'), + url(r'^register/', 'registration.backends.default.views.RegisterAjaxView', name='register'), + url(r'^register/validate/', 'registration.backends.default.views.registration_form_validate', name='registration_form_validate'), url(r'^register-complete/', 'registration.backends.default.views.complete_registration'), url(r'^callback/', 'core.simple_index_view.callback'), url(r'^search-form/get-parent/$', 'settings.views.search_parent'), diff --git a/registration/backends/default/views.py b/registration/backends/default/views.py index 8655ef46..bf82d740 100644 --- a/registration/backends/default/views.py +++ b/registration/backends/default/views.py @@ -1,19 +1,26 @@ # -*- coding: utf-8 -*- from django.conf import settings -from django.contrib.sites.models import RequestSite -from django.contrib.sites.models import Site +from django.contrib.sites.models import RequestSite, Site from django.utils.translation import ugettext as _ -from django.http import Http404 +from django.http import Http404, HttpResponse, HttpResponseRedirect +from django.shortcuts import render +from django.contrib.auth import login, logout, authenticate +from django.views.decorators.debug import sensitive_post_parameters +from django.views.decorators.cache import never_cache from registration import signals from registration.models import RegistrationProfile from registration.views import ActivationView as BaseActivationView from registration.views import RegistrationView as BaseRegistrationView +from registration.forms import RegistrationFormUniqueEmail from accounts.forms import RegistrationCompleteForm, SocialRegistrationCompleteForm +from accounts.models import User + from social.apps.django_app.default.models import UserSocialAuth import json + class RegistrationView(BaseRegistrationView): """ A registration backend which follows a simple workflow: @@ -144,19 +151,20 @@ class ActivationView(BaseActivationView): return ('registration_activation_complete', (), {}) +def registration_form_validate(request): + """ + Ajax валидация формы регистрации на лету + """ + data = {'success': False} + if request.method == 'POST': + form = RegistrationFormUniqueEmail(request.POST) + if form.is_valid(): + data['success'] = True + else: + data['errors'] = form.errors + return HttpResponse(json.dumps(data), content_type='application/json') - -from django.http import HttpResponse, HttpResponseRedirect - -from accounts.models import User - -from registration.forms import RegistrationFormUniqueEmail -from django.contrib.auth import login, logout, authenticate - -from django.views.decorators.debug import sensitive_post_parameters -from django.views.decorators.cache import never_cache - @sensitive_post_parameters('password1', 'password2') @never_cache def RegisterAjaxView(request): @@ -277,8 +285,6 @@ def complete_registration(request): else: return HttpResponse('not ajax') -from django.shortcuts import render - def acquire_email(request, template_name="registration/acquire_email.html"): """ diff --git a/templates/client/popups/register.html b/templates/client/popups/register.html index 49d0f590..93cf1dfe 100644 --- a/templates/client/popups/register.html +++ b/templates/client/popups/register.html @@ -1,68 +1,68 @@ -{% load static %} -{% load i18n %} +{% load static i18n %}