Добавил кнопку раскрытия редактора профиля
This commit is contained in:
parent
4a8a967d86
commit
f05d705219
@ -1,8 +1,5 @@
|
||||
from datetime import date
|
||||
|
||||
import sqlalchemy
|
||||
from flask_login import UserMixin
|
||||
from werkzeug.security import check_password_hash, generate_password_hash
|
||||
|
||||
from .db_session import SqlAlchemyBase
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@ class User(SqlAlchemyBase, UserMixin):
|
||||
password = sqlalchemy.Column(sqlalchemy.String, nullable=True)
|
||||
data_reg = sqlalchemy.Column(sqlalchemy.Date,
|
||||
default=date.today())
|
||||
role = sqlalchemy.Column(sqlalchemy.String, nullable=True)
|
||||
role = sqlalchemy.Column(sqlalchemy.Integer, sqlalchemy.ForeignKey("roles.id"), nullable=True)
|
||||
activity = sqlalchemy.Column(sqlalchemy.DateTime, nullable=True)
|
||||
birthday = sqlalchemy.Column(sqlalchemy.Date, nullable=True)
|
||||
activated = sqlalchemy.Column(sqlalchemy.Boolean, nullable=False, default=False)
|
||||
|
||||
15
main.py
15
main.py
@ -12,6 +12,7 @@ from forms.edit_profile import EditProfileForm
|
||||
from forms.login import LoginForm
|
||||
from forms.register import RegisterForm
|
||||
from data.users import User
|
||||
from data.files import Files
|
||||
from waitress import serve
|
||||
from data import db_session
|
||||
|
||||
@ -28,13 +29,13 @@ def base():
|
||||
if not current_user.is_authenticated:
|
||||
return render_template('main.html', title='Главная')
|
||||
else:
|
||||
return redirect('/project')
|
||||
return redirect('/projects')
|
||||
|
||||
|
||||
@app.route('/project')
|
||||
@app.route('/projects')
|
||||
def project():
|
||||
if current_user.is_authenticated:
|
||||
return redirect(f'/profile')
|
||||
return render_template('projects.html', title='Проекты')
|
||||
else:
|
||||
return redirect('/login')
|
||||
|
||||
@ -105,7 +106,7 @@ def login():
|
||||
if user and user.check_password(form.password.data):
|
||||
if user.activated:
|
||||
login_user(user, remember=form.remember_me.data)
|
||||
return redirect('/')
|
||||
return redirect('/projects')
|
||||
else:
|
||||
return render_template('login.html',
|
||||
message="Ваша почта не подтверждена",
|
||||
@ -118,7 +119,7 @@ def login():
|
||||
return render_template('login.html', title='Авторизация', form=form, message=message,
|
||||
danger=danger)
|
||||
else:
|
||||
return redirect('/project')
|
||||
return redirect('/projects')
|
||||
|
||||
|
||||
@app.route('/logout')
|
||||
@ -149,7 +150,7 @@ def register():
|
||||
activity=datetime.datetime.now(),
|
||||
data_reg=datetime.date.today(),
|
||||
photo='static/images/none_logo.png',
|
||||
role='user'
|
||||
role=1
|
||||
)
|
||||
user.set_password(form.password.data)
|
||||
data_session.add(user)
|
||||
@ -162,7 +163,7 @@ def register():
|
||||
return redirect('/login?message=Мы выслали ссылку для подтверждения почты')
|
||||
return render_template('register.html', form=form, message='', title='Регистрация')
|
||||
else:
|
||||
return redirect('/project')
|
||||
return redirect('/projects')
|
||||
|
||||
|
||||
@app.route('/confirmation/<token>')
|
||||
|
||||
@ -1,15 +1,15 @@
|
||||
.profile_page {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 70vw;
|
||||
height: auto;
|
||||
width: 100%;
|
||||
background: linear-gradient( rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8) ), url(../images/back_profile_one.jpg);background-repeat: repeat; background-position: center;
|
||||
}
|
||||
.profile_block {
|
||||
height: 83%;
|
||||
height: 65vw;
|
||||
width: 85%;
|
||||
margin-left: 7.5%;
|
||||
margin-top: 10%;
|
||||
margin-bottom: 6%;
|
||||
background: linear-gradient( rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3) ), url(../images/back_profile_two.jpg);background-repeat: repeat; background-position: center;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@ -114,3 +114,53 @@ form {
|
||||
font-size: 1.5vw;
|
||||
margin-top: 6%;
|
||||
}
|
||||
.open_button_block {
|
||||
height: 35vw;
|
||||
width: 85%;
|
||||
margin-left: 7.5%;
|
||||
margin-top: 3%;
|
||||
margin-bottom: 6%;
|
||||
background: linear-gradient( rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3) ), url(../images/back_profile_two.jpg);background-repeat: repeat; background-position: center;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.open_button_content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.open_button_title {
|
||||
margin-bottom: 3%;
|
||||
color: #ffffff;
|
||||
font: bold;
|
||||
font-size: 4.5vw;
|
||||
}
|
||||
.open_button_article {
|
||||
margin-bottom: 5%;
|
||||
color: #ffffff;
|
||||
font: bold;
|
||||
font-size: 2vw;
|
||||
}
|
||||
.open_button {
|
||||
background-color: #ffffff;
|
||||
color: #000000;
|
||||
width: 20vw;
|
||||
height: 5vw;
|
||||
vertical-align: middle;
|
||||
border-radius: 30px;
|
||||
}
|
||||
.open_button:hover {
|
||||
text-decoration: none;
|
||||
color: #000000;
|
||||
}
|
||||
.open_button_text {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
text-align: center;
|
||||
font-size: 1.5vw;
|
||||
margin-top: 5%;
|
||||
}
|
||||
3
static/css/projects.css
Normal file
3
static/css/projects.css
Normal file
@ -0,0 +1,3 @@
|
||||
.projects_page {
|
||||
height: 65vw;
|
||||
}
|
||||
@ -36,17 +36,17 @@
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div class="message_block">
|
||||
{% if message != '' %}
|
||||
{% if danger %}
|
||||
<div class="alert alert-danger message" role="alert">
|
||||
{{ message }}
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="alert alert-success message" role="alert">
|
||||
{{ message }}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if message != '' %}
|
||||
{% if danger %}
|
||||
<div class="alert alert-danger message" role="alert">
|
||||
{{ message }}
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="alert alert-success message" role="alert">
|
||||
{{ message }}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@ -1,33 +1,49 @@
|
||||
<link rel="stylesheet" href="../static/css/profile.css"/>
|
||||
{% extends "base.html" %} {% block content %}
|
||||
<div class="profile_page">
|
||||
<div class="profile_block">
|
||||
<div class="open_button_block">
|
||||
<div class="open_button_content">
|
||||
<h2 class="open_button_title">Профиль</h2>
|
||||
<p class="open_button_article">Здесь можно поменять настройки учетной записи</p>
|
||||
<a class="open_button" data-bs-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample">
|
||||
<div class="open_button_text">
|
||||
Редикторовать
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile_block collapse" id="collapseExample">
|
||||
<div class="header_profile">
|
||||
<img class="user_photo" src="../{{current_user.photo}}">
|
||||
<img class="user_photo" src="../{{current_user.photo}}"/>
|
||||
</div>
|
||||
<div class="edit_form">
|
||||
<form action="" method="post" class="register_form" enctype="multipart/form-data">
|
||||
<form
|
||||
action=""
|
||||
method="post"
|
||||
class="register_form"
|
||||
enctype="multipart/form-data">
|
||||
{{ form.hidden_tag() }}
|
||||
<div class="form_blocks">
|
||||
<div class="data_block">
|
||||
<div class="form_data">
|
||||
<label class="form-label">{{ form.email.label }}</label>
|
||||
{{ form.email(class="input_data", type="email", placeholder='example@mail.ex') }} {% for
|
||||
error in form.email.errors %}
|
||||
{{ form.email(class="input_data", type="email",
|
||||
placeholder='example@mail.ex') }} {% for error in
|
||||
form.email.errors %}
|
||||
<div class="alert alert-danger" role="alert">{{ error }}</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div class="form_data">
|
||||
<label class="form-label">{{ form.name.label }}</label>
|
||||
{{ form.name(class="input_data", type="name", placeholder='name') }} {%
|
||||
for error in form.name.errors %}
|
||||
{{ form.name(class="input_data", type="name", placeholder='name')
|
||||
}} {% for error in form.name.errors %}
|
||||
<div class="alert alert-danger" role="alert">{{ error }}</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div class="form_data">
|
||||
<label class="form-label">{{ form.surname.label }}</label>
|
||||
{{ form.surname(class="input_data", type="surname", placeholder='surname') }}
|
||||
{% for error in form.surname.errors %}
|
||||
{{ form.surname(class="input_data", type="surname",
|
||||
placeholder='surname') }} {% for error in form.surname.errors %}
|
||||
<div class="alert alert-danger" role="alert">{{ error }}</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
@ -35,36 +51,37 @@
|
||||
<div class="data_block">
|
||||
<div class="form_data">
|
||||
<label class="form-label">{{ form.birthday.label }}</label>
|
||||
{{ form.birthday(class="input_data", type="date") }}
|
||||
{% for error in form.birthday.errors %}
|
||||
<div class="alert alert-danger" role="alert">
|
||||
{{ error }}
|
||||
</div>
|
||||
{{ form.birthday(class="input_data", type="date") }} {% for error
|
||||
in form.birthday.errors %}
|
||||
<div class="alert alert-danger" role="alert">{{ error }}</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div class="form_data">
|
||||
<label class="form-label">{{ form.about.label }}</label>
|
||||
{{ form.about(class="input_data dop_data", type="name", placeholder='about') }} {%
|
||||
for error in form.about.errors %}
|
||||
{{ form.about(class="input_data dop_data", type="name",
|
||||
placeholder='about') }} {% for error in form.about.errors %}
|
||||
<div class="alert alert-danger" role="alert">{{ error }}</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% if 'none' in current_user.photo %}
|
||||
<div class="form_data">
|
||||
<label class="form-label">{{ form.photo.label }}</label>
|
||||
{{ form.photo(class="input_data dop_data", type="file") }}
|
||||
{% for error in form.photo.errors %}
|
||||
{{ form.photo(class="input_data dop_data", type="file") }} {% for
|
||||
error in form.photo.errors %}
|
||||
<div class="alert alert-danger" role="alert">{{ error }}</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="form_data_button">
|
||||
{{ form.del_photo(type="submit", class="profile_button", id="delete_button") }}
|
||||
{{ form.del_photo(type="submit", class="profile_button",
|
||||
id="delete_button") }}
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="message_block">
|
||||
{% if message != '' %}
|
||||
<div class="alert alert-danger message" role="alert">{{ message }}</div>
|
||||
<div class="alert alert-danger message" role="alert">
|
||||
{{ message }}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
6
templates/projects.html
Normal file
6
templates/projects.html
Normal file
@ -0,0 +1,6 @@
|
||||
<link rel="stylesheet" href="../static/css/projects.css"/>
|
||||
{% extends "base.html" %} {% block content %}
|
||||
<div class="projects_page">
|
||||
|
||||
</div>
|
||||
{% endblock %}
|
||||
Loading…
x
Reference in New Issue
Block a user