Реализована авторизация и регистрация на сайте

This commit is contained in:
BelPE 2022-12-21 17:38:58 +08:00
parent cac9ab4bc8
commit 76919f6ba7
43 changed files with 558 additions and 157 deletions

3
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

14
.idea/djangosite.iml Normal file
View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/venv" />
</content>
<orderEntry type="jdk" jdkName="Python 3.9 (djangosite)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="PyDocumentationSettings">
<option name="format" value="PLAIN" />
<option name="myDocStringFormat" value="Plain" />
</component>
</module>

View File

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

7
.idea/misc.xml Normal file
View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (djangosite)" project-jdk-type="Python SDK" />
<component name="PyCharmProfessionalAdvertiser">
<option name="shown" value="true" />
</component>
</project>

8
.idea/modules.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/djangosite.iml" filepath="$PROJECT_DIR$/.idea/djangosite.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -27,6 +27,10 @@ DEBUG = True
ALLOWED_HOSTS = []
AUTH_USER_MODEL = 'main.User'
LOGIN_REDIRECT_URL = '/'
LOGOUT_REDIRECT_URL = '/'
REGISTER_REDIRECT_URL = '/'
# Application definition
@ -77,11 +81,11 @@ WSGI_APPLICATION = 'djangosite.wsgi.application'
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django',
'USER': 'dhaverd',
'PASSWORD': 'Dha.Verd506763',
'HOST': '192.168.0.105',
'PORT': 3306,
'NAME': 'workout',
'USER': 'root',
'PASSWORD': 'root',
'HOST': 'localhost',
'PORT': 3307,
},
'workout': {
'ENGINE': 'django.db.backends.mysql',
@ -131,7 +135,7 @@ USE_TZ = True
STATIC_URL = 'static/'
STATICFILES_DIRS = [
BASE_DIR / "ststic",
BASE_DIR / "static",
]
# Default primary key field type

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,3 +1,9 @@
from django.contrib import admin
from django.contrib.auth import get_user_model
from django.contrib.auth.admin import UserAdmin
# Register your models here.
User = get_user_model()
@admin.register(User)
class UserAdmin(UserAdmin):
pass

17
main/forms.py Normal file
View File

@ -0,0 +1,17 @@
from django import forms
from django.contrib.auth import get_user_model
from django.contrib.auth.forms import UserCreationForm
from django.utils.translation import gettext_lazy as _
User = get_user_model()
class UserCreationForm(UserCreationForm):
email = forms.EmailField(
label=_("Email"),
max_length=254,
widget=forms.EmailInput(attrs={'autocomplete': 'email'})
)
class Meta(UserCreationForm.Meta):
model = User
fields = ("username", "email")

View File

@ -0,0 +1,44 @@
# Generated by Django 4.1.4 on 2022-12-20 09:23
import django.contrib.auth.models
import django.contrib.auth.validators
from django.db import migrations, models
import django.utils.timezone
class Migration(migrations.Migration):
initial = True
dependencies = [
('auth', '0012_alter_user_first_name_max_length'),
]
operations = [
migrations.CreateModel(
name='User',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('password', models.CharField(max_length=128, verbose_name='password')),
('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')),
('first_name', models.CharField(blank=True, max_length=150, verbose_name='first name')),
('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')),
('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')),
('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')),
('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.group', verbose_name='groups')),
('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.permission', verbose_name='user permissions')),
],
options={
'verbose_name': 'user',
'verbose_name_plural': 'users',
'abstract': False,
},
managers=[
('objects', django.contrib.auth.models.UserManager()),
],
),
]

Binary file not shown.

View File

@ -1,3 +1,7 @@
from django.contrib.auth.models import AbstractUser
from django.db import models
# Create your models here.
class User(AbstractUser):
pass

View File

