diff --git a/access_controller/urls.py b/access_controller/urls.py
index b9f7386..9262d42 100644
--- a/access_controller/urls.py
+++ b/access_controller/urls.py
@@ -15,15 +15,15 @@ Including another URLconf
"""
from django.conf.urls.static import static
from django.contrib import admin
-from django.urls import path
+from django.urls import path, include
from access_controller import settings
from main.views import *
urlpatterns = [
path('admin/', admin.site.urls, name='admin'),
- path('register/', Reg.as_view(), name='registration'),
- path('admin/', admin.site.urls),
- path('profile/', profile_page, name="Profile"),
+ path('register/', CustomRegistrationView.as_view(), name='registration'),
+ path('', include('django_registration.backends.one_step.urls')),
+ path('profile/', profile_page, name='profile'),
]
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
diff --git a/main/extra_func.py b/main/extra_func.py
index 6d74db6..487fb13 100644
--- a/main/extra_func.py
+++ b/main/extra_func.py
@@ -2,9 +2,9 @@ from main.models import UserProfile
# Дополнительные функции
-def set_and_get_username(UP: UserProfile): # TODO: Переделать с получением данных через API
+def set_and_get_name(UP: UserProfile): # TODO: Переделать с получением данных через API
"""
- Функция устанавливает поле :class:`user.username` текущим именем в Zendesk
+ Функция устанавливает поле :class:`username` текущим именем в Zendesk
:param UP: Объект профиля пользователя
:type UP: :class:`main.models.UserProfile`
diff --git a/main/migrations/0002_userprofile_name.py b/main/migrations/0002_userprofile_name.py
new file mode 100644
index 0000000..1737da2
--- /dev/null
+++ b/main/migrations/0002_userprofile_name.py
@@ -0,0 +1,18 @@
+# Generated by Django 3.1.6 on 2021-02-08 16:15
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('main', '0001_initial'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='userprofile',
+ name='name',
+ field=models.CharField(default='None', max_length=100),
+ ),
+ ]
diff --git a/main/models.py b/main/models.py
index 73fb9ce..96d04db 100644
--- a/main/models.py
+++ b/main/models.py
@@ -8,3 +8,4 @@ class UserProfile(models.Model):
user = models.OneToOneField(to=User, on_delete=models.CASCADE)
role = models.IntegerField()
image = models.ImageField(upload_to='user_avatars')
+ name = models.CharField(default='None', max_length=100)
diff --git a/main/templates/django_registration/django_registration_complete.html b/main/templates/django_registration/django_registration_complete.html
deleted file mode 100644
index 61a69c0..0000000
--- a/main/templates/django_registration/django_registration_complete.html
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
- Title
-
-
-NIce
-
-
diff --git a/main/templates/django_registration/registration_closed.html b/main/templates/django_registration/registration_closed.html
new file mode 100644
index 0000000..9aa808d
--- /dev/null
+++ b/main/templates/django_registration/registration_closed.html
@@ -0,0 +1,15 @@
+{% extends 'base/base.html' %}
+{% load static %}
+
+{% block title %}
+ Регистрация завершена
+{% endblock %}
+
+{% block heading %}
+ Регистрация
+{% endblock %}
+
+{% block content %}
+
+ Нет пользователя с указаным адресом электронной почты
+{% endblock %}
diff --git a/main/templates/django_registration/registration_complete.html b/main/templates/django_registration/registration_complete.html
new file mode 100644
index 0000000..8da81c0
--- /dev/null
+++ b/main/templates/django_registration/registration_complete.html
@@ -0,0 +1,14 @@
+{% extends 'base/base.html' %}
+
+{% block title %}
+ Регистрация завершена
+{% endblock %}
+
+{% block heading %}
+ Регистрация
+{% endblock %}
+
+{% block content %}
+
+ Регистрация прошла успешно. Войти сейчас
+{% endblock %}
diff --git a/main/templates/django_registration/registration_form.html b/main/templates/django_registration/registration_form.html
index 6b84e1d..c4bb388 100644
--- a/main/templates/django_registration/registration_form.html
+++ b/main/templates/django_registration/registration_form.html
@@ -1,20 +1,24 @@
-
-
-
-
- Title
-
-
-Регистрация
-
+{% endblock %}
diff --git a/main/views.py b/main/views.py
index c8271ee..2de5f8b 100644
--- a/main/views.py
+++ b/main/views.py
@@ -1,26 +1,25 @@
from django.shortcuts import render, redirect
+from django.urls import reverse_lazy
-from main.extra_func import set_and_get_username, set_and_get_email, load_and_get_image, set_and_get_role
+from main.extra_func import set_and_get_name, set_and_get_email, load_and_get_image, set_and_get_role
from main.models import UserProfile
from django.contrib.auth.models import User
-from django.urls import reverse_lazy
from django_registration.forms import RegistrationFormUniqueEmail
from django_registration.views import RegistrationView
from zenpy import Zenpy
-from main.models import UserProfile
-
-class Reg(RegistrationView):
+class CustomRegistrationView(RegistrationView):
form_class = RegistrationFormUniqueEmail
template_name = 'django_registration/registration_form.html'
+ success_url = reverse_lazy('django_registration_complete')
def register(self, form):
creds = {
- 'email': 'DEFINEME',
+ 'email': 'idar.sokurov.05@mail.ru',
'subdomain': 'ngenix1612197338',
- 'token': 'DEFINEME',
+ 'token': 'xRL9Qqz7svFE3X9cHMVC2zOtJUdllzr441C3Z363',
}
client = Zenpy(**creds)
zenpy_user = client.search(form.data['email'], type='user')
@@ -28,16 +27,20 @@ class Reg(RegistrationView):
user = User.objects.create_user(
username=form.data['username'],
email=form.data['email'],
- password=form.data['email'],
+ password=form.data['password1']
)
- profile = UserProfile.objects.create(
+ profile = UserProfile(
image='None.png',
user=user,
- role='None'
+ role=0,
)
- user.save()
+ set_and_get_name(profile)
+ set_and_get_email(profile)
+ set_and_get_role(profile)
+ load_and_get_image(profile)
+ profile.save()
else:
- raise AttributeError('No such email')
+ self.success_url = reverse_lazy('django_registration_disallowed')
def profile_page(request):
@@ -53,7 +56,7 @@ def profile_page(request):
else: # TODO: Убрать после появления регистрации и авторизации, добавить login_required()
UP = UserProfile.objects.get(user=1)
context = {
- 'name': set_and_get_username(UP),
+ 'name': set_and_get_name(UP),
'email': set_and_get_email(UP),
'role': set_and_get_role(UP),
'image_name': load_and_get_image(UP),
diff --git a/requirements.txt b/requirements.txt
index 2f0966d..f51fa7a 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,7 +1,9 @@
# Engine
Django==3.1.6
Pillow==8.1.0
+zenpy~=2.0.24
# Documentation
Sphinx==3.4.3
sphinx-rtd-theme==0.5.1
+