Merge branch 'develop' of gitlab.com:OldminTeam/expomap into develop

remotes/origin/tests
Slava Kyrachevsky 9 years ago
commit 623aed25a4
  1. 2
      proj/urls.py
  2. 46
      registration/backends/default/views.py
  3. 4
      registration/forms.py
  4. 5
      static/client/css/main.css
  5. 2
      static/client/css_min/main.min.css
  6. 58
      static/client/js/_modules/block.common.js
  7. 2
      static/client/js_min/_modules/block.common.min.js
  8. 129
      templates/client/popups/register.html

@ -123,8 +123,8 @@ if settings.DEBUG:
# ajax urls # ajax urls
urlpatterns += solid_i18n_patterns('', urlpatterns += solid_i18n_patterns('',
url(r'^registration/reply/$', 'registration.backends.default.views.RegisterReply'), url(r'^registration/reply/$', 'registration.backends.default.views.RegisterReply'),
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/validate/', 'registration.backends.default.views.registration_form_validate', name='registration_form_validate'),
url(r'^register/', 'registration.backends.default.views.RegisterAjaxView', name='register'),
url(r'^register-complete/', 'registration.backends.default.views.complete_registration'), url(r'^register-complete/', 'registration.backends.default.views.complete_registration'),
url(r'^callback/', 'core.simple_index_view.callback'), url(r'^callback/', 'core.simple_index_view.callback'),
url(r'^search-form/get-parent/$', 'settings.views.search_parent'), url(r'^search-form/get-parent/$', 'settings.views.search_parent'),

@ -168,35 +168,31 @@ def registration_form_validate(request):
@sensitive_post_parameters('password1', 'password2') @sensitive_post_parameters('password1', 'password2')
@never_cache @never_cache
def RegisterAjaxView(request): def RegisterAjaxView(request):
#if request.is_ajax(): data = {'success': False}
data = {'success': False} if request.method == 'POST':
if request.POST: form = RegistrationFormUniqueEmail(request.POST)
form = RegistrationFormUniqueEmail(request.POST) if form.is_valid():
if form.is_valid(): first_name, last_name, email, password = form.cleaned_data['first_name'],\
first_name, last_name, email, password = form.cleaned_data['first_name'],\ form.cleaned_data['last_name'], form.cleaned_data['email'],\
form.cleaned_data['last_name'], form.cleaned_data['email'],\ form.cleaned_data['password1']
form.cleaned_data['password1'] if Site._meta.installed:
if Site._meta.installed: site = Site.objects.get_current()
site = Site.objects.get_current()
else:
site = RequestSite(request)
new_user = RegistrationProfile.objects.create_inactive_user(first_name, last_name, email,
password, site)
signals.user_registered.send(sender=User,
user=new_user,
request=request)
data['success'] = True
else: else:
data.update({'errors':form.errors}) site = RequestSite(request)
new_user = RegistrationProfile.objects.create_inactive_user(first_name, last_name, email,
password, site)
signals.user_registered.send(sender=User,
user=new_user,
request=request)
data['success'] = True
return HttpResponse(json.dumps(data), content_type='application/json')
else: else:
# 404 data.update({'errors':form.errors})
return HttpResponse('not post')
#else: return HttpResponse(json.dumps(data), content_type='application/json')
else:
# 404 # 404
# return HttpResponse('not ajax') return HttpResponse('not post')
def RegisterReply(request): def RegisterReply(request):
if request.GET: if request.GET:

@ -51,9 +51,9 @@ class RegistrationForm(forms.Form):
widget=forms.TextInput(attrs={'placeholder':_(u'Фамилия')})) widget=forms.TextInput(attrs={'placeholder':_(u'Фамилия')}))
email = forms.EmailField(label=_("E-mail"), widget=forms.TextInput(attrs={'placeholder':_(u'Адрес электронной почты')})) email = forms.EmailField(label=_("E-mail"), widget=forms.TextInput(attrs={'placeholder':_(u'Адрес электронной почты')}))
password1 = forms.CharField(widget=forms.PasswordInput(attrs={'placeholder':_(u'Придумайте пароль')}), password1 = forms.CharField(min_length=6, widget=forms.PasswordInput(attrs={'placeholder':_(u'Придумайте пароль')}),
label=_("Password")) label=_("Password"))
password2 = forms.CharField(widget=forms.PasswordInput(attrs={'placeholder':_(u'Повторите пароль')}), password2 = forms.CharField(min_length=6, widget=forms.PasswordInput(attrs={'placeholder':_(u'Повторите пароль')}),
label=_("Password (again)")) label=_("Password (again)"))
def clean(self): def clean(self):