@ -0,0 +1,59 @@
<?php
header('Content-Type: text/html; charset=UTF-8');
$conn = mysqli_connect("localhost", "root", "506763", "workout");
if (!$conn) {
die("Ошибка: " . mysqli_connect_error());
}
// $start_date = $_POST["sd"];
// $end_date = $_POST["ed"];
$nick = $_POST["user"];
$sql = "SELECT * FROM workout.v_workout_tasks_w1 WHERE user = '" . $nick . "' ORDER BY task_id;";
$day_count = 0;
$row_count = 0;
$last_day = '';
if($result = mysqli_query($conn, $sql)){
foreach($result as $row){
if ($day_count == 0) {
echo "<tr>";
echo '<td class="table-head-top" colspan="5"><b>' . $row["week"] . '</b></td>';
echo "</tr>";
echo "<tr>";
echo '<td class="table-head" colspan="5"><b class="day-name">[' . $row["date"] . '] ' . $row["day_name"] . '</b></td>';
echo "</tr>";
echo '<tr class="odd">';
echo '<td class="exercise-head" id="exercise-head"><strong>Упражнение</strong></td>';
echo '<td class="muscle-group-head" id="muscle-group-head"><strong>Группа мышц</strong></td>';
echo '<td class="count-head" id="count-head"><strong>Время/подходы</strong></td>';
echo '<td class="leha" id="leha"><strong>Вес</strong></td>';
$last_day = $row["day_name"];
$day_count = 1;
}
if ($row["day_name"] != $last_day) {
$last_day = $row["day_name"];
echo "<tr>";
echo '<td class="table-head" colspan="5"><b class="day-name">[' . $row["date"] . '] ' . $row["day_name"] . '</b></td>';
echo "</tr>";
$row_count = 0;
}
$tr = '';
if ($row_count % 2 != 0) {
$tr = '<tr class="odd">';
} else {
$tr = '<tr>';
}
echo $tr;
echo '<td class="exercise">'. $row["exercise"] .'</td>';
echo '<td class="muscle-group">' . $row["muscle_group_name"] . '</td>';
echo '<td class="count">' . $row["sets_count"] . '</td>';
echo '<td class="l-prim">' . $row["weigth"] . '</td>';
echo '</tr>';
$row_count = $row_count + 1;
}
//echo "<tr class='table-row'><td class='table-cell' colspan=3 style='text-align: right;'>Итого:</td><td class='table-cell'>" . mysqli_num_rows($result) . "</td></tr>";
mysqli_free_result($result);
} else{
echo "Ошибка: " . mysqli_error($conn);
}
mysqli_close($conn);
?>

View File

@ -0,0 +1,59 @@
<?php
header('Content-Type: text/html; charset=UTF-8');
$conn = mysqli_connect("localhost", "root", "506763", "workout");
if (!$conn) {
die("Ошибка: " . mysqli_connect_error());
}
// $start_date = $_POST["sd"];
// $end_date = $_POST["ed"];
$nick = $_POST["user"];
$sql = "SELECT * FROM workout.v_workout_tasks_w2 WHERE user = '" . $nick . "' ORDER BY task_id;";
$day_count = 0;
$row_count = 0;
$last_day = '';
if($result = mysqli_query($conn, $sql)){
foreach($result as $row){
if ($day_count == 0) {
echo "<tr>";
echo '<td class="table-head-top" colspan="5"><b>' . $row["week"] . '</b></td>';
echo "</tr>";
echo "<tr>";
echo '<td class="table-head" colspan="5"><b class="day-name">[' . $row["date"] . '] ' . $row["day_name"] . '</b></td>';
echo "</tr>";
echo '<tr class="odd">';
echo '<td class="exercise-head" id="exercise-head"><strong>Упражнение</strong></td>';
echo '<td class="muscle-group-head" id="muscle-group-head"><strong>Группа мышц</strong></td>';
echo '<td class="count-head" id="count-head"><strong>Время/подходы</strong></td>';
echo '<td class="leha" id="leha"><strong>Вес</strong></td>';
$last_day = $row["day_name"];
$day_count = 1;
}
if ($row["day_name"] != $last_day) {
$last_day = $row["day_name"];
echo "<tr>";
echo '<td class="table-head" colspan="5"><b class="day-name">[' . $row["date"] . '] ' . $row["day_name"] . '</b></td>';
echo "</tr>";
$row_count = 0;
}
$tr = '';
if ($row_count % 2 != 0) {
$tr = '<tr class="odd">';
} else {
$tr = '<tr>';
}
echo $tr;
echo '<td class="exercise">'. $row["exercise"] .'</td>';
echo '<td class="muscle-group">' . $row["muscle_group_name"] . '</td>';
echo '<td class="count">' . $row["sets_count"] . '</td>';
echo '<td class="l-prim">' . $row["weigth"] . '</td>';
echo '</tr>';
$row_count = $row_count + 1;
}
//echo "<tr class='table-row'><td class='table-cell' colspan=3 style='text-align: right;'>Итого:</td><td class='table-cell'>" . mysqli_num_rows($result) . "</td></tr>";
mysqli_free_result($result);
} else{
echo "Ошибка: " . mysqli_error($conn);
}
mysqli_close($conn);
?>

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 716 KiB

