Добавил возможность не указывать дедлайн в задаче, изменил отображение скролла на некоторых страницах, добавил возможность не указывать дату рождения в профиле

This commit is contained in:
Andrei 2023-03-12 17:37:41 +05:00
parent 19e1fbeb79
commit 0fe07673b7
7 changed files with 58 additions and 20 deletions

View File

@ -1,7 +1,7 @@
from flask_wtf import FlaskForm from flask_wtf import FlaskForm
from flask_wtf.file import FileAllowed from flask_wtf.file import FileAllowed
from wtforms import EmailField, StringField, TextAreaField, FileField, SubmitField, DateField from wtforms import EmailField, StringField, TextAreaField, FileField, SubmitField, DateField
from wtforms.validators import DataRequired from wtforms.validators import DataRequired, Optional
class EditProfileForm(FlaskForm): class EditProfileForm(FlaskForm):
@ -9,7 +9,7 @@ class EditProfileForm(FlaskForm):
name = StringField('Имя', validators=[DataRequired()]) name = StringField('Имя', validators=[DataRequired()])
surname = StringField('Фамилия') surname = StringField('Фамилия')
about = TextAreaField('Расскажите о себе', default='') about = TextAreaField('Расскажите о себе', default='')
birthday = DateField('Дата рождения') birthday = DateField('Дата рождения', validators=(Optional(),))
photo = FileField('Фото', validators=[FileAllowed(['jpg', 'png', 'bmp'], 'Только фотографии!')]) photo = FileField('Фото', validators=[FileAllowed(['jpg', 'png', 'bmp'], 'Только фотографии!')])
del_photo = SubmitField('Удалить фотографию') del_photo = SubmitField('Удалить фотографию')
submit = SubmitField('Сохранить') submit = SubmitField('Сохранить')

View File

@ -1,14 +1,14 @@
from flask_wtf import FlaskForm from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField, TextAreaField, DateField, TimeField, MultipleFileField, \ from wtforms import StringField, SubmitField, TextAreaField, DateField, TimeField, MultipleFileField, \
BooleanField BooleanField
from wtforms.validators import DataRequired from wtforms.validators import DataRequired, Optional
class Task(FlaskForm): class Task(FlaskForm):
name = StringField('Название', validators=[DataRequired()]) name = StringField('Название', validators=[DataRequired()])
description = TextAreaField('Описание', validators=[DataRequired()]) description = TextAreaField('Описание', validators=[DataRequired()])
deadline_date = DateField('Дедлайн') deadline_date = DateField('Дедлайн', validators=(Optional(),))
deadline_time = TimeField('') deadline_time = TimeField('', validators=(Optional(),))
submit = SubmitField('Создать') submit = SubmitField('Создать')
save = SubmitField('Сохранить') save = SubmitField('Сохранить')
delete = SubmitField('Удалить') delete = SubmitField('Удалить')

View File

@ -200,8 +200,9 @@ def edit_quest(id_project, id_task):
if request.method == 'GET': if request.method == 'GET':
form.name.data = current_task.name form.name.data = current_task.name
form.description.data = current_task.description form.description.data = current_task.description
form.deadline_time.data = current_task.deadline.time() if current_task.deadline:
form.deadline_date.data = current_task.deadline.date() form.deadline_time.data = current_task.deadline.time()
form.deadline_date.data = current_task.deadline.date()
if form.delete.data: if form.delete.data:
delete_quest_data(current_task, data_session) delete_quest_data(current_task, data_session)
data_session.delete(current_task) data_session.delete(current_task)

View File