@ -1562,6 +1562,11 @@ button:hover {
width: 265px; width: 265px;
cursor: pointer cursor: pointer
} }
.pw-reg button[disabled],
.pw-reg button[disabled]:hover{
background: #666666;
cursor: default;
}
button[class*=icon-]:before { button[class*=icon-]:before {
content: ' '; content: ' ';
display: inline-block; display: inline-block;

File diff suppressed because one or more lines are too long

@ -270,6 +270,7 @@ if (EXPO.common){
/** /**
* registration form requires a special form of error messages * registration form requires a special form of error messages
*/ */
// TODO: refactor same code
$('form.simple-validate-register').on('submit', function(e){ $('form.simple-validate-register').on('submit', function(e){
e.preventDefault(); e.preventDefault();
var $form = $(this), var $form = $(this),
@ -333,6 +334,63 @@ if (EXPO.common){
} }
}); });
var timer;
$('form.simple-validate-register').on('keyup', 'input', function (e) {
e.preventDefault();
var $form = $(this).parents('form');
clearTimeout(timer);
timer = setTimeout(function () {
$.post($form.data('validate-url'), $form.serializeArray(), function (data) {
if (data.success){
$form.find('button').prop('disabled', false);
$(".error", $form).remove();
$(".required.err", $form).removeClass("required err");
$(".pwf-line .msg-help",$form).each(function () {
var $this = $(this),
defaultT = $this.attr("data-default");
if($.trim(defaultT) != ''){
$this.html('').text(defaultT);
}
});
//$resend.attr('data-email',mailVal);
// $.fancybox.close(true);
// $.fancybox('#pw-reg-complete');
}
else{
$form.find('button').prop('disabled', true);
// delete previous error messages
$(".error", $form).remove();
$(".required.err", $form).removeClass("required err");
$('.has_error', $form).removeClass('has_error');
$(".pwf-line .msg-help",$form).each(function () {
var $this = $(this),
defaultT = $this.attr("data-default");
if($.trim(defaultT) != ''){
$this.html('').text(defaultT).hide();
}
});
$.each(data.errors, function (index, value) {
var $input = $("#id_"+index, $form),
$error = $("<div/>").attr("class", "error").append(value),
$msg = $input.closest(".pwf-line").find(".msg-help");
$input.parent().addClass('required err');
$input.parents('.pwf-line').addClass('has_error');
$msg.attr("data-default", $msg.text());
$msg.text('').prepend($error);
$msg.show();
});
}
});
}, 500);
});
}); });
//private //private
$(function () { $(function () {

File diff suppressed because one or more lines are too long

@ -1,68 +1,75 @@
{% load static i18n %} {% load static i18n %}
<div id="pw-reg" class="popup-window pw-reg"> <div id="pw-reg" class="popup-window pw-reg">
<header class="clearfix"> <header class="clearfix">
<div class="pw-title">{% trans 'Регистрация' %}</div> <div class="pw-title">{% trans 'Регистрация' %}</div>
</header> </header>
<div class="pw-body clearfix">
<form method="post" class="pw-form simple-validate-register reg-form" id="reg_form" action="{% url 'register' %}" data-validate-url="{% url 'registration_form_validate' %}">
{% csrf_token %}
<div class="pwf-line">
<div class="pwf-field">
<input id="id_first_name" maxlength="30" name="first_name" placeholder="{% trans 'Имя' %}" type="text">
</div>
<div class="pwf-msg">
<div class="msg-help">{% trans 'например, свое имя' %}</div>
</div>
</div>
<div class="pwf-line">
<div class="pwf-field">
<input id="id_last_name" maxlength="30" name="last_name" placeholder="{% trans 'Фамилия' %}" type="text">
</div>
<div class="pwf-msg">
<div class="msg-help">{% trans 'например, свою фамилию' %}</div>
</div>
</div>
<div class="pwf-line">
<div class="pwf-field">
<input id="id_email" name="email" placeholder="{% trans 'Адрес электронной почты' %}" type="text">
</div>
<div class="pwf-msg"><div class="msg-help">{% trans 'например, ivanova@mail.ru' %}</div></div>
</div>
<div class="pwf-line">
<div class="pwf-field">
<input id="id_password1" name="password1" placeholder="{% trans 'Придумайте пароль' %}" type="password">
</div>
<div class="pwf-msg"><div class="msg-help">{% trans 'пароль должен иметь не меньше 6 символов' %}</div></div>
</div>
<div class="pwf-line">
<div class="pwf-field">
<input id="id_password2" name="password2" placeholder="{% trans 'Повторите пароль' %}" type="password">
</div>
<div class="pwf-msg"><div class="msg-help">{% trans 'пароль должен иметь не меньше 6 символов' %}</div></div>
</div>
<a href="{% url 'termsofuse' %}" style="color:#a2a2a2;">{% trans "Пользовательское соглашение" %}</a> <div class="pw-body clearfix">
<div class="pwf-buttons-line pwf-line" style="margin-top: 12px;"> <form method="post" class="pw-form simple-validate-register reg-form" id="reg_form" action="{% url 'register' %}" data-validate-url="{% url 'registration_form_validate' %}">
<div class="pwf-field"> {% csrf_token %}
<button type="submit" class="icon-check">{% trans 'Зарегистрироваться' %}</button> <div class="pwf-line">
</div> <div class="pwf-field">
<div class="pwf-msg err-message-box pd-top-14 red"> {% trans "Ошибка" %}</div> <input id="id_first_name" maxlength="30" name="first_name" placeholder="{% trans 'Имя' %}" type="text">
</div> </div>
</form> <div class="pwf-msg">
<div class="msg-help">{% trans 'например, свое имя' %}</div>
</div>
</div>
<div class="pwf-line">
<div class="pwf-field">
<input id="id_last_name" maxlength="30" name="last_name" placeholder="{% trans 'Фамилия' %}" type="text">
</div>
<div class="pwf-msg">
<div class="msg-help">{% trans 'например, свою фамилию' %}</div>
</div>
</div>
<div class="pwf-line">
<div class="pwf-field">
<input id="id_email" name="email" placeholder="{% trans 'Адрес электронной почты' %}" type="text">
</div>
<div class="pwf-msg"><div class="msg-help">{% trans 'например, ivanova@mail.ru' %}</div></div>
</div>
<div class="pwf-line">
<div class="pwf-field">
<input id="id_password1" name="password1" placeholder="{% trans 'Придумайте пароль' %}" type="password">
</div>
<div class="pwf-msg"><div class="msg-help">{% trans 'пароль должен иметь не меньше 6 символов' %}</div></div>
</div>
<div class="pwf-line">
<div class="pwf-field">
<input id="id_password2" name="password2" placeholder="{% trans 'Повторите пароль' %}" type="password">
</div>
<div class="pwf-msg"><div class="msg-help">{% trans 'пароль должен иметь не меньше 6 символов' %}</div></div>
</div> </div>
<footer class="clearfix">
<div class="soc-med-login"> <a href="{% url 'termsofuse' %}" style="color:#a2a2a2;">{% trans "Пользовательское соглашение" %}</a>
<div class="sm-label">{% trans 'или войдите с помощью' %}</div>
<div class="sm-body"> <div class="pwf-buttons-line pwf-line" style="margin-top: 12px;">
<ul> <div class="pwf-field">
<li><a href="{% url 'social:begin' 'facebook' %}?next={{ request.path }}"><img src="{% static 'client/img/soc-medias/icon-fb.png' %}" alt="" /></a></li> <button type="submit" disabled="disabled" class="icon-check">{% trans 'Зарегистрироваться' %}</button>
<li><a href="{% url 'social:begin' 'twitter' %}?next={{ request.path }}"><img src="{% static 'client/img/soc-medias/icon-twit.png' %}" alt="" /></a></li>
<li><a href="{% url 'social:begin' 'odnoklassniki-oauth2' %}?next={{ request.path }}"><img src="{% static 'client/img/soc-medias/icon-ok.png' %}" alt="" /></a></li>
<li><a href="{% url 'social:begin' 'mailru-oauth2' %}?next={{ request.path }}"><img src="{% static 'client/img/soc-medias/icon-mailr.png' %}" alt="" /></a></li>
<li><a href="{% url 'social:begin' 'vk-oauth2' %}?next={{ request.path }}"><img src="{% static 'client/img/soc-medias/icon-vk.png' %}" alt="" /></a></li>
</ul>
</div>
</div> </div>
</footer> <div class="pwf-msg err-message-box pd-top-14 red"> {% trans "Ошибка" %}</div>
</div>
</form>
</div>
<footer class="clearfix">
<div class="soc-med-login">
<div class="sm-label">{% trans 'или войдите с помощью' %}</div>
<div class="sm-body">
<ul>
<li><a href="{% url 'social:begin' 'facebook' %}?next={{ request.path }}"><img src="{% static 'client/img/soc-medias/icon-fb.png' %}" alt="" /></a></li>
<li><a href="{% url 'social:begin' 'twitter' %}?next={{ request.path }}"><img src="{% static 'client/img/soc-medias/icon-twit.png' %}" alt="" /></a></li>
<li><a href="{% url 'social:begin' 'odnoklassniki-oauth2' %}?next={{ request.path }}"><img src="{% static 'client/img/soc-medias/icon-ok.png' %}" alt="" /></a></li>
<li><a href="{% url 'social:begin' 'mailru-oauth2' %}?next={{ request.path }}"><img src="{% static 'client/img/soc-medias/icon-mailr.png' %}" alt="" /></a></li>
<li><a href="{% url 'social:begin' 'vk-oauth2' %}?next={{ request.path }}"><img src="{% static 'client/img/soc-medias/icon-vk.png' %}" alt="" /></a></li>
</ul>
</div>
</div> </div>
</footer>
</div>

Loading…
Cancel
Save