View File

@ -12,8 +12,8 @@ $("#form").on("submit", function(){
$('body').on('click', '#password-checkbox', function(){
if ($(this).is(':checked')){
$('#password').attr('type', 'text');
$('#id_password').attr('type', 'text');
} else {
$('#password').attr('type', 'password');
$('#id_password').attr('type', 'password');
}
});

View File

@ -12,10 +12,12 @@ $("#form").on("submit", function(){
$('body').on('click', '#password-checkbox', function(){
if ($(this).is(':checked')){
$('#password').attr('type', 'text');
$('#password2').attr('type', 'text');
$('#id_password1').attr('type', 'text');
$('#id_password2').attr('type', 'text');
} else {
$('#password').attr('type', 'password');
$('#password2').attr('type', 'password');
$('#id_password1').attr('type', 'password');
$('#id_password2').attr('type', 'password');
}
});
$('#id_email').after('<br>');

View File

@ -18,7 +18,7 @@ function getData() {
} else {
var username = $('#nickname-input').val().trim();
$.ajax({
url:"getData1.php",
url:"main/templates/getData1.php",
type: 'POST',
data: {user: username},
success: function(msg){
@ -35,7 +35,7 @@ function getData() {
}
});
$.ajax({
url:"getData2.php",
url:"main/templates/getData2.php",
type: 'POST',
data: {user: username},
success: function(msg2){

View File

@ -137,9 +137,19 @@ h2 {
font-size: 16px;
}
.minecraft-vanilla {
width: 50%;
border-radius: 20px;
}
.zomboid {
width: 50%;
border-radius: 10%;
border-radius: 20px;
}
.ragnamod {
width: 50%;
border-radius: 20px;
}
.image-content {
@ -154,11 +164,6 @@ h2 {
height: 110px;
}
.minecraft-vanilla {
width: 50%;
border-radius: 10%;
}
.fixed nav a:hover {
color: #E0E0E0;
background-color: #609A21;
@ -327,7 +332,7 @@ h2 {
padding-bottom: 10px;
}
.login-form {
.login-form, .reset-form {
width: 50%;
text-align: center;
grid-area: login-form;
@ -390,11 +395,15 @@ h2 {
color: #E0E0E0;
}
.auth-form-reg .password-label {
margin-right: 5em;
}
.signin-main {
padding-left: 10px;
width: 97%;
display: grid;
grid-template-columns: 35% 60% 5%;
grid-template-columns: 30% 60% 10%;
grid-template-areas: "signin-left signin-form signin-right";
}
@ -407,8 +416,8 @@ h2 {
}
.signin-form {
width: 50%;
text-align: center;
width: 70%;
text-align: right;
grid-area: signin-form;
padding-bottom: 20px;
}
@ -445,3 +454,53 @@ h2 {
#wt2 {
display: none;
}
.auth-section {
background-color: #424242;
margin-top: 10px;
padding: 10px;
text-align: right;
font-size: 20px;
}
#login-link {
padding-right: 20px;
}
#registration-link {
padding-right: 10px;
}
.auth-form label, .auth-form-reg label, .reset-form label {
color: #E0E0E0;
font-family: segoe print;
font-size: 16px;
}
.auth-form input, .auth-form-reg input, .reset-form input {
font-family: Arial;
font-size: 16px;
}
#id_username, #id_password, #id_password1, #id_password2, #id_email {
margin-left: 5px;
margin-top: 10px;
}
.helptext {
display: none;
}
.usernick {
margin-right: 10px;
}
.forgot-pass-link {
text-align: center;
margin-bottom: 5px;
}
.forgot-pass-link a {
font-family: segoe print;
font-size: 16px;
}

View File

@ -124,9 +124,19 @@ h2 {
font-size: 14px;
}
.minecraft-vanilla {
width: 50%;
border-radius: 20px;
}
.zomboid {
width: 50%;
border-radius: 10%;
border-radius: 20px;
}
.ragnamod {
width: 50%;
border-radius: 20px;
}
.image-content {
@ -142,11 +152,6 @@ h2 {
height: 100px;
}
.minecraft-vanilla {
width: 50%;
border-radius: 10%;
}
.default nav a:hover {
color: #E0E0E0;
background-color: #609A21;
@ -309,7 +314,7 @@ h2 {
padding-bottom: 10px;
}
.login-form {
.login-form, .reset-form {
width: 50%;
text-align: center;
grid-area: login-form;
@ -372,11 +377,15 @@ h2 {
color: #E0E0E0;
}
.auth-form-reg .password-label {
margin-right: 5em;
}
.signin-main {
padding-left: 10px;
width: 97%;
display: grid;
grid-template-columns: 35% 60% 5%;
grid-template-columns: 30% 60% 10%;
grid-template-areas: "signin-left signin-form signin-right";
}
@ -389,7 +398,7 @@ h2 {
}
.signin-form {
width: 50%;
width: 70%;
text-align: center;
grid-area: signin-form;
padding-bottom: 20px;
@ -426,3 +435,53 @@ h2 {
#wt2 {
display: none;
}
.auth-section{
background-color: #424242;
margin-top: 10px;
padding: 10px;
text-align: right;
font-size: 12px;
}
#login-link {
padding-right: 20px;
}
#registration-link {
padding-right: 10px;
}
.auth-form label, .auth-form-reg label, .reset-form label {
color: #E0E0E0;
font-family: segoe print;
font-size: 16px;
}
.auth-form input, .auth-form-reg input, .reset-form input {
font-family: Arial;
font-size: 14px;
}
#id_username, #id_password, #id_password1, #id_password2, #id_email {
margin-left: 5px;
margin-top: 10px;
}
.helptext {
display: none;
}
.usernick {
margin-right: 10px;
}
.forgot-pass-link {
text-align: center;
margin-bottom: 5px;
}
.forgot-pass-link a {
font-family: segoe print;
font-size: 14px;
}

View File

@ -1,49 +0,0 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Dhaverd</title>
<link href="src/styles/style.css?v=01000071" rel="stylesheet" media="screen" />
<link rel="stylesheet" href="src/styles/styleMobile.css?v=01000071" media="handheld,only screen and (max-device-width:480px)" />
<link rel="icon" href="src/img/favicon.ico">
</head>
<body id="main">
<header id="header" class="default index-logo">
<div class="logo-img">
<a href="index.html"><img class="header-img" src="src/img/dhaverd2.png"></a>
</div>
</header>
<main>
<section class="side-bar">
<p class="mainp"><a class="side-href" href="index.html">Главная</a></p>
<p class="gitea"><a class="side-href" href="http:\\176.114.129.4:3000">Gitea</a></p>
<p class="servers"><a class="side-href" href="servers.html">Сервера</a></p>
<p class="mychat"><a class="side-href" href="mychat.html">MyChat</a></p>
<p class="workout-area"><a class="side-href" href="workout.html">Программа тренировок</a></p>
</section>
<section class="main-content login-main-content" id="main-content">
<h1 id="loginh1" class="page-title">Вход</h1>
<section class="login-main">
<section class="login-left"></section>
<section class="login-form">
<form id="form">
<input id="login" class="login-input" type="text" name="login">
<input id="password" class="login-input" type="password" name="password">
<label class="password-label"><input id="password-checkbox" type="checkbox" value="">Показать пароль</label>
<input class="login-input login-button" type="submit" name="send" value="Вход">
</form>
</section>
<section class="login-right"></section>
</section>
</section>
</main>
<footer>
<section>
<p id="footer">® Dhaverd 2022</p>
</section>
</footer>
<script src="src/scripts/jquery.min.js?v=0000001"></script>
<script src="src/scripts/login.js?v=0000001"></script>
</body>
</html>

View File

@ -13,6 +13,15 @@
</section>
<br>
<br>
<section class="server-temp">
<h2 class="server-name">Minecraft 1.16.5 RagnaMod VI</h2>
<h3 class="server-ips">IP: 176.114.129.4:25565</h3>
<img class="ragnamod" src="{% static 'main/src/img/ragnamod.jpg' %}">
<!--<section class="image-content">
</section>-->
</section>
<br>
<br>
<section class="server-temp">
<h2 class="server-name">Project Zomboid</h2>
<h3 class="server-ips">IP: 176.114.129.4:16261</h3>

View File

@ -1,50 +0,0 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Dhaverd</title>
<link href="src/styles/style.css?v=01000071" rel="stylesheet" media="screen" />
<link rel="stylesheet" href="src/styles/styleMobile.css?v=01000071" media="handheld,only screen and (max-device-width:480px)" />
<link rel="icon" href="src/img/favicon.ico">
</head>
<body id="main">
<header id="header" class="default index-logo">
<div class="logo-img">
<a href="index.html"><img class="header-img" src="src/img/dhaverd2.png"></a>
</div>
</header>
<main>
<section class="side-bar">
<p class="mainp"><a class="side-href" href="index.html">Главная</a></p>
<p class="gitea"><a class="side-href" href="http:\\176.114.129.4:3000">Gitea</a></p>
<p class="servers"><a class="side-href" href="servers.html">Сервера</a></p>
<p class="mychat"><a class="side-href" href="mychat.html">MyChat</a></p>
<p class="workout-area"><a class="side-href" href="workout.html">Программа тренировок</a></p>
</section>
<section class="main-content signin-main-content" id="main-content">
<h1 id="signinh1" class="page-title">Регистрация</h1>
<section class="signin-main">
<section class="signin-left"></section>
<section class="signin-form">
<form id="form">
<input id="login" class="signin-input" type="text" name="login">
<input id="password" class="signin-input" type="password" name="password">
<input id="password2" class="signin-input" type="password" name="password">
<label class="password-label"><input id="password-checkbox" type="checkbox" value="">Показать пароль</label>
<input class="signin-input signin-button" type="submit" name="send" value="Зарегистрироваться">
</form>
</section>
<section class="signin-right"></section>
</section>
</section>
</main>
<footer>
<section>
<p id="footer">® Dhaverd 2022</p>
</section>
</footer>
<script src="src/scripts/jquery.min.js?v=0000001"></script>
<script src="src/scripts/signin.js?v=0000001"></script>
</body>
</html>

View File

@ -8,22 +8,30 @@
<link href="{% static 'main/src/styles/style.css' %}" rel="stylesheet" media="screen" />
<link rel="stylesheet" href="{% static 'main/src/styles/styleMobile.css' %}" media="handheld,only screen and (max-device-width:480px)" />
<link rel="icon" href="{% static 'main/src/img/favicon.ico' %}">
{% block javascripts %}{% endblock %}
<!--<script src="src/scripts/jquery.min.js"></script>-->
</head>
<body id="main">
<header id="header" class="default index-logo">
<div class="logo-img">
<a href="http://localhost:8000/"><img class="header-img" src="{% static 'main/src/img/dhaverd2.png' %}"></a>
<a href="{% url 'index' %}"><img class="header-img" src="{% static 'main/src/img/dhaverd2.png' %}"></a>
</div>
</header>
<main>
<section class="side-bar">
<p class="mainp"><a class="side-href" href="http://localhost:8000/">Главная</a></p>
<p class="mainp"><a class="side-href" href="{% url 'index' %}">Главная</a></p>
<p class="gitea"><a class="side-href" href="http:\\176.114.129.4:3000">Gitea</a></p>
<p class="servers"><a class="side-href" href="servers">Сервера</a></p>
<p class="mychat"><a class="side-href" href="mychat">MyChat</a></p>
<p class="workout-area"><a class="side-href" href="workout">Программа тренировок</a></p>
<p class="servers"><a class="side-href" href="{% url 'servers' %}">Сервера</a></p>
<p class="mychat"><a class="side-href" href="{% url 'mychat' %}">MyChat</a></p>
<p class="workout-area"><a class="side-href" href="{% url 'workout' %}">Программа тренировок</a></p>
</section>
<section class="auth-section">
{% if user.is_authenticated %}
<a class="usernick">{{user}}</a>
<a id="logout-link" href="{% url 'logout' %}">Выход</a>
{% else %}
<a id="login-link" href="{% url 'login' %}">Вход</a>
<a id="registration-link" href="{% url 'register' %}">Регистрация</a>
{% endif %}
</section>
{% block maincontent %}{% endblock %}
</main>
@ -32,5 +40,6 @@
<p id="footer">® Dhaverd 2022</p>
</section>
</footer>
{% block javascripts %}{% endblock %}
</body>
</html>

View File

@ -4,6 +4,8 @@
{% block maincontent %}
<section class="main-content workout-main-content" id="main-content">
<h1 class="page-title">Программа тренировок</h1>
{% if user.is_authenticated %}
<p class="content-text">Раздел в разработке!</p>
<div class="nickname-form">
<p class="content-text">Для просмотра иформации введите ник:</p>
<input id="nickname-input" name="nickname-input" type="text" class="nickname-input"></input>
@ -15,11 +17,14 @@
<br>
<table id='wt2' class="workout-table">
</table>
{% else %}
<p class="content-text">Для просмотра информации войдите или зарегистрируйтесь!</p>
{% endif %}
</section>
{% endblock %}
{% block titletext %}Dhaverd - Workout{% endblock %}
{% block javascripts %}
<script src="{% static 'main/src/scripts/jquery.min.js' %}"></script>
<script src="{% static 'src/scripts/workout.js' %}"></script>
<script src="{% static 'main/src/scripts/workout.js' %}"></script>
{% endblock %}

View File

@ -0,0 +1,27 @@
{% extends 'main/temp.html' %}
{% load static %}
{% block maincontent %}
<section class="main-content login-main-content" id="main-content">
<h1 id="loginh1" class="page-title">Вход</h1>
<section class="login-main">
<section class="login-left"></section>
<section class="login-form">
<form class="auth-form" id="form" action="{% url 'login' %}" method="post">
{{form}}
{% csrf_token %}
<br><label class="password-label"><input id="password-checkbox" type="checkbox" value="">Показать пароль</label>
<button type="submit" class="signin-button">Вход</button>
</form>
</section>
<section class="login-right"></section>
</section>
<section class="forgot-pass-link"><a href="{% url 'password_reset' %}">Забыли пароль?</a></section>
</section>
{% endblock %}
{% block titletext %}Dhaverd - Login{% endblock %}
{% block javascripts %}
<script src="{% static 'main/src/scripts/jquery.min.js' %}"></script>
<script src="{% static 'main/src/scripts/login.js' %}"></script>
{% endblock %}

View File

@ -0,0 +1,20 @@
{% extends 'main/temp.html' %}
{% load static %}
{% block maincontent %}
<section class="main-content resetpass-main-content" id="main-content">
<h1 class="page-title">Восстановление пароля</h1>
<section class="login-main">
<section class="login-left"></section>
<section class="reset-form">
<form action="{% url 'password_reset' %}" method="post">
{{ form }}
{% csrf_token %}
<button type="submit" class="signin-button">Восстановить</button>
</form>
</section>
<section class="login-right"></section>
</section>
</section>
{% endblock %}
{% block titletext %}Dhaverd - Reset Password{% endblock %}

View File

@ -0,0 +1,26 @@
{% extends 'main/temp.html' %}
{% load static %}
{% block maincontent %}
<section class="main-content signin-main-content" id="main-content">
<h1 id="signinh1" class="page-title">Регистрация</h1>
<section class="signin-main">
<section class="signin-left"></section>
<section class="signin-form">
<form class="auth-form-reg" id="form" action="{% url 'register' %}" method="post">
{{ form }}
{% csrf_token %}
<label class="password-label"><input id="password-checkbox" type="checkbox" value="">Показать пароль</label>
<input class="signin-input signin-button" type="submit" name="send" value="Зарегистрироваться">
</form>
</section>
<section class="signin-right"></section>
</section>
</section>
{% endblock %}
{% block titletext %}Dhaverd - Registration{% endblock %}
{% block javascripts %}
<script src="{% static 'main/src/scripts/jquery.min.js' %}"></script>
<script src="{% static 'main/src/scripts/signin.js' %}"></script>
{% endblock %}

View File

@ -1,9 +1,15 @@
from django.urls import path
from django.urls import path, include
from . import views
from .views import Register
urlpatterns = [
path('', views.index),
path('servers', views.servers),
path('mychat', views.mychat),
path('workout', views.workout)
path('', views.index, name='index'),
path('servers', views.servers, name='servers'),
path('mychat', views.mychat, name='mychat'),
path('workout', views.workout, name='workout'),
path('login', views.login, name='login'),
path('registration', views.registration, name='registration'),
path('logout', views.logout, name='logout'),
path('', include('django.contrib.auth.urls')),
path('register/', Register.as_view(), name='register'),
]

View File

@ -1,5 +1,10 @@
from django.shortcuts import render
import django.contrib.auth
from django.contrib.auth import authenticate
from django.shortcuts import render, redirect
from django.http import HttpResponse
from django.views import View
from main.forms import UserCreationForm
# Create your views here.
@ -17,3 +22,39 @@ def mychat(request):
def workout(request):
return render(request, 'main/workout.html')
def login(request):
return render(request, 'registration/login.html')
def registration(request):
return render(request, 'registration/signin.html')
def logout(request):
pass
class Register(View):
template_name = 'registration/signin.html'
def get(self, request):
context = {
'form': UserCreationForm()
}
return render(request, self.template_name, context)
def post(self, request):
form = UserCreationForm(request.POST)
if form.is_valid():
form.save()
username = form.cleaned_data.get('username')
password = form.cleaned_data.get('password1')
user = authenticate(username=username, password=password)
django.contrib.auth.login(request, user)
return redirect('home')
context = {
'form': form
}
return render(request, self.template_name, context)