parent
ff323a7e25
commit
cff8033bdd
19 changed files with 259 additions and 25 deletions
@ -0,0 +1 @@ |
|||||||
|
{% extends 'partials/base.html' %} |
||||||
@ -0,0 +1,20 @@ |
|||||||
|
{% extends "password_reset/base.html" %}{% load i18n %} |
||||||
|
|
||||||
|
{% block title %}{% trans "New password set" %}{% endblock %} |
||||||
|
|
||||||
|
{% block content %} |
||||||
|
|
||||||
|
<div class="container container_1200"> |
||||||
|
<hr> |
||||||
|
</div> |
||||||
|
|
||||||
|
<!-- block_registr --> |
||||||
|
<div class="container container_1200"> |
||||||
|
|
||||||
|
<div class="block_registr" style="height: auto;"> |
||||||
|
<div class="text-center registr">Успех</div> |
||||||
|
{% trans "Your password has successfully been reset. You can use it right now on the login page." %} |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<!-- block_registr end --> |
||||||
|
{% endblock %} |
||||||
@ -0,0 +1,9 @@ |
|||||||
|
{% load i18n %}{% blocktrans %}Dear {{ username }},{% endblocktrans %} |
||||||
|
|
||||||
|
{% blocktrans with domain=site.domain %}You -- or someone pretending to be you -- has requested a password reset on {{ domain }}.{% endblocktrans %} |
||||||
|
|
||||||
|
{% trans "You can set your new password by following this link:" %} |
||||||
|
|
||||||
|
http{% if secure %}s{% endif %}://{{ site.domain }} |
||||||
|
|
||||||
|
{% trans "If you don't want to reset your password, simply ignore this email and it will stay unchanged." %} |
||||||
@ -0,0 +1,29 @@ |
|||||||
|
{% extends "password_reset/base.html" %} |
||||||
|
{% load i18n %} |
||||||
|
|
||||||
|
{% block title %}{% trans "Password recovery" %}{% endblock %} |
||||||
|
|
||||||
|
{% block content %} |
||||||
|
{% include 'partials/header.html' %} |
||||||
|
|
||||||
|
<div class="col-lg-12"> |
||||||
|
<p class="titleScore">Восстановление пароля</p> |
||||||
|
</div> |
||||||
|
<div class="form-regestration"> |
||||||
|
<form method="post" action="{{ url }}"> |
||||||
|
{% csrf_token %} |
||||||
|
|
||||||
|
<div class="col-lg-12 select-reg"> |
||||||
|
<input type="email" name="{{ form.username_or_email.name }}" class="box-sizing pass-reg" id="inputEmail" |
||||||
|
placeholder="Электронная почта"> |
||||||
|
<p>{{ form.username_or_email.errors.as_text }}</p> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="col-lg-12 select-reg"> |
||||||
|
<button type="submit" class="reg-sub"> |
||||||
|
Восстановить |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
</form> |
||||||
|
</div> |
||||||
|
{% endblock %} |
||||||
@ -0,0 +1,46 @@ |
|||||||
|
{% extends "password_reset/base.html" %}{% load i18n %} |
||||||
|
|
||||||
|
{% block content %} |
||||||
|
<div class="container container_1200"> |
||||||
|
<hr> |
||||||
|
</div> |
||||||
|
|
||||||
|
<!-- block_registr --> |
||||||
|
<div class="container container_1200"> |
||||||
|
|
||||||
|
<div class="block_registr" style="height: auto;"> |
||||||
|
<div class="text-center registr">Сброс пароля</div> |
||||||
|
|
||||||
|
{% if invalid %}{% url "password_reset_recover" as recovery_url %} |
||||||
|
{% blocktrans %}Sorry, this password reset link is invalid. You can still |
||||||
|
<a href="{{ recovery_url }}">request a new one</a>.{% endblocktrans %} |
||||||
|
{% else %} |
||||||
|
|
||||||
|
{% blocktrans %}Hi, <strong>{{ username }}</strong>. Please choose your new password.{% endblocktrans %} |
||||||
|
|
||||||
|
|
||||||
|
<form method="post" action="{% url "password_reset_reset" token %}"> |
||||||
|
{% csrf_token %} |
||||||
|
|
||||||
|
<div class="form-group"> |
||||||
|
<input type="password" name="{{ form.password1.name }}" class="col-xs-10 form-control" id="id_password1" |
||||||
|
placeholder="Новый пароль"> |
||||||
|
<p>{{ form.password1.errors.as_text }}</p> |
||||||
|
</div> |
||||||
|
<div class="form-group"> |
||||||
|
<input type="password" name="{{ form.password2.name }}" class="col-xs-10 form-control" id="id_password2" |
||||||
|
placeholder="Подтверждение"> |
||||||
|
<p>{{ form.password2.errors.as_text }}</p> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div> |
||||||
|
<button type="submit" class="btn registr_button"> |
||||||
|
Изменить пароль |
||||||
|
</button> |
||||||
|
</div> |
||||||
|
</form> |
||||||
|
{% endif %} |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<!-- block_registr end --> |
||||||
|
{% endblock %} |
||||||
@ -0,0 +1,28 @@ |
|||||||
|
{% extends "password_reset/base.html" %} |
||||||
|
{% load i18n %} |
||||||
|
|
||||||
|
{% block title %}{% trans "Password recovery sent" %}{% endblock %} |
||||||
|
|
||||||
|
{#{% block content %}#} |
||||||
|
{# <p></p>#} |
||||||
|
{#{% endblock %}#} |
||||||
|
|
||||||
|
|
||||||
|
{% block content %} |
||||||
|
|
||||||
|
<div class="container container_1200"> |
||||||
|
<hr> |
||||||
|
</div> |
||||||
|
|
||||||
|
<!-- block_registr --> |
||||||
|
<div class="container container_1200"> |
||||||
|
|
||||||
|
<div class="block_registr" style="height: 300px;"> |
||||||
|
<div class="text-center registr">Письмо отправлено</div> |
||||||
|
{# <div class="alert alert-success">#} |
||||||
|
{% blocktrans with ago=timestamp|timesince %}An email was sent to <strong>{{ email }}</strong> {{ ago }} ago. Use the link in it to set a new password.{% endblocktrans %} |
||||||
|
</div> |
||||||
|
{# </div>#} |
||||||
|
</div> |
||||||
|
<!-- block_registr end --> |
||||||
|
{% endblock %} |
||||||
@ -0,0 +1,25 @@ |
|||||||
|
from django.conf import settings |
||||||
|
from django.contrib.auth import get_user_model |
||||||
|
|
||||||
|
from .models import User |
||||||
|
|
||||||
|
|
||||||
|
class EmailOrUsernameModelBackend(object): |
||||||
|
|
||||||
|
def authenticate(self, username=None, password=None): |
||||||
|
if '@' in username: |
||||||
|
kwargs = {'email': username} |
||||||
|
else: |
||||||
|
kwargs = {'username': username} |
||||||
|
try: |
||||||
|
user = get_user_model().objects.get(**kwargs) |
||||||
|
if user.check_password(password): |
||||||
|
return user |
||||||
|
except User.DoesNotExist: |
||||||
|
return None |
||||||
|
|
||||||
|
def get_user(self, username): |
||||||
|
try: |
||||||
|
return get_user_model().objects.get(pk=username) |
||||||
|
except get_user_model().DoesNotExist: |
||||||
|
return None |
||||||
@ -0,0 +1,20 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
# Generated by Django 1.9.6 on 2016-07-10 16:50 |
||||||
|
from __future__ import unicode_literals |
||||||
|
|
||||||
|
from django.db import migrations |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('users', '0018_auto_20160710_1838'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.RenameField( |
||||||
|
model_name='user', |
||||||
|
old_name='data_joined', |
||||||
|
new_name='date_joined', |
||||||
|
), |
||||||
|
] |
||||||
@ -1,6 +1,47 @@ |
|||||||
{% extends 'partials/base.html' %} |
{% extends 'partials/base.html' %} |
||||||
|
|
||||||
{% block content %} |
{% block content %} |
||||||
|
|
||||||
<h1>Upload Files</h1> |
<h1>Upload Files</h1> |
||||||
|
|
||||||
|
<form id="fileupload" method="POST" enctype="multipart/form-data"> |
||||||
|
|
||||||
|
<div class="col-lg-6" style="padding-left: 100px;"> |
||||||
|
<!-- The fileinput-button span is used to style the file input field as button --> |
||||||
|
<span class="btn btn-success fileinput-button"> |
||||||
|
<i class="glyphicon glyphicon-plus"></i> |
||||||
|
<span>Add files...</span> |
||||||
|
<input type="file" name="files[]" multiple> |
||||||
|
</span> |
||||||
|
<button type="submit" class="btn btn-primary start"> |
||||||
|
<i class="glyphicon glyphicon-upload"></i> |
||||||
|
<span>Start upload</span> |
||||||
|
</button> |
||||||
|
<button type="reset" class="btn btn-warning cancel"> |
||||||
|
<i class="glyphicon glyphicon-ban-circle"></i> |
||||||
|
<span>Cancel upload</span> |
||||||
|
</button> |
||||||
|
<button type="button" class="btn btn-danger delete"> |
||||||
|
<i class="glyphicon glyphicon-trash"></i> |
||||||
|
<span>Delete</span> |
||||||
|
</button> |
||||||
|
<input type="checkbox" class="toggle"> |
||||||
|
</div> |
||||||
|
|
||||||
|
</form> |
||||||
|
|
||||||
|
{% endblock %} |
||||||
|
{% block js_block %} |
||||||
|
<script> |
||||||
|
$(function () { |
||||||
|
$('#fileupload').fileupload({ |
||||||
|
dataType: 'json', |
||||||
|
done: function (e, data) { |
||||||
|
$.each(data.result.files, function (index, file) { |
||||||
|
$('<p/>').text(file.name).appendTo(document.body); |
||||||
|
}); |
||||||
|
} |
||||||
|
}); |
||||||
|
}); |
||||||
|
</script> |
||||||
{% endblock %} |
{% endblock %} |
||||||
|
|||||||
Loading…
Reference in new issue