@ -34,8 +34,17 @@
margin-right: 4vw; margin-right: 4vw;
overflow-y: hidden; overflow-y: hidden;
overflow-x: auto; overflow-x: auto;
white-space: nowrap white-space: nowrap;
max-width: 40vw;
} }
.name_project::-webkit-scrollbar {
height: 0.8vw; /* ширина scrollbar */
}
.name_project::-webkit-scrollbar-thumb {
background-color: #d49d51; /* цвет плашки */
border-radius: 5vw; /* закругления плашки */
border: 0.25vw solid #ffffff;
}
.edit_block { .edit_block {
display: flex; display: flex;
align-items: center; align-items: center;
@ -44,7 +53,7 @@
.edit_button { .edit_button {
background-color: #9E795A; background-color: #9E795A;
border: #9E795A; border: #9E795A;
width: 12vw; width: 15vw;
height: 5vw; height: 5vw;
color: #ffffff; color: #ffffff;
border-radius: 5vw; border-radius: 5vw;
@ -54,10 +63,10 @@
.edit_button_text { .edit_button_text {
color: #ffffff; color: #ffffff;
height: 5vw; height: 5vw;
margin-top: 32%; margin-top: 25%;
} }
.edit_button_link { .edit_button_link {
width: 12vw; width: 15vw;
height: 5vw; height: 5vw;
display: flex; display: flex;
align-items: center; align-items: center;
@ -152,6 +161,14 @@
.task { .task {
margin: 20px; margin: 20px;
} }
.task_block::-webkit-scrollbar {
width: 0.8vw; /* ширина scrollbar */
}
.task_block::-webkit-scrollbar-thumb {
background-color: #d49d51; /* цвет плашки */
border-radius: 5vw; /* закругления плашки */
border: 0.25vw solid #ffffff;
}
.body_block { .body_block {
display: flex; display: flex;
justify-content: space-evenly; justify-content: space-evenly;
@ -218,13 +235,13 @@
align-items: center; align-items: center;
} }
.quest_button_block_one { .quest_button_block_one {
width: 90%; width: 68%;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: flex-start; align-items: flex-start;
} }
.quest_title_block { .quest_title_block {
width: 60%; width: 96%;
height: 4vw; height: 4vw;
display: flex; display: flex;
align-items: center; align-items: center;
@ -232,11 +249,11 @@
.quest_title { .quest_title {
overflow-y: hidden; overflow-y: hidden;
overflow-x: auto; overflow-x: auto;
max-height: 4vw; max-height: 5vw;
font-size: 1.5vw; font-size: 2.1vw !important;
display: flex; display: flex;
align-items: center; align-items: center;
margin-top: 0.7vw; margin-top: 0.8vw;
margin-left: 1.8vw; margin-left: 1.8vw;
font-size: 3.5vw; font-size: 3.5vw;
white-space: nowrap white-space: nowrap

View File

@ -175,7 +175,7 @@
} }
.link_block { .link_block {
margin: 1vw; margin: 1vw;
width: 15vw; width: 25vw;
height: 6vw; height: 6vw;
background-color: #9E795A; background-color: #9E795A;
display: flex; display: flex;
@ -199,10 +199,28 @@
color: #ffffff; color: #ffffff;
} }
.link_text { .link_text {
height: 1.8vw; margin-top: 1vw;
width: 13vw;
height: 3.5vw;
color: #ffffff; color: #ffffff;
font-size: 2vw; font-size: 2vw;
overflow-x: auto;
overflow-y: hidden;
overflow-wrap: normal; /* не поддерживает IE, Firefox; является копией word-wrap */
word-wrap: normal;
word-break: normal; /* не поддерживает Opera12.14, значение keep-all не поддерживается IE, Chrome */
line-break: auto; /* нет поддержки для русского языка */
hyphens: manual;
white-space: nowrap
} }
.link_text::-webkit-scrollbar {
height: 0.8vw; /* ширина scrollbar */
}
.link_text::-webkit-scrollbar-thumb {
background-color: #d49d51; /* цвет плашки */
border-radius: 5vw; /* закругления плашки */
border: 0.25vw solid #ffffff;
}
.add_button, .link_delete, .repeal_button, .submit_button { .add_button, .link_delete, .repeal_button, .submit_button {
border-radius: 1vw !important; border-radius: 1vw !important;
margin: 1vw; margin: 1vw;

View File

@ -61,7 +61,7 @@
data-bs-toggle="collapse" data-bs-toggle="collapse"
data-bs-target="#panelsStayOpen-collapse{{ quest.id }}" aria-expanded="true" data-bs-target="#panelsStayOpen-collapse{{ quest.id }}" aria-expanded="true"
aria-controls="panelsStayOpen-collapse{{ quest.id }}"> aria-controls="panelsStayOpen-collapse{{ quest.id }}">
<div class="quest_button_block_one"> <div class="quest_button_block_one"{% if project.is_template %}style="width: 97%;"{% endif %}>
<div class="quest_title_block" {% if project.is_template <div class="quest_title_block" {% if project.is_template
%}style="width:100%;!important" {% endif %}> %}style="width:100%;!important" {% endif %}>
<p class="quest_title">{{ quest.name }}</p> <p class="quest_title">{{ quest.name }}</p>

View File

@ -28,16 +28,18 @@
<div class="links_block"> <div class="links_block">
<div class="header_link"> <div class="header_link">
<h2 class="links_title">Полезные ссылки</h2> <h2 class="links_title">Полезные ссылки</h2>
{% if current_user.role in [1, 4] %}
<button type="button" class="add_button btn btn-primary" id="add_link_button" <button type="button" class="add_button btn btn-primary" id="add_link_button"
onclick="add_link()">Добавить onclick="add_link()">Добавить
</button> </button>
<button type="button" class="repeal_button btn btn-primary" id="repeal_link_button" <button type="button" class="repeal_button btn btn-primary" id="repeal_link_button"
onclick="repeal_link()" style="display: none">Отмена onclick="repeal_link()" style="display: none">Отмена
</button> </button>
{% endif %}
</div> </div>
<div class="link_list"> <div class="link_list">
{% for link in list_links %} {% for link in list_links %}
<div class="link_block" {% if current_user.role in [1, 4] %}style="width:25vw !important;"{% endif %}> <div class="link_block">
<a class="link" href="{{ link.link }}"> <a class="link" href="{{ link.link }}">
<p class="link_text">{{ link.name }}</p> <p class="link_text">{{ link.name }}</p>
</a> </a>