начал реорганизацию структуры проекта

This commit is contained in:
Андрей Дувакин 2024-12-14 09:32:23 +05:00
parent 022a30f0bb
commit 3352b4ab86
98 changed files with 1366 additions and 4832 deletions

6
.gitignore vendored
View File

@ -2,5 +2,7 @@
/venv/
.idea/
/.idea
/static
static/
/incepted/static
incepted/static/
/incepted/logfiles/main.log
/incepted/db/incepted.db

View File

@ -1,267 +1,267 @@
import datetime
import os
import shutil
import smtplib
from json import loads
from email.message import EmailMessage
from data.answer import Answer
from data.proof_file import FileProof
from data.quests import Quests
from data.roles import Roles
from data.users import User
from data.staff_projects import StaffProjects
from data.files import Files
from data import db_session
import uuid
import pymorphy2
def check_password(password=''):
smb = 'qwertyuiopasdfghjklzxcvbnm'
if len(password) < 6:
return 'Пароль должен быть длиннее 6 символов'
elif False in [True if i.isalpha() and i.lower() in smb or i.isdigit() else False for i in password]:
return 'Пароль может содержать только буквы латинского алфавита и цифры'
elif True not in [True if i.isdigit() else False for i in password]:
return 'Пароль должен содержать буквы разного регистра и цифры'
elif False not in [True if i.islower() and i.isalpha() else False for i in password]:
return 'Пароль должен содержать буквы разного регистра и цифры'
else:
return 'OK'
def mail(msg, to, topic='Подтверждение почты'):
with open('incepted.config', 'r', encoding='utf-8') as file:
file = loads(file.read())
login, password = file["mail_login"], file["mail_password"]
email_server = "smtp.yandex.ru"
sender = "incepted@yandex.ru"
em = EmailMessage()
em.set_content(msg)
em['To'] = to
em['From'] = sender
em['Subject'] = topic
mailServer = smtplib.SMTP(email_server)
mailServer.set_debuglevel(1)
mailServer.ehlo()
mailServer.starttls()
mailServer.ehlo()
mailServer.login(login, password)
mailServer.ehlo()
mailServer.send_message(em)
mailServer.quit()
def init_db_default():
data_session = db_session.create_session()
roles = [['admin', 90], ['moderator', 75], ['counselor', 45], ['user', 0]]
for i in roles:
role = Roles(
name=i[0],
rights=i[1]
)
data_session.add(role)
data_session.commit()
data_session.close()
def get_user_data(user):
resp = {
'id': user.id,
'name': user.name,
'surname': user.surname,
'login': user.login,
'email': user.email,
'photo': user.photo,
'role': user.role
}
return resp
def get_projects_data(project):
data_session = db_session.create_session()
staff = data_session.query(StaffProjects.user).filter(StaffProjects.project == project.id).all()
resp = {
'id': project.id,
'name': project.name,
'logo': project.photo,
'description': project.description,
'staff': list(map(lambda x: get_user_data(x), data_session.query(User).filter(
User.id.in_(list(map(lambda x: x[0], staff)))).all())) if staff else []
}
resp['staff'].insert(0, get_user_data(data_session.query(User).filter(User.id == project.creator).first()))
return resp
def save_project_logo(photo):
filename = f'static/app_files/project_logo/{uuid.uuid4()}.png'
with open(filename, 'wb') as f:
photo.save(f)
return filename
def overdue_quest_project(quest):
if quest.deadline is None:
quest.overdue = ''
elif str(quest.deadline.date()) == str(datetime.datetime.now().date()):
quest.overdue = 'today'
elif quest.deadline < datetime.datetime.now():
quest.overdue = 'yes'
quest.time_left = 'Просрочено на' + round_date(quest.deadline)
elif quest.deadline > datetime.datetime.now():
quest.overdue = 'no'
quest.time_left = 'Еще есть: ' + round_date(quest.deadline)
return quest
def round_date(date_time):
morph = pymorphy2.MorphAnalyzer()
difference = abs(date_time - datetime.datetime.now()).days
resp = ''
if difference // 365:
resp += f'{difference // 365} {morph.parse("год")[0].make_agree_with_number(difference // 365).word}'
difference -= 365 * (difference // 365)
if difference // 30:
resp += ', ' if resp else ' ' + f'{difference // 30}' \
f' {morph.parse("месяц")[0].make_agree_with_number(difference // 30).word}'
difference -= 30 * (difference // 30)
if difference:
resp += ', ' if resp else ' ' + f'{difference} {morph.parse("день")[0].make_agree_with_number(difference).word}'
return f'{resp}'
def save_proof_quest(project, file, user_id):
data_session = db_session.create_session()
path = f'static/app_files/all_projects/{str(project.id)}/{str(file.filename)}'
file_check = data_session.query(Files).filter(Files.path == path).first()
file.save(path)
if file_check:
return file_check.id
file = Files(
path=path,
user=user_id,
up_date=datetime.datetime.now()
)
data_session.add(file)
data_session.flush()
data_session.refresh(file)
file_id = file.id
data_session.commit()
data_session.close()
return file_id
def find_files_answer(file_id):
data_session = db_session.create_session()
file = data_session.query(Files).filter(Files.id == file_id).first()
return {'id': file.id, 'path': file.path, 'user': file.user, 'up_date': file.up_date,
'current_path': file.path[str(file.path).find('all_projects') + 13:].split('/')}
def file_tree(path):
tree = []
data_session = db_session.create_session()
h = 1
for i in os.listdir(path):
if os.path.isfile(f'{path}/{i}'):
file = data_session.query(Files).filter(Files.path == f'{path}/{i}').first()
tree.append(
{
'path': f'{path}/{i}',
'type': 'file',
'object': file if file else None,
'current_path': f'{path}/{i}'[str(file.path).find('all_projects') + 13:].split('/')
}
)
else:
tree.append(
{
'id': h,
'name': i,
'path': f'{path}/{i}',
'type': 'folder',
'tree': file_tree(f'{path}/{i}')
}
)
h += 1
data_session.close()
return tree
def delete_file_proof_data(file_proof, data_session):
file = data_session.query(Files).filter(Files.id == file_proof.file).first()
data_session.delete(file)
def delete_answer_data(answer, data_session):
file_proofs = data_session.query(FileProof).filter(FileProof.answer == answer.id).all()
list(map(lambda file: delete_file_proof_data(file, data_session), file_proofs))
list(map(data_session.delete, file_proofs))
def delete_quest_data(quest, data_session):
answers = data_session.query(Answer).filter(Answer.quest == quest.id).all()
list(map(lambda answer: delete_answer_data(answer, data_session), answers))
list(map(data_session.delete, answers))
def delete_project_data(project, data_session):
staff = data_session.query(StaffProjects).filter(StaffProjects.project == project.id).all()
list(map(data_session.delete, staff))
if 'none_project' not in project.photo:
os.remove(project.photo)
quests = data_session.query(Quests).filter(Quests.project == project.id).all()
list(map(lambda quest: delete_quest_data(quest, data_session), quests))
list(map(data_session.delete, quests))
list(map(data_session.delete,
data_session.query(Files).filter(Files.path.contains(f'all_projects/{str(project.id)}/')).all()))
shutil.rmtree(f'static/app_files/all_projects/{str(project.id)}')
data_session.delete(project)
data_session.commit()
def copy_file_from_template(file, new_project, data_session, current_user):
path = f'static/app_files/all_projects/{str(new_project.id)}/{str(file.path).split("/")[-1]}'
shutil.copy(file.path, path)
new_file = Files(
path=path,
user=current_user.id,
up_date=datetime.datetime.now()
)
data_session.add(new_file)
def copy_quests_from_template(quest, new_project, data_session, current_user):
new_quest = Quests(
project=new_project.id,
creator=current_user.id,
name=quest.name,
description=quest.description,
date_create=datetime.datetime.now(),
deadline=quest.deadline,
realized=False
)
data_session.add(new_quest)
def copy_template(template, new_project, data_session, current_user):
os.mkdir(f'static/app_files/all_projects/{str(new_project.id)}')
if 'none_project' not in template.photo:
filename = f'static/app_files/project_logo/{uuid.uuid4()}.png'
shutil.copy(template.photo, filename)
new_project.photo = filename
else:
new_project.photo = 'static/images/none_project.png'
list(map(lambda file: copy_file_from_template(file, new_project, data_session, current_user),
data_session.query(Files).filter(Files.path.contains(f'all_projects/{str(template.id)}/')).all()))
list(map(lambda quest: copy_quests_from_template(quest, new_project, data_session, current_user),
data_session.query(Quests).filter(Quests.project == template.id).all()))
data_session.commit()
def save_admin_data(data, data_session):
user = data_session.query(User).filter(User.id == data[0].split('_')[-1]).first()
if user.role != data[1]:
user.role = data[1]
import datetime
import os
import shutil
import smtplib
from json import loads
from email.message import EmailMessage
from data.answer import Answer
from data.proof_file import FileProof
from data.quests import Quests
from data.roles import Roles
from data.users import User
from data.staff_projects import StaffProjects
from data.files import Files
from data import db_session
import uuid
import pymorphy2
def check_password(password=''):
smb = 'qwertyuiopasdfghjklzxcvbnm'
if len(password) < 6:
return 'Пароль должен быть длиннее 6 символов'
elif False in [True if i.isalpha() and i.lower() in smb or i.isdigit() else False for i in password]:
return 'Пароль может содержать только буквы латинского алфавита и цифры'
elif True not in [True if i.isdigit() else False for i in password]:
return 'Пароль должен содержать буквы разного регистра и цифры'
elif False not in [True if i.islower() and i.isalpha() else False for i in password]:
return 'Пароль должен содержать буквы разного регистра и цифры'
else:
return 'OK'
def mail(msg, to, topic='Подтверждение почты'):
with open('../incepted.config', 'r', encoding='utf-8') as file:
file = loads(file.read())
login, password = file["mail_login"], file["mail_password"]
email_server = "smtp.yandex.ru"
sender = "incepted@yandex.ru"
em = EmailMessage()
em.set_content(msg)
em['To'] = to
em['From'] = sender
em['Subject'] = topic
mailServer = smtplib.SMTP(email_server)
mailServer.set_debuglevel(1)
mailServer.ehlo()
mailServer.starttls()
mailServer.ehlo()
mailServer.login(login, password)
mailServer.ehlo()
mailServer.send_message(em)
mailServer.quit()
def init_db_default():
data_session = db_session.create_session()
roles = [['admin', 90], ['moderator', 75], ['counselor', 45], ['user', 0]]
for i in roles:
role = Roles(
name=i[0],
rights=i[1]
)
data_session.add(role)
data_session.commit()
data_session.close()
def get_user_data(user):
resp = {
'id': user.id,
'name': user.name,
'surname': user.surname,
'login': user.login,
'email': user.email,
'photo': user.photo,
'role': user.role
}
return resp
def get_projects_data(project):
data_session = db_session.create_session()
staff = data_session.query(StaffProjects.user).filter(StaffProjects.project == project.id).all()
resp = {
'id': project.id,
'name': project.name,
'logo': project.photo,
'description': project.description,
'staff': list(map(lambda x: get_user_data(x), data_session.query(User).filter(
User.id.in_(list(map(lambda x: x[0], staff)))).all())) if staff else []
}
resp['staff'].insert(0, get_user_data(data_session.query(User).filter(User.id == project.creator).first()))
return resp
def save_project_logo(photo):
filename = f'static/app_files/project_logo/{uuid.uuid4()}.png'
with open(filename, 'wb') as f:
photo.save(f)
return filename
def overdue_quest_project(quest):
if quest.deadline is None:
quest.overdue = ''
elif str(quest.deadline.date()) == str(datetime.datetime.now().date()):
quest.overdue = 'today'
elif quest.deadline < datetime.datetime.now():
quest.overdue = 'yes'
quest.time_left = 'Просрочено на' + round_date(quest.deadline)
elif quest.deadline > datetime.datetime.now():
quest.overdue = 'no'
quest.time_left = 'Еще есть: ' + round_date(quest.deadline)
return quest
def round_date(date_time):
morph = pymorphy2.MorphAnalyzer()
difference = abs(date_time - datetime.datetime.now()).days
resp = ''
if difference // 365:
resp += f'{difference // 365} {morph.parse("год")[0].make_agree_with_number(difference // 365).word}'
difference -= 365 * (difference // 365)
if difference // 30:
resp += ', ' if resp else ' ' + f'{difference // 30}' \
f' {morph.parse("месяц")[0].make_agree_with_number(difference // 30).word}'
difference -= 30 * (difference // 30)
if difference:
resp += ', ' if resp else ' ' + f'{difference} {morph.parse("день")[0].make_agree_with_number(difference).word}'
return f'{resp}'
def save_proof_quest(project, file, user_id):
data_session = db_session.create_session()
path = f'static/app_files/all_projects/{str(project.id)}/{str(file.filename)}'
file_check = data_session.query(Files).filter(Files.path == path).first()
file.save(path)
if file_check:
return file_check.id
file = Files(
path=path,
user=user_id,
up_date=datetime.datetime.now()
)
data_session.add(file)
data_session.flush()
data_session.refresh(file)
file_id = file.id
data_session.commit()
data_session.close()
return file_id
def find_files_answer(file_id):
data_session = db_session.create_session()
file = data_session.query(Files).filter(Files.id == file_id).first()
return {'id': file.id, 'path': file.path, 'user': file.user, 'up_date': file.up_date,
'current_path': file.path[str(file.path).find('all_projects') + 13:].split('/')}
def file_tree(path):
tree = []
data_session = db_session.create_session()
h = 1
for i in os.listdir(path):
if os.path.isfile(f'{path}/{i}'):
file = data_session.query(Files).filter(Files.path == f'{path}/{i}').first()
tree.append(
{
'path': f'{path}/{i}',
'type': 'file',
'object': file if file else None,
'current_path': f'{path}/{i}'[str(file.path).find('all_projects') + 13:].split('/')
}
)
else:
tree.append(
{
'id': h,
'name': i,
'path': f'{path}/{i}',
'type': 'folder',
'tree': file_tree(f'{path}/{i}')
}
)
h += 1
data_session.close()
return tree
def delete_file_proof_data(file_proof, data_session):
file = data_session.query(Files).filter(Files.id == file_proof.file).first()
data_session.delete(file)
def delete_answer_data(answer, data_session):
file_proofs = data_session.query(FileProof).filter(FileProof.answer == answer.id).all()
list(map(lambda file: delete_file_proof_data(file, data_session), file_proofs))
list(map(data_session.delete, file_proofs))
def delete_quest_data(quest, data_session):
answers = data_session.query(Answer).filter(Answer.quest == quest.id).all()
list(map(lambda answer: delete_answer_data(answer, data_session), answers))
list(map(data_session.delete, answers))
def delete_project_data(project, data_session):
staff = data_session.query(StaffProjects).filter(StaffProjects.project == project.id).all()
list(map(data_session.delete, staff))
if 'none_project' not in project.photo:
os.remove(project.photo)
quests = data_session.query(Quests).filter(Quests.project == project.id).all()
list(map(lambda quest: delete_quest_data(quest, data_session), quests))
list(map(data_session.delete, quests))
list(map(data_session.delete,
data_session.query(Files).filter(Files.path.contains(f'all_projects/{str(project.id)}/')).all()))
shutil.rmtree(f'static/app_files/all_projects/{str(project.id)}')
data_session.delete(project)
data_session.commit()
def copy_file_from_template(file, new_project, data_session, current_user):
path = f'static/app_files/all_projects/{str(new_project.id)}/{str(file.path).split("/")[-1]}'
shutil.copy(file.path, path)
new_file = Files(
path=path,
user=current_user.id,
up_date=datetime.datetime.now()
)
data_session.add(new_file)
def copy_quests_from_template(quest, new_project, data_session, current_user):
new_quest = Quests(
project=new_project.id,
creator=current_user.id,
name=quest.name,
description=quest.description,
date_create=datetime.datetime.now(),
deadline=quest.deadline,
realized=False
)
data_session.add(new_quest)
def copy_template(template, new_project, data_session, current_user):
os.mkdir(f'static/app_files/all_projects/{str(new_project.id)}')
if 'none_project' not in template.photo:
filename = f'static/app_files/project_logo/{uuid.uuid4()}.png'
shutil.copy(template.photo, filename)
new_project.photo = filename
else:
new_project.photo = 'static/images/none_project.png'
list(map(lambda file: copy_file_from_template(file, new_project, data_session, current_user),
data_session.query(Files).filter(Files.path.contains(f'all_projects/{str(template.id)}/')).all()))
list(map(lambda quest: copy_quests_from_template(quest, new_project, data_session, current_user),
data_session.query(Quests).filter(Quests.project == template.id).all()))
data_session.commit()
def save_admin_data(data, data_session):
user = data_session.query(User).filter(User.id == data[0].split('_')[-1]).first()
if user.role != data[1]:
user.role = data[1]

File diff suppressed because it is too large Load Diff

View File

@ -1,66 +1,66 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8"/>
<link rel="stylesheet" href="../../../../static/css/base.css"/>
<link
rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh"
crossorigin="anonymous"
/>
<link rel="icon" href="../../../static/images/logo_b.ico" type="image/x-icon"/>
<title>{{title}}</title>
</head>
<body>
<div class="alert alert-danger mess_block" role="alert">
<h4 style="text-align:center;">Это демонстрационная версия сайта, пока что мы не рекомендуем сохранять здесь важные данные</h4>
</div>
{% if current_user.is_authenticated %}
<nav class="navbar">
<div class="nav_panel">
<a class="nav_chapter" href="/profile">
<div class="nav_user">
<div class="nav_user_name_div"><p class="nav_user_name nav_chapter_text">{{current_user.name}}</p></div>
</div>
</a>
<a class="nav_chapter" href="/projects">
<p class="nav_chapter_text">Проекты</p>
</a>
<a class="nav_chapter" href="/showcase">
<p class="nav_chapter_text">Витрина</p>
</a>
{% if current_user.role == 1 %}
<a class="nav_chapter" href="/admin">
<p class="nav_chapter_text">Админ</p>
</a>
{% endif %}
</div>
</nav>
{% else %}
<nav class="navbar" id="navbar">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<img src="../../../../static/images/logo_b.png" class="nav_logo"/>
</a>
<a class="auth_button" href="/login">Авторизация</a>
</div>
</nav>
{% endif %}
<!-- Begin page content -->
<main role="main">{% block content %}{% endblock %}</main>
<footer class="footer">
<div class="footer_block">
<a href="/#header_block"
><img class="footer_logo" src="../../../../static/images/logo_w.png"
/></a>
<strong class="footer_rights">© All rights reserved</strong>
</div>
</footer>
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/js/bootstrap.bundle.min.js"
integrity="sha384-u1OknCvxWvY5kfmNBILK2hRnQC3Pr17a+RTT6rIHI7NnikvbZlHgTPOOmMi466C8"
crossorigin="anonymous"
></script>
</body>
</html>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8"/>
<link rel="stylesheet" href="../../../../static/css/base.css"/>
<link
rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh"
crossorigin="anonymous"
/>
<link rel="icon" href="../../../static/images/logo_b.ico" type="image/x-icon"/>
<title>{{title}}</title>
</head>
<body>
<div class="alert alert-danger mess_block" role="alert">
<h4 style="text-align:center;">Это демонстрационная версия сайта, пока что мы не рекомендуем сохранять здесь важные данные</h4>
</div>
{% if current_user.is_authenticated %}
<nav class="navbar">
<div class="nav_panel">
<a class="nav_chapter" href="/profile">
<div class="nav_user">
<div class="nav_user_name_div"><p class="nav_user_name nav_chapter_text">{{current_user.name}}</p></div>
</div>
</a>
<a class="nav_chapter" href="/projects">
<p class="nav_chapter_text">Проекты</p>
</a>
<a class="nav_chapter" href="/showcase">
<p class="nav_chapter_text">Витрина</p>
</a>
{% if current_user.role == 1 %}
<a class="nav_chapter" href="/admin">
<p class="nav_chapter_text">Админ</p>
</a>
{% endif %}
</div>
</nav>
{% else %}
<nav class="navbar" id="navbar">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<img src="../../../../static/images/logo_b.png" class="nav_logo"/>
</a>
<a class="auth_button" href="/login">Авторизация</a>
</div>
</nav>
{% endif %}
<!-- Begin page content -->
<main role="main">{% block content %}{% endblock %}</main>
<footer class="footer">
<div class="footer_block">
<a href="/#header_block"
><img class="footer_logo" src="../../../../static/images/logo_w.png"
/></a>
<strong class="footer_rights">© All rights reserved</strong>
</div>
</footer>
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/js/bootstrap.bundle.min.js"
integrity="sha384-u1OknCvxWvY5kfmNBILK2hRnQC3Pr17a+RTT6rIHI7NnikvbZlHgTPOOmMi466C8"
crossorigin="anonymous"
></script>
</body>
</html>

View File

@ -1,57 +1,57 @@
<link rel="stylesheet" href="../static/css/login.css"/>
{% extends "base.html" %} {% block content %}
<div class="login_page">
<div class="login">
<h1 class="header_title">Авторизация</h1>
<div>
<form action="" method="post" class="login_form">
{{ form.hidden_tag() }}
<div class="data_block">
<div class="form_data">
<label class="form-label">{{ form.login.label }}</label>
{{ form.login(class="input_data", type="login", placeholder='example@mail.ex') }} {% for
error in form.login.errors %}
<div class="alert alert-danger" role="alert">{{ error }}</div>
{% endfor %}
</div>
<div class="form_data">
<label class="form-label">{{ form.password.label }}</label>
{{ form.password(class="input_data", type="password", placeholder='good_password') }} {%
for error in form.password.errors %}
<div class="alert alert-danger" role="alert">{{ error }}</div>
{% endfor %}
</div>
<div class="form_data_button">
{{ form.submit(type="submit", class="input_button login_button") }}
<a class="input_button register_button" type="submit" href="/register">
<div class="register"><strong>Регистрация</strong></div>
</a>
<a class="recovery_button" type="submit" href="/recovery">
<div class="recovery"><strong>Забыли пароль?</strong></div>
</a>
</div>
</div>
<div class="box">
{{ form.remember_me(class="remember")}} {{form.remember_me.label }}<br/>
{% for error in form.remember_me.errors %}
<div class="alert alert-danger" role="alert">{{ error }}</div>
{% 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 %}
</div>
</form>
</div>
</div>
</div>
{% endblock %}
<link rel="stylesheet" href="../static/css/login.css"/>
{% extends "base.html" %} {% block content %}
<div class="login_page">
<div class="login">
<h1 class="header_title">Авторизация</h1>
<div>
<form action="" method="post" class="login_form">
{{ form.hidden_tag() }}
<div class="data_block">
<div class="form_data">
<label class="form-label">{{ form.login.label }}</label>
{{ form.login(class="input_data", type="login", placeholder='example@mail.ex') }} {% for
error in form.login.errors %}
<div class="alert alert-danger" role="alert">{{ error }}</div>
{% endfor %}
</div>
<div class="form_data">
<label class="form-label">{{ form.password.label }}</label>
{{ form.password(class="input_data", type="password", placeholder='good_password') }} {%
for error in form.password.errors %}
<div class="alert alert-danger" role="alert">{{ error }}</div>
{% endfor %}
</div>
<div class="form_data_button">
{{ form.submit(type="submit", class="input_button login_button") }}
<a class="input_button register_button" type="submit" href="/register">
<div class="register"><strong>Регистрация</strong></div>
</a>
<a class="recovery_button" type="submit" href="/recovery">
<div class="recovery"><strong>Забыли пароль?</strong></div>
</a>
</div>
</div>
<div class="box">
{{ form.remember_me(class="remember")}} {{form.remember_me.label }}<br/>
{% for error in form.remember_me.errors %}
<div class="alert alert-danger" role="alert">{{ error }}</div>
{% 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 %}
</div>
</form>
</div>
</div>
</div>
{% endblock %}

View File

@ -1,98 +1,98 @@
<link rel="stylesheet" href="../../../static/css/profile.css"/>
{% extends "base.html" %} {% block content %}
<div class="profile_page">
<div class="profile_block">
<div class="header_profile">
<img class="user_photo" src="../../../{{user.photo}}"/>
</div>
<div class="edit_form">
<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 %}
<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 %}
<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 %}
<div class="alert alert-danger" role="alert">{{ error }}</div>
{% endfor %}
</div>
</div>
<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>
{% endfor %}
</div>
<div class="form_data">
<label class="form-label">{{ form.about.label }}</label>
{{ form.about(class="input_data dop_data about", type="name",
placeholder='about') }} {% for error in form.about.errors %}
<div class="alert alert-danger" role="alert">{{ error }}</div>
{% endfor %}
</div>
{% if 'none' in 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 %}
<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") }}
</div>
{% endif %}
<div class="message_block">
{% if message != '' %}
<div class="alert alert-danger message" role="alert">
{{ message }}
</div>
{% endif %}
</div>
</div>
</div>
<div class="form_data_button">
{{ form.submit(type="submit", class="profile_button") }}
{% if admin %}
<a class="profile_button" href="/user/{{user.login}}">
<div class="profile_button_text" id="profile_button_text">
<p>Профиль</p>
</div>
</a>
{% else %}
<a class="profile_button" id="logout_button" href="/logout">
<div class="profile_button_text">
<p>Выйти</p>
</div>
</a>
{% endif %}
</div>
</form>
</div>
</div>
</div>
{% endblock %}
<link rel="stylesheet" href="../../../static/css/profile.css"/>
{% extends "base.html" %} {% block content %}
<div class="profile_page">
<div class="profile_block">
<div class="header_profile">
<img class="user_photo" src="../../../{{user.photo}}"/>
</div>
<div class="edit_form">
<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 %}
<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 %}
<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 %}
<div class="alert alert-danger" role="alert">{{ error }}</div>
{% endfor %}
</div>
</div>
<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>
{% endfor %}
</div>
<div class="form_data">
<label class="form-label">{{ form.about.label }}</label>
{{ form.about(class="input_data dop_data about", type="name",
placeholder='about') }} {% for error in form.about.errors %}
<div class="alert alert-danger" role="alert">{{ error }}</div>
{% endfor %}
</div>
{% if 'none' in 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 %}
<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") }}
</div>
{% endif %}
<div class="message_block">
{% if message != '' %}
<div class="alert alert-danger message" role="alert">
{{ message }}
</div>
{% endif %}
</div>
</div>
</div>
<div class="form_data_button">
{{ form.submit(type="submit", class="profile_button") }}
{% if admin %}
<a class="profile_button" href="/user/{{user.login}}">
<div class="profile_button_text" id="profile_button_text">
<p>Профиль</p>
</div>
</a>
{% else %}
<a class="profile_button" id="logout_button" href="/logout">
<div class="profile_button_text">
<p>Выйти</p>
</div>
</a>
{% endif %}
</div>
</form>
</div>
</div>
</div>
{% endblock %}

View File

@ -1,95 +0,0 @@
.admin_page {
height: 120vw;
background-color: #dcb495;
display: flex;
flex-direction: column;
align-items: center;
}
.admin_block {
width: 90%;
height: 35vw;
background-color: #EDCBB0;
border-radius: 2vw;
overflow-y: auto;
overflow-x: hidden;
}
.admin_block::-webkit-scrollbar {
width: 0.8vw; /* ширина scrollbar */
}
.admin_block::-webkit-scrollbar-thumb {
background-color: #d49d51; /* цвет плашки */
border-radius: 5vw; /* закругления плашки */
border: 0.25vw solid #ffffff;
}
.users_block {
margin: 20px;
display: flex;
flex-direction: column;
align-items: center;
}
.user {
width: 90%;
height: 5vw;
background-color: #ffffff;
border: 2px solid #9E795A;
border-radius: 3vw;
margin-top: 5px;
display: flex;
align-items: center;
justify-content: flex-start;
flex-direction: row;
}
.user_logo {
margin-left: 3px;
width: 4vw;
height: 4vw;
border-radius: 5vw;
background-color: #000000;
}
.user_names {
margin-left: 9px;
margin-top: 10px;
overflow-x: auto;
color: #000000 !important;
font-size: 2vw;
}
.admine_title {
font-size: 3vw;
}
.link_to_user {
width: 16vw;
height: 3.5vw;
display: flex;
align-items: center;
justify-content: flex-start;
flex-direction: row;
flex-wrap: no-wrap;
text-decoration: none;
}
.link_to_user:hover {
text-decoration: none;
}
.role_div {
width: 8vw;
height: 3vw;
border-radius: 2vw;
}
.save_button {
margin-top: 15px;
width: 35vw;
height: 5vw;
background-color: #000000;
color: #ffffff;
border-radius: 5vw;
vertical-align: middle;
font-size: 1.5vw;
}
.edit_user_form {
width: 90%;
display: flex;
flex-direction: column;
align-items: center;
}
.user_active, .user_banned {
margin-left: 1vw;
}

View File

@ -1,251 +0,0 @@
body {
background-color: #dcb495 !important;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.decision_page {
background-color: #dcb495;
min-height: 100vw;
height: auto;
display: flex;
flex-direction: column;
align-items: center;
margin: 3vw;
margin-bottom: 20vw;
}
.link_back_block {
margin-right: 0.5vw;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
flex-wrap: nowrap;
}
.head_buttons_block {
display: flex;
flex-direction: row;
}
.link_back {
background-color: #ffffff;
color: #000000;
width: 15vw;
height: 4.5vw;
vertical-align: middle;
border-radius: 5vw;
display: flex;
align-items: center;
justify-content: center;
}
.link_back:hover {
text-decoration: none;
color: #000000;
}
.link_back_text {
font-size: 1.5vw;
margin-top: 15px;
display: flex;
align-items: center;
justify-content: center;
}
.name_block {
margin-top: 3vw;
width: 90%;
height: auto;
display: flex;
flex-direction: column;
align-items: center;
}
.title_block {
width: 90%;
display: flex;
justify-content: center;
}
.title_task, .files_title {
text-align: center;
color: #000000;
font-size: 4vw;
max-width: 80%;
overflow-x: auto;
overflow-y: hidden;
}
.description_task {
width: 80%;
background-color: #EDCBB0;
height: auto;
max-height: 15vw;
border-radius: 2vw;
display: flex;
overflow-y: auto;
}
.description_task::-webkit-scrollbar {
width: 0.8vw !important;
height: auto;
}
.description_task::-webkit-scrollbar-thumb {
background-color: #d49d51 !important; /* цвет плашки */
border-radius: 5vw !important; /* закругления плашки */
border: 0.25vw solid #ffffff !important;
}
.description {
margin: 15px;
}
.description_text {
font-size: 1.5vw;
text-align: justify;
}
.data_block {
width: 100%;
display: flex;
align-items: flex-start;
justify-content: center
}
.bottom_data {
margin: 2vw;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.form_label {
margin-top: 10px;
font-size: 1.3vw;
color: #000000;
font-weight: bold;
}
.input_data {
color: #000000;
border: 0.1vw solid #595008;
height: 4.5vw;
min-height: 4.5vw;
width: 30vw;
background-color: #dbc3af;
border-radius: 5vw;
font-size: 1.3vw;
display: inline-flex;
align-items: center;
}
.input_button {
width: 10vw;
height: 5vw;
border-radius: 5vw;
vertical-align: middle;
}
.form_data {
display: flex;
flex-direction: column;
margin-left: 2%;
}
.decision_block {
margin-top: 3vw;
width: 90%;
height: 25vw;
display: flex;
flex-direction: column;
align-items: center;
}
.padding_data {
padding: 1vw;
}
.quest_button {
color: #ffffff;
width: 13vw;
height: 5vw;
background-color: #000000;
border: 2px solid #ffffff;
border-radius: 3vw;
margin-left: 2vw;
}
form {
display: flex;
flex-direction: column;
align-items: center;
}
.form_data_button {
margin-top: 20px;
display: flex;
width: 30vw;
align-items: center;
justify-content: space-between;
}
.deadline {
margin-top: 5px;
}
.text_data {
width: 80%;
border-radius: 2vw !important;
min-height: 10vw;
max-height: 20vw;
}
.form_text_one {
width: 200%;
}
.files_block {
width: 100%;
margin: 2vw;
background-color: #dbc3af;
display: flex;
flex-direction: column;
align-items: stretch;
border-radius: 2vw;
min-height: 25vw;
}
.files_list {
margin: 2vw;
height: auto;
overflow-y: auto;
overflow-x: hidden;
}
.files {
width: 80%;
margin: 2vw;
display: flex;
flex-direction: column;
align-items: center;
min-height: 25vw;
max-height: 30vw;
}
.file {
width: 98%;
display: flex;
background-color: #694a2d;
margin: 0.5vw;
align-items: center;
justify-content: space-between;
flex-direction: row;
height: 4.5vw;
border-radius: 2vw;
}
.file_head {
width: 30vw;
margin-left: 1vw;
height: 4vw;
background-color: #694a2d !important;
overflow-y: hidden;
overflow-x: auto;
}
.file_head_path, .file_path {
font-size: 1.5vw;
color: #ffffff !important;
font-weight: bold;
height: 3vw;
display: flex;
align-items: flex-start;
background-color: #694a2d !important;
}
.file_buttons {
margin-right: 2vw;
}
.file_delete, .file_download {
border-radius: 1vw !important;
margin: 1vw;
width: 8vw;
height: 3vw;
}
.file_delete {
background-color: hsla(0, 100%, 62%, 0.785) !important;
border-color: hsla(0, 100%, 62%, 0.785) !important;
}
.button_text {
font-size: 1.3vw;
}

View File

@ -1,100 +0,0 @@
html {
background-color: #fdf5e6;
height: 100%;
}
body {
min-height: 100%;
}
.navbar {
margin-top: -1.4vw;
background-color: #dcb495;
display: inline-flex;
height: 8vw;
}
#navbar {
margin-top: -80px;
position: fixed;
width: 100%;
transition: top 0.3s;
opacity: .9;
border-bottom: 1px solid #bf9c81;
}
.auth_button {
color: #ffffff;
font-size: 1.5vw;
transition: color 0.5s ease-in, border-bottom 0.5s ease-in;
}
.auth_button:hover {
color: #694a2d;
border-bottom: 3px solid #f3c79e;
text-decoration: none;
}
.footer {
background-color: #171717;
height: 15vw;
}
.footer_block {
height: 100%;
width: 90%;
margin-left: 5%;
display: flex;
align-content: center;
align-items: center;
}
.footer_logo, .nav_logo {
width: 7vw;
height: 6vw;
}
.footer_rights {
color: #ffffff;
font-size: 1.5vw;
width: 85%;
text-align: center;
}
.nav_panel {
width: 100%;
display: inline-flex;
justify-content: center;
}
.nav_user {
display: flex;
flex-direction: row;
justify-content: center;
height: 100%;
align-items: center;
}
.nav_user_name {
margin-left: 1vw;
align-self: center;
}
.nav_chapter_text {
height: 100%;
font-style: bold;
color: #946137;
font-size: 2vw;
transition: color 0.3s ease-in;
}
.nav_chapter_text:hover {
color: #f3d5be;
}
.nav_chapter {
text-align: center;
width: 30%;
border-bottom: 0.2vw solid #d49d51;
transition: border-bottom 0.3s ease-in;
}
.nav_chapter:hover {
text-decoration: none;
border-bottom: 0.2vw solid #face7d;
}
.nav_user_name_div {
height: 100%;
}
body::-webkit-scrollbar {
width: 0.8vw; /* ширина scrollbar */
}
body::-webkit-scrollbar-thumb {
background-color: #d49d51; /* цвет плашки */
border-radius: 5vw; /* закругления плашки */
border: 0.25vw solid #ffffff;
}

View File

@ -1,60 +0,0 @@
.delete_project_page {
height: 60vw;
background-color: #dcb495;
}
.form_block {
width: 100%;
height: 60vw;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
}
.form_data {
display: flex;
flex-direction: column;
margin-left: 2%;
}
.input_data {
color: #000000;
border: 0.1vw solid #595008;
height: 4.5vw;
min-height: 4.5vw;
width: 35vw;
background-color: #dbc3af;
border-radius: 4.5vw;
font-size: 1.3vw;
display: inline-flex;
align-items: center;
}
.form_label {
margin-top: 10px;
font-size: 1.3vw;
color: #ffffff;
font-weight: bold;
}
.delete_project_button {
margin-left: 15px;
width: 25vw;
height: 5vw;
background-color: #000000;
color: #ffffff;
border-radius: 5vw;
vertical-align: middle;
font-size: 1.5vw;
}
form {
display: flex;
align-items: flex-end;
justify-content: center;
}
.conf_text {
color: #ff0000;
}
.header_title {
text-align: center;
color: #000000;
font-size: 3.5vw;
width: 100%;
margin-bottom: 15px;
}

View File

@ -1,179 +0,0 @@
.edit_project_page {
height: 120vw;
background-color: #dcb495;
}
.form_data, .form_data_button {
display: flex;
flex-direction: column;
margin-left: 2%;
}
.form_data_button {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.input_data {
color: #000000;
border: 0.1vw solid #595008;
height: 4.5vw;
min-height: 4.5vw;
width: 35vw;
background-color: #dbc3af;
border-radius: 4.5vw;
font-size: 1.3vw;
display: inline-flex;
align-items: center;
}
.input_button {
width: 35vw;
height: 5vw;
border-radius: 5vw;
vertical-align: middle;
}
.form_label {
margin-top: 10px;
font-size: 1.3vw;
color: #ffffff;
font-weight: bold;
}
.description {
border-radius: 2vw !important;
width: 50vw;
}
.padding_data {
padding-top: 1vw;
padding-left: 1vw;
}
.label_data {
padding-left: 0.8vw;
width: 50vw;
}
.project_button, .delete_button, .delete_project_link {
margin-top: 15px;
width: 35vw;
height: 5vw;
background-color: #000000;
color: #ffffff;
border-radius: 5vw;
vertical-align: middle;
font-size: 1.5vw;
}
.collaborator_block {
width: 30%;
height: 20vw;
background-color: #EDCBB0;
border-radius: 2vw;
overflow-y: auto;
}
.user {
width: 30vw;
height: 3.5vw;
background-color: #ffffff;
border: 2px solid #9E795A;
border-radius: 3vw;
margin-top: 5px;
display: inline-flex;
justify-content: space-between;
}
.user_logo {
margin-left: 3px;
width: 3vw;
height: 3vw;
border-radius: 5vw;
background-color: #000000;
}
.user_names {
margin-left: 9px;
margin-top: 10px;
overflow-x: auto;
}
.name_form_block {
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
}
.data_form_block {
width: 100%;
display: flex;
align-items: center;
justify-content: center;
flex-direction: row;
}
.buttons_form_block {
width: 45%;
display: flex;
flex-direction: column;
align-items: center;
}
.staff_form_block, .collaborator_block {
margin-top: 10px;
width: 60%;
height: 20vw;
display: flex;
align-items: center;
justify-content: center;
}
.staff_block {
margin: 5%;
width: 90%;
height: 20vw;
}
.choose_user {
align-self: flex-end;
margin-bottom: 1.1vw;
width: 10%;
}
.user_data {
display: inline-flex;
align-items: center;
justify-content: flex-start;
flex-direction: row;
}
.delete_project_link {
background-color: #ff3f3f;
}
.delete_project_link:hover {
background-color: #ff3f3f;
text-decoration: none;
color: #ffffff;
}
.delete_project_link_text {
width: 35vw;
height: 5vw;
display: flex;
align-items: center;
justify-content: center;
margin-top: 10px;
}
.link_back_block {
margin-right: 0.5vw;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
flex-wrap: nowrap;
}
.link_back {
background-color: #ffffff;
color: #000000;
width: 15vw;
height: 4.5vw;
vertical-align: middle;
border-radius: 5vw;
display: flex;
align-items: center;
justify-content: center;
}
.link_back:hover {
text-decoration: none;
color: #000000;
}
.link_back_text {
font-size: 1.5vw;
margin-top: 15px;
display: flex;
align-items: center;
justify-content: center;
}

View File

@ -1,106 +0,0 @@
.new_task_page {
height: 50vw;
background-color: #dcb495;
}
.form_data {
display: flex;
flex-direction: column;
margin-left: 2%;
}
.form_block {
display: flex;
align-items: center;
justify-content: center;
}
.form_data_button {
margin-top: 2.5vw;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.input_data {
color: #000000;
border: 0.1vw solid #595008;
height: 4.5vw;
min-height: 4.5vw;
width: 50vw;
background-color: #dbc3af;
border-radius: 4.5vw;
font-size: 1.3vw;
display: inline-flex;
align-items: center;
}
.form_label {
margin-top: 10px;
font-size: 1.3vw;
color: #ffffff;
font-weight: bold;
}
.description {
border-radius: 2vw !important;
width: 50vw;
max-height: 10vw !important;
}
.name_form_block {
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
}
.deadline {
width: 20vw;
}
.quest_button {
margin-top: 1vw;
margin-left: 5vw;
width: 20vw;
height: 5vw;
background-color: #000000;
color: #ffffff;
border-radius: 5vw;
vertical-align: middle;
font-size: 1.5vw;
}
.data_form_block {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
}
.deadline {
margin: 5px;
}
.link_back_block {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
flex-wrap: nowrap;
}
.link_back {
background-color: #ffffff;
color: #000000;
width: 15vw;
height: 4.5vw;
vertical-align: middle;
border-radius: 5vw;
display: flex;
align-items: center;
justify-content: center;
}
.link_back:hover {
text-decoration: none;
color: #000000;
}
.link_back_text {
font-size: 1.5vw;
margin-top: 15px;
display: flex;
align-items: center;
justify-content: center;
}
.delete_project_link {
background-color: #ff3f3f;
border: #ff3f3f;
}

View File

@ -1,106 +0,0 @@
#navbar {
display: none;
}
.login_page {
margin-top: -1.1vw;
display: flex;
justify-content: center;
align-items: center;
height: 75vw;
background: linear-gradient( rgba(0, 0, 0, 0.55), rgba(0, 0, 0, 0.55) ), url(../images/back_main_one.jpg);background-repeat: repeat; background-position: center;
}
.login {
width: 80%;
height: 50%;
margin-left: 10%;
margin-right: 10%;
background-color: #dbc3af;
display: flex;
flex-direction: column;
justify-content: space-evenly;
}
.login_form {
margin-bottom: 10%;
}
.header_title {
text-align: center;
color: #000000;
font-size: 3.5vw;
width: 100%;
}
.data_block {
width: 100%;
display: inline-flex;
justify-content: center;
}
.form_data, .form_data_button {
display: flex;
flex-direction: column;
margin-left: 2%;
margin-left: 2%;
}
.form_data_button {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.input_data {
color: #000000;
border: 0.1vw solid #595008;
height: 4.7vw;
width: 20vw;
background-color: #dbc3af;
border-radius: 5vw;
font-size: 1.3vw;
}
.input_button {
width: 20vw;
height: 5vw;
border-radius: 5vw;
vertical-align: middle;
}
.form-label {
font-size: 1.3vw;
}
.login_button {
background-color: #000000;
color: #ffffff;
font-size: 1.5vw;
margin-bottom: 5px;
}
.register_button {
margin-top: 5px;
background-color: #f5c99f;
width: 20vw;
height: 5vw;
color: #000000;
border-radius: 5vw;
vertical-align: middle;
font-size: 1.5vw;
}
.register_button:hover {
text-decoration: none;
color: #000000;
}
.register {
width: 100%;
text-align: center;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
.box {
margin-left: 9vw;
}
.recovery_button {
color: #ffffff;
font-size: 1.5vw;
transition: color 0.5s ease-in, border-bottom 0.5s ease-in;
}
.recovery_button:hover {
color: #694a2d;
border-bottom: 3px solid #f3c79e;
text-decoration: none;
}

View File

@ -1,279 +0,0 @@
main, html {
background-color: #dcb495;
}
#header_block {
position: absolute;
margin-bottom: 60%;
}
.header_block {
margin-top: -1.1vw;
width: 100%;
height: 75vw;
background-position: center;
display: flex;
justify-content: center;
flex-direction: column;
background: linear-gradient( rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0.85) ), url(../images/back_main_one.jpg);background-repeat: repeat; background-position: center;
}
.header_title {
margin-left: 10%;
color: #ffffff;
font: bold;
font-size: 4vw;
transition: font-size 0.5s ease-in, text-shadow 1s ease-in;
}
.header_title:hover {
font-size: 4.05vw;
text-shadow: 0px 0px 20px #ffffff;
}
.header_title_2 {
margin-left: 10%;
color: #afafaf;
font: bold;
font-size: 2vw;
transition: font-size 0.5s ease-in, text-shadow 1s ease-in;
}
.header_title_2:hover {
font-size: 2.05vw;
text-shadow: 0px 0px 20px #ffffff;
}
.header_buttons {
margin-top: 5%;
margin-left: 10%;
width: 90%;
display: flex;
justify-content: flex-start;
align-items: center;
}
.header_button {
background-color: #f5c99f;
width: 20vw;
height: 5vw;
color: #000000;
border-radius: 30px;
vertical-align: middle;
}
.header_button:hover {
text-decoration: none;
color: #000000;
}
#link_to_about {
margin-left: 40px;
background-color: #000000;
color: #ffffff;
border: 2px solid #ffffff;
}
.header_button_text {
width: 100%;
height: 100%;
text-align: center;
font-size: 1.5vw;
margin-top: 5%;
}
.body_block {
background-color: #dcb495;
}
.about_block {
margin-top: 10%;
margin-left: 5%;
width: 90%;
}
.about_title {
color: #000000;
font-size: 4vw;
}
.about_info_block {
margin-top: 50px;
width: 100%;
display: inline-flex;
justify-content: space-between;
}
.about_article_block {
display: flex;
flex-direction: column;
align-content: space-around;
}
.about_article {
display: inline-flex;
justify-content: flex-start;
align-items: center;
}
.article_image {
width: 10vw;
height: 10vw;
}
.main_image {
width: 40vw;
height: 26vw;
}
.article_text {
max-width: 70%;
margin-left: 10px;
font-size: 1.3vw;
}
.how_work_block {
margin-top: 20%;
margin-left: 5%;
width: 90%;
}
.how_work_title {
text-align: center;
color: #000000;
font-size: 4vw;
}
.how_work_info_block {
display: inline-flex;
justify-content: space-evenly;
margin-top: 100px;
}
.how_work_image {
width: 10vw;
height: 10vw;
}
.how_work_info, .how_work_article {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.how_work_article_title {
text-align: center;
font-size: 1.5vw;
}
.how_work_article_text {
text-align: center;
margin-top: 1vw;
font-size: 1.1vw;
}
.reg_block {
margin-top: 20%;
width: 100%;
height: 50vw;
}
.reg_content_block {
margin-top: 100px;
width: 90%;
margin-left: 5%;
display: inline-flex;
justify-content: space-between;
flex-wrap: nowrap;
align-content: center;
}
.reg_title {
text-align: center;
color: #000000;
font-size: 4vw;
}
.reg_content {
display: flex;
flex-direction: column;
align-self: center;
align-content: space-evenly;
}
.reg_button_group {
display: flex;
justify-content: flex-start;
align-items: center;
}
.reg_button_title {
margin-bottom: 10%;
color: #000000;
font-size: 2.5vw;
text-align: left;
}
.reg_button_info {
margin-top: 8%;
}
.reg_button_group {
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
}
.reg_button {
background-color: #a8886f;
width: 20vw;
height: 5vw;
color: #ffffff;
border-radius: 30px;
vertical-align: middle;
}
.reg_button:hover {
text-decoration: none;
color: #ffffff;
}
.reg_button_text {
width: 100%;
height: 100%;
text-align: center;
font-size: 1.5vw;
margin-top: 6%;
}
#link_to_start{
width: 18vw;
background-color:#f5d3b8;
}
#link_to_start_text {
color: #000000;
}
.feedback_block {
display: flex;
justify-content: center;
align-items: center;
height: 75vw;
background: linear-gradient( rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0.85) ), url(../images/back_main_two.jpg);background-repeat: repeat; background-position: center;
}
.feedback {
width: 50%;
height: 80%;
margin-left: 25%;
margin-right: 25%;
background-color: #dcb495;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
align-content: space-around;
}
.feedback_title {
width: 80%;
margin-bottom: 20%;
text-align: center;
color: #000000;
font-size: 3vw;
}
.feedback_logo {
margin-bottom: 20%;
width: 10vw;
height: 10vw;
}
.feedback_mail, .feedback_mail_link {
font-size: 1.5vw;
color: #000000;
transition: color 0.5s ease-in, border-bottom 0.5s ease-in;
}
.feedback_mail_link:hover {
color: #694a2d;
border-bottom: 3px solid #f3c79e;
text-decoration: none;
}
.scroll_button {
position: fixed;
width: 50px;
height: 50px;
background-color: #e5e5e5;
border-radius: 2vw;
margin-left: 95%;
margin-top: 45%;
transition: background-color 0.5s ease-in;
}
.scroll_image {
margin-top: 5px;
margin-left: 5px;
width: 40px;
height: 40px;
border-radius: 2vw;
}
.scroll_button:hover {
background-color: #1c59fe;
}

View File

@ -1,162 +0,0 @@
.new_project_page {
height: 120vw;
background-color: #dcb495;
}
.form_data, .form_data_button {
display: flex;
flex-direction: column;
margin-left: 2%;
}
.form_data_button {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.input_data {
color: #000000;
border: 0.1vw solid #595008;
height: 4.5vw;
min-height: 4.5vw;
width: 35vw;
background-color: #dbc3af;
border-radius: 4.5vw;
font-size: 1.3vw;
display: inline-flex;
align-items: center;
}
.input_button {
width: 35vw;
height: 5vw;
border-radius: 5vw;
vertical-align: middle;
}
.form_label {
margin-top: 10px;
font-size: 1.3vw;
color: #ffffff;
font-weight: bold;
}
.description {
border-radius: 2vw !important;
width: 50vw;
}
.padding_data {
padding-top: 1vw;
padding-left: 1vw;
}
.label_data {
padding-left: 0.8vw;
width: 50vw;
}
.project_button {
margin-top: 15px;
width: 35vw;
height: 5vw;
background-color: #000000;
color: #ffffff;
border-radius: 5vw;
vertical-align: middle;
font-size: 1.5vw;
}
.collaborator_block {
width: 30%;
height: 20vw;
background-color: #EDCBB0;
border-radius: 2vw;
overflow-y: auto;
}
.user {
width: 30vw;
height: 3.5vw;
background-color: #ffffff;
border: 2px solid #9E795A;
border-radius: 3vw;
margin-top: 5px;
display: inline-flex;
justify-content: space-between;
}
.user_logo {
margin-left: 3px;
width: 3vw;
height: 3vw;
border-radius: 5vw;
background-color: #000000;
}
.user_names {
margin-left: 9px;
margin-top: 10px;
overflow-x: auto;
}
.name_form_block {
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
}
.data_form_block {
width: 100%;
display: flex;
align-items: center;
justify-content: center;
flex-direction: row;
}
.buttons_form_block {
width: 45%;
display: flex;
flex-direction: column;
align-items: center;
}
.staff_form_block, .collaborator_block {
margin-top: 10px;
width: 60%;
height: 20vw;
display: flex;
align-items: center;
justify-content: center;
}
.staff_block {
margin: 5%;
width: 90%;
height: 20vw;
}
.choose_user {
align-self: flex-end;
margin-bottom: 1.1vw;
width: 10%;
}
.user_data {
display: inline-flex;
align-items: center;
justify-content: flex-start;
flex-direction: row;
}
.link_back_block {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
flex-wrap: nowrap;
}
.link_back {
background-color: #ffffff;
color: #000000;
width: 15vw;
height: 4.5vw;
vertical-align: middle;
border-radius: 5vw;
display: flex;
align-items: center;
justify-content: center;
}
.link_back:hover {
text-decoration: none;
color: #000000;
}
.link_back_text {
font-size: 1.5vw;
margin-top: 15px;
display: flex;
align-items: center;
justify-content: center;
}

View File

@ -1,101 +0,0 @@
.new_task_page {
height: 50vw;
background-color: #dcb495;
}
.form_data {
display: flex;
flex-direction: column;
margin-left: 2%;
}
.form_block {
display: flex;
align-items: center;
justify-content: center;
}
.form_data_button {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.input_data {
color: #000000;
border: 0.1vw solid #595008;
height: 4.5vw;
min-height: 4.5vw;
width: 50vw;
background-color: #dbc3af;
border-radius: 4.5vw;
font-size: 1.3vw;
display: inline-flex;
align-items: center;
}
.form_label {
margin-top: 10px;
font-size: 1.3vw;
color: #ffffff;
font-weight: bold;
}
.description {
border-radius: 2vw !important;
width: 50vw;
max-height: 10vw;
}
.name_form_block {
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
}
.deadline {
width: 20vw;
}
.quest_button {
margin-top: 5vw;
margin-left: 5vw;
width: 20vw;
height: 5vw;
background-color: #000000;
color: #ffffff;
border-radius: 5vw;
vertical-align: middle;
font-size: 1.5vw;
}
.data_form_block {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
}
.deadline {
margin: 5px;
}
.link_back_block {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
flex-wrap: nowrap;
}
.link_back {
background-color: #ffffff;
color: #000000;
width: 15vw;
height: 4.5vw;
vertical-align: middle;
border-radius: 5vw;
display: flex;
align-items: center;
justify-content: center;
}
.link_back:hover {
text-decoration: none;
color: #000000;
}
.link_back_text {
font-size: 1.5vw;
margin-top: 15px;
display: flex;
align-items: center;
justify-content: center;
}

View File

@ -1,73 +0,0 @@
.navbar {
display: none !important;
}
.page_error {
margin-top: -1.4vw;
height: 55vw;
background-color: #dcb495;
display: flex;
flex-direction: column;
}
.header_block {
display: flex;
flex-direction: column;
width: 80%;
height: 15vw;
margin-left: 10%;
margin-top: 80px;
justify-content: space-around;
}
.header {
display: flex;
align-items: center;
justify-content: center;
}
.line_top {
height: 0.03vw;
background: #000000;
width: 32vw;
}
.header_rect {
width: 15vw;
height: 3.3vw;
background-color: #000000;
display: flex;
justify-content: center;
align-items: center;
}
.header_rect_text {
color: #ffffff;
font-size: 1.6vw;
}
.header_title {
color: #000000;
font-size: 3vw;
}
.line_bottom {
height: 0.03vw;
background: #000000;
width: 100%;
}
.link_block {
width: 100%;
margin-top: 50px;
display: flex;
justify-content: center;
}
.block_to_home {
width: 20vw;
height: 20vw;
background-color: #000000;
display: flex;
justify-content: center;
align-items: center;
border-radius: 10vw;
}
.link_to_home {
height: 12.3vw;
width: 15vw;
}
.link_image {
height: 12.3vw;
width: 15vw;
}

View File

@ -1,176 +0,0 @@
.profile_page {
display: flex;
flex-direction: column;
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 {
margin-top: 5vw;
height: 65vw;
width: 85%;
margin-left: 7.5%;
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;
}
.header_profile {
display: inline;
flex-direction: column;
width: 15vw;
height: 15vw;
margin-top: 50px;
align-self: center;
}
.user_photo {
width: 15vw;
height: 15vw;
border: 0.2vw solid #ffffff;
border-radius: 2vw;
}
.edit_form {
align-self: center;
margin-top: 20px;
width: 80%;
}
form {
display: flex;
flex-direction: column;
}
.form_data_button {
align-self: center;
}
.form_blocks {
width: 100%;
margin-top: 50px;
display: inline-flex;
justify-content: space-evenly;
}
.form_data, .form_data_button {
display: flex;
flex-direction: column;
margin-left: 2%;
}
.form_data_button {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.input_data {
color: #000000;
border: 0.1vw solid #595008;
height: 4.5vw;
min-height: 4.5vw;
width: 20vw;
background-color: #dbc3af;
border-radius: 5vw;
font-size: 1.3vw;
display: inline-flex;
align-items: center;
}
.input_button {
width: 10vw;
height: 5vw;
border-radius: 5vw;
vertical-align: middle;
}
.form-label {
font-size: 1.3vw;
color: #ffffff;
font-weight: bold;
}
.profile_button {
margin-top: 15px;
width: 20vw;
height: 5vw;
background-color: #000000;
color: #ffffff;
border-radius: 5vw;
vertical-align: middle;
font-size: 1.5vw;
}
.profile_button:hover {
color: #ffffff;
text-decoration: none;
}
#delete_button {
margin-top: 45px;
}
.dop_data {
padding-top:15px;
padding-left: 15px;
}
#logout_button {
color: #ffffff;
background-color:#ff3f3f;
}
#logout_button:hover {
text-decoration: none;
color: #ffffff;
}
.profile_button_text {
width: 100%;
height: 100%;
text-align: center;
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: 5vw;
}
.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%;
}
.about {
border-radius: 2vw !important;
}
.profile_button_text {
color: #ffffff;
}

View File

@ -1,448 +0,0 @@
.projects_page {
height: 120vw;
background-color: #dcb495;
display: flex;
flex-direction: column;
align-items: center;
}
.project_header {
height: 25vw;
width: 100%;
display: flex;
align-items: center;
justify-content: space-around;
}
.project_logo {
margin-right: 4vw;
margin-top: 30px;
width: 15vw;
height: 15vw;
border: 0.2vw solid #ffffff;
border-radius: 2vw;
}
.brand_block {
height: 25vw;
margin-left: -8vw;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
color: #dcb495;
}
.name_project {
font-size: 3vw !important;
margin-right: 4vw;
overflow-y: hidden;
overflow-x: auto;
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 {
display: flex;
align-items: center;
justify-content: center;
}
.edit_button {
background-color: #9E795A;
border: #9E795A;
width: 15vw;
height: 5vw;
color: #ffffff;
border-radius: 5vw;
vertical-align: middle;
font-size: 1.5vw;
}
.edit_button_text {
color: #ffffff;
height: 5vw;
margin-top: 25%;
}
.edit_button_link {
width: 15vw;
height: 5vw;
display: flex;
align-items: center;
justify-content: center;
}
.edit_button_link:hover {
text-decoration: none;
color: #ffffff;
}
.collaborator_block {
width: 95%;
height: 25vw;
background-color: #EDCBB0;
border-radius: 2vw;
overflow-y: auto;
}
.staff_block {
margin: 20px;
}
.user {
width: 24vw;
height: 3.5vw;
background-color: #ffffff;
border: 2px solid #9E795A;
border-radius: 3vw;
margin-top: 5px;
display: flex;
align-items: center;
justify-content: flex-start;
flex-direction: row;
flex-wrap: no-wrap;
}
.user_logo {
margin-left: 3px;
width: 3vw;
height: 3vw;
border-radius: 5vw;
background-color: #000000;
}
.user_names {
margin-left: 9px;
margin-top: 10px;
overflow-x: auto;
color: #000000 !important;
font-size: 1.5vw;
}
.link_to_user {
width: 26vw;
height: 3.5vw;
display: flex;
align-items: center;
justify-content: flex-start;
flex-direction: row;
flex-wrap: no-wrap;
text-decoration: none;
}
.link_to_user:hover {
text-decoration: none;
}
.head_staff_block {
display: flex;
width: 30vw;
flex-direction: column;
align-items: center;
}
.header_title, .header_title_2 {
text-align: center;
color: #000000;
font-size: 3vw;
margin-bottom: 15px;
}
.header_title_2 {
width: 51vw !important;
}
.header_title {
width: 100%;
}
.header_task_block {
width: 60vw;
height: 30vw;
display: flex;
flex-direction: column;
align-items: center;
}
.task_block, .list_files_block {
background-color: #EDCBB0;
width: 95%;
height: 25vw;
border-radius: 2vw;
overflow-y: auto;
}
.task {
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 {
display: flex;
justify-content: space-evenly;
align-items: flex-start;
flex-direction: row;
}
.new_task_block {
width: 13vw;
height: 5vw;
background-color: #000000;
border: 2px solid #ffffff;
border-radius: 3vw;
margin-left: 2vw;
margin-bottom: 0.5vw;
}
.new_task_link {
color: #ffffff;
width: 13vw;
height: 5vw;
}
.new_task_link:hover {
text-decoration: none;
color: #ffffff;
}
.new_task_text {
width: 13vw;
height: 5vw;
text-align: center;
font-size: 1.5vw;
color: #ffffff;
display: flex;
align-items: center;
justify-content: center;
}
.new_task_image {
width: 4.5vw;
height: 4.5vw;
}
.head_task {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
width: 60vw;
justify-content: center;
align-items: flex-start;
}
.list_quests {
width: 95%;
margin-left: 2.5%;
margin-top: 0.5vw;
overflow-y: hidden;
overflow-x: hidden;
}
.quest_header_button {
height: 4.5vw;
width: 100%;
text-align: left;
border-radius: 5vw;
background-color: #9E795A;
border-color: #9E795A;
border-bottom-color: #9E795A;
color: #ffffff;
display: flex;
align-items: center;
}
.quest_button_block_one {
width: 68%;
display: flex;
justify-content: space-between;
align-items: flex-start;
}
.quest_title_block {
width: 96%;
height: 4vw;
display: flex;
align-items: center;
}
.quest_title {
overflow-y: hidden;
overflow-x: auto;
max-height: 5vw;
font-size: 2.1vw !important;
display: flex;
align-items: center;
margin-top: 0.8vw;
margin-left: 1.8vw;
font-size: 3.5vw;
white-space: nowrap
}
.quest_title::-webkit-scrollbar {
height: 0.8vw; /* ширина scrollbar */
}
.quest_title::-webkit-scrollbar-thumb {
background-color: #d49d51; /* цвет плашки */
border-radius: 5vw; /* закругления плашки */
border: 0.25vw solid #ffffff;
}
.deadline_block {
border-radius: 5vw !important;
width: 15vw !important;
height: 3vw !important;
margin-top: 2%;
font-size: 1vw;
display: flex;
color: #000000 !important;
align-items: center;
justify-content: center;
flex-direction: row;
}
.quest_body_block {
background-color: #9E795A;
width: 100%;
height: 20vw;
border-radius: 2vw;
display: flex;
align-items: center;
justify-content: center;
}
.quest_body {
width: 94%;
height: 94%;
display: flex;
align-items: center;
justify-content: space-around;
}
.quest_description_block {
width: 70%;
height: 90%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.quest_description {
width: 100%;
height: 100%;
background-color: #dcb495;
border-radius: 2vw;
overflow-y: auto;
}
.quest_description::-webkit-scrollbar, .task_block::-webkit-scrollbar-thumb {
width: 0.8vw !important;
}
.quest_description::-webkit-scrollbar-thumb, .task_block::-webkit-scrollbar-thumb {
background-color: #d49d51 !important; /* цвет плашки */
border-radius: 5vw !important; /* закругления плашки */
border: 0.25vw solid #ffffff !important;
}
.quest_description_text {
margin: 20px;
}
.quest_solve_button {
width: 13vw;
height: 5vw;
background-color: #000000;
border: 2px solid #ffffff;
border-radius: 3vw;
}
.quest_solve_link:hover {
text-decoration: none;
color: #000000;
}
.quest_solve_text {
width: 13vw;
height: 5vw;
text-align: center;
font-size: 1.5vw;
color: #ffffff;
display: flex;
align-items: center;
justify-content: center;
}
#quest_solve_link_id {
display: none;
}
.link_back_block, .link_edit_block {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
flex-wrap: nowrap;
}
.link_back, .link_edit {
background-color: #ffffff;
color: #000000;
width: 15vw;
height: 4.5vw;
vertical-align: middle;
border-radius: 5vw;
display: flex;
align-items: center;
justify-content: center;
}
.link_edit {
width: 13vw;
}
.link_back:hover, .link_edit:hover {
text-decoration: none;
color: #000000;
}
.link_back_text, .link_edit_text {
font-size: 1.5vw;
margin-top: 15px;
display: flex;
align-items: center;
justify-content: center;
}
.files_block {
display: flex;
flex-direction: column;
align-items: center;
width: 95%;
height: 50vw;
}
.list_files {
margin: 2vw;
}
.files_title {
text-align: center;
color: #000000;
font-size: 4vw;
}
.file {
width: 98%;
display: flex;
background-color: #9E795A;
margin: 0.5vw;
align-items: center;
justify-content: space-between;
flex-direction: row;
height: 4.5vw;
border-radius: 2vw;
}
.file_head {
width: 30vw;
margin-left: 1vw;
height: 4vw;
background-color: #9E795A !important;
overflow-y: hidden;
overflow-x: auto;
}
.file_head_path, .file_path {
font-size: 1.5vw;
color: #ffffff !important;
font-weight: bold;
height: 3vw;
display: flex;
align-items: flex-start;
background-color: #9E795A !important;
}
.file_buttons {
margin-right: 2vw;
}
.file_delete, .file_download, .upload_button {
border-radius: 1vw !important;
margin: 1vw;
width: 8vw;
height: 3vw;
}
.file_delete {
background-color: hsla(0, 100%, 62%, 0.785) !important;
border-color: hsla(0, 100%, 62%, 0.785) !important;
}
.button_text {
font-size: 1.3vw;
}
.quest_buttons_block {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
height: 15vw;
margin-top: 3vw;
}
.link_edit_block {
margin-top: 1vw;
}

View File

@ -1,318 +0,0 @@
.projects_page {
height: 120vw;
background-color: #dcb495;
}
.header_block {
width: 100%;
height: 20vw;
background-position: center;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background: linear-gradient( rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0.85) ), url(../images/back_project_one.jpg);background-repeat: repeat; background-position: center;
}
.header_title {
color: #ffffff;
font-size: 7vw;
}
.header_title_2 {
color: #ffffff;
text-align: center;
font-size: 1.5vw;
width: 50vw;
}
.find_block {
width: 100%;
height: 15vw;
background-color: #dcb495;
display: flex;
align-items: center;
flex-direction: row;
justify-content: center;
}
.find_input_text {
margin-right: 12px;
background-color: #EDCBB0;
border: #EDCBB0;
width: 45vw;
height: 5vw;
color: #776658;
border-radius: 5vw;
vertical-align: middle;
font-size: 1.5vw;
}
.find_input_button {
margin-left: 12px;
background-color: #9E795A;
border: #9E795A;
width: 10vw;
height: 5vw;
color: #ffffff;
border-radius: 5vw;
vertical-align: middle;
font-size: 1.5vw;
}
.list_project_block {
margin-left: 3%;
border: 0.2vw solid #694a2d;
border-radius: 4.5vw;
width: 94%;
height: 45vw;
overflow-y: auto;
padding-top: 2vw;
}
.list_project_block::-webkit-scrollbar {
width: 0.8vw; /* ширина scrollbar */
}
.list_project_block::-webkit-scrollbar-thumb {
background-color: #d49d51; /* цвет плашки */
border-radius: 5vw; /* закругления плашки */
border: 0.25vw solid #ffffff;
}
.list_project {
width: 95%;
margin-left: 2.5%;
margin-top: 0.5vw;
overflow-y: hidden;
overflow-x: hidden;
}
.project_header_button {
height: 5.5vw;
width: 100%;
text-align: left;
border-radius: 5vw;
background-color: #9E795A;
border-color: #9E795A;
border-bottom-color: #9E795A;
color: #ffffff;
display: flex;
align-items: center;
}
.project_description_block {
background-color: #9E795A;
width: 100%;
height: 20vw;
border-radius: 2vw;
}
.project_logo_block {
width: 4.5vw;
height: 4.5vw;
border: 0.3vw solid #ffffff;
background-color: #ffffff;
border-radius: 2vw;
display: flex;
justify-content: center;
align-items: center;
}
.project_logo {
width: 4vw;
height: 4vw;
border-radius: 5vw;
}
.project_title_block {
width: 100%;
height: 4vw;
margin-left: 1vw;
}
.project_title {
font-size: 3.5vw;
overflow-y: hidden;
overflow-x: auto;
white-space: nowrap
}
.project_title::-webkit-scrollbar {
height: 0.8vw; /* ширина scrollbar */
}
.project_title::-webkit-scrollbar-thumb {
background-color: #d49d51; /* цвет плашки */
border-radius: 5vw; /* закругления плашки */
border: 0.25vw solid #ffffff;
}
.project_button_block_one {
width: 90%;
display: flex;
justify-content: flex-start;
align-items: flex-start;
}
.project_description {
width: 98%;
height: 100%;
margin-left: 1%;
display: flex;
flex-direction: row;
flex-wrap: nowrap;
align-content: center;
align-items: center;
justify-content: space-evenly;
}
.collaborator_block {
width: 22%;
height: 90%;
background-color: #EDCBB0;
border-radius: 2vw;
overflow-y: auto;
}
.collaborator_block::-webkit-scrollbar {
width: 0.8vw; /* ширина scrollbar */
}
.collaborator_block::-webkit-scrollbar-thumb {
background-color: #d49d51; /* цвет плашки */
border-radius: 5vw; /* закругления плашки */
border: 0.25vw solid #ffffff;
}
.description_block {
width: 48%;
height: 90%;
display: flex;
flex-direction: column;
align-items: center;
flex-wrap: nowrap;
}
.description_header_text {
font-size: 2vw;
}
.description_block_text {
overflow-y: auto;
overflow-x: hidden;
width: 90% !important;
height: 80% !important;
width: 50%;
background-color: #dcb495;
border-radius: 2vw;
}
.description_block_text::-webkit-scrollbar {
width: 0.8vw; /* ширина scrollbar */
}
.description_block_text::-webkit-scrollbar-thumb {
background-color: #d49d51; /* цвет плашки */
border-radius: 5vw; /* закругления плашки */
border: 0.25vw solid #ffffff;
}
.description_text {
width: 100% !important;
height: 100%;
font-size: 1.5vw;
overflow-wrap: normal; /* не поддерживает IE, Firefox; является копией word-wrap */
word-wrap: normal;
word-break: normal; /* не поддерживает Opera12.14, значение keep-all не поддерживается IE, Chrome */
line-break: auto; /* нет поддержки для русского языка */
hyphens: manual; /* значение auto не поддерживается Chrome */
margin: 2vw;
}
.open_project_block {
width: 20%;
height: 90%;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
flex-wrap: nowrap;
}
.open_button {
background-color: #ffffff;
color: #000000;
width: 15vw;
height: 4.5vw;
vertical-align: middle;
border-radius: 5vw;
display: flex;
align-items: center;
justify-content: center;
}
.open_button:hover {
text-decoration: none;
color: #000000;
}
.open_button_text {
font-size: 1.5vw;
margin-top: 15px;
display: flex;
align-items: center;
justify-content: center;
}
.open_button, .open_button_link {
display: flex;
align-items: center;
justify-content: center;
width: 15vw;
height: 4.5vw;
color: #000000;
}
.open_button_link:hover {
text-decoration: none;
color: #000000;
}
.staff_block {
margin: 20px;
}
.user {
width: 16vw;
height: 3.5vw;
background-color: #ffffff;
border: 2px solid #9E795A;
border-radius: 3vw;
margin-top: 5px;
display: flex;
align-items: center;
justify-content: flex-start;
flex-direction: row;
flex-wrap: no-wrap;
}
.user_logo {
margin-left: 3px;
width: 3vw;
height: 3vw;
border-radius: 5vw;
background-color: #000000;
}
.user_names {
margin-left: 9px;
margin-top: 10px;
overflow-x: auto;
color: #000000 !important;
}
.new_project_button, .find_project_button {
width: 13vw;
height: 5vw;
background-color: #000000;
border: 2px solid #ffffff;
border-radius: 3vw;
margin-left: 2vw;
}
.new_project_button_text, .find_project_button_text {
width: 13vw;
height: 5vw;
text-align: center;
font-size: 1.5vw;
color: #ffffff;
display: flex;
align-items: center;
justify-content: center;
}
.new_project_button_link, find_project_button_linkk {
width: 13vw;
height: 5vw;
}
.new_project_button_link:hover, .find_project_button_linkk:hover {
text-decoration: none;
color: #000000;
}
.form_project_block {
display: flex;
align-items: center;
justify-content: center;
}
.link_to_user {
width: 16vw;
height: 3.5vw;
display: flex;
align-items: center;
justify-content: flex-start;
flex-direction: row;
flex-wrap: no-wrap;
text-decoration: none;
}
.link_to_user:hover {
text-decoration: none;
}

View File

@ -1,62 +0,0 @@
.recovery_page {
height: 60vw;
background-color: #dcb495;
margin-top: -1.1vw;
}
.recovery {
width: 100%;
height: 60vw;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.header_title {
text-align: center;
color: #000000;
font-size: 3.5vw;
width: 100%;
}
.recovery_form {
margin-top: 55px;
width: 70%;
display: flex;
}
.data_block {
width: 100%;
height: 100%;
display: flex;
flex-direction: row;
align-items: flex-end;
flex-wrap: nowrap;
justify-content: space-evenly;
}
.form_data {
display: flex;
flex-direction: column;
margin-left: 2%;
margin-left: 2%;
height: 100%;
}
.form-label {
font-size: 1.3vw;
}
.input_data {
color: #000000;
border: 0.1vw solid #595008;
height: 4.7vw;
width: 30vw;
background-color: #dbc3af;
border-radius: 5vw;
font-size: 1.3vw;
}
.recovery_button {
background-color: #000000;
color: #ffffff;
min-width: 20vw !important;
height: 5vw;
border-radius: 5vw;
vertical-align: middle;
font-size: 1.5vw;
margin-left: 20px;
}

View File

@ -1,84 +0,0 @@
#navbar {
display: none;
}
#btn_cooc {
display: none
}
.register_page {
margin-top: -1.1vw;
display: flex;
justify-content: center;
align-items: center;
height: 75vw;
background: linear-gradient( rgba(0, 0, 0, 0.55), rgba(0, 0, 0, 0.55) ), url(../images/back_main_one.jpg);background-repeat: repeat; background-position: center;
}
.register {
width: 70%;
height: 70%;
margin-left: 15%;
margin-right: 15%;
background-color: #dbc3af;
display: flex;
flex-direction: column;
justify-content: space-evenly;
}
.register_form {
margin-bottom: 10%;
}
.header_title {
text-align: center;
color: #000000;
font-size: 3.5vw;
width: 100%;
}
.data_block {
width: 100%;
display: flex;
flex-direction: column;
flex-direction: column;
justify-content: center;
align-items: center;
}
.form_data, .form_data_button {
display: flex;
flex-direction: column;
margin-left: 2%;
margin-left: 2%;
}
.form_data_button {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.input_data {
color: #000000;
border: 0.1vw solid #595008;
height: 4.5vw;
width: 60vw;
background-color: #dbc3af;
border-radius: 5vw;
font-size: 1.3vw;
}
.input_button {
width: 20vw;
height: 5vw;
border-radius: 5vw;
vertical-align: middle;
}
.form-label {
font-size: 1.3vw;
}
.register_button {
margin-top: 15px;
width: 20vw;
height: 5vw;
background-color: #000000;
color: #ffffff;
border-radius: 5vw;
vertical-align: middle;
font-size: 1.5vw;
}
.box {
margin-left: 9vw;
}

View File

@ -1,253 +0,0 @@
.showscale_page {
height: 120vw;
background-color: #dcb495;
display: flex;
flex-direction: column;
align-items: center;
}
.header_block {
width: 100%;
height: 20vw;
background-position: center;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background: linear-gradient( rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0.85) ), url(../images/showcase.jpg);background-repeat: repeat; background-position: center;
}
.header_title {
color: #ffffff;
font-size: 7vw;
}
.header_title_2 {
color: #ffffff;
text-align: center;
font-size: 1.5vw;
width: 50vw;
}
.templates_block {
width: 95%;
margin-top: 5vw;
}
.templates_title, .links_title {
display: flex;
justify-content: center;
font-size: 3.5vw;
}
.templates_list {
height: 30vw;
margin-top: 2vw;
border: 0.2vw solid #694a2d;
border-radius: 2vw;
overflow-x: auto;
overflow-y: hidden;
display: flex;
align-items: center;
justify-content: flex-start;
}
.templates_list::-webkit-scrollbar {
height: 1vw; /* ширина scrollbar */
}
.templates_list::-webkit-scrollbar-thumb {
background-color: #d49d51; /* цвет плашки */
border-radius: 5vw; /* закругления плашки */
border: 0.25vw solid #ffffff;
}
.template {
display: flex;
justify-content: start;
flex-direction: column;
align-items: center;
min-height: 28vw;
min-width: 25vw;
max-width: 25vw;
background-color: #9E795A;
margin: 1vw;
border-radius: 2vw;
}
.template_title {
margin-top: 1vw;
max-width: 90%;
text-align: center;
color: #ffffff;
font-size: 2vw;
font-weight: 500;
overflow-y: hidden;
overflow-x: auto;
white-space: nowrap
}
.template_title::-webkit-scrollbar {
height: 0.8vw; /* ширина scrollbar */
}
.template_title::-webkit-scrollbar-thumb {
background-color: #d49d51; /* цвет плашки */
border-radius: 5vw; /* закругления плашки */
border: 0.25vw solid #ffffff;
}
.description {
background-color: #EDCBB0;
max-width: 90;
height: auto;
height: 15vw;
min-width: 85%;
max-width: 85%;
border-radius: 0.5vw;
}
.description_text {
margin: 0.8vw;
overflow-wrap: normal; /* не поддерживает IE, Firefox; является копией word-wrap */
word-wrap: normal;
word-break: normal; /* не поддерживает Opera12.14, значение keep-all не поддерживается IE, Chrome */
line-break: auto; /* нет поддержки для русского языка */
hyphens: manual;
}
.description {
overflow-y: auto;
}
.description::-webkit-scrollbar {
width: 0.8vw; /* ширина scrollbar */
}
.description::-webkit-scrollbar-thumb {
background-color: #d49d51; /* цвет плашки */
border-radius: 5vw; /* закругления плашки */
border: 0.25vw solid #ffffff;
}
.open_button {
margin-top: 1vw;
background-color: #ffffff;
color: #000000;
width: 15vw;
height: 4.5vw;
vertical-align: middle;
border-radius: 5vw;
display: flex;
align-items: center;
justify-content: center;
}
.open_button:hover {
text-decoration: none;
color: #000000;
}
.open_button_text {
font-size: 1.5vw;
margin-top: 15px;
display: flex;
align-items: center;
justify-content: center;
}
.open_button, .open_button_link {
display: flex;
align-items: center;
justify-content: center;
width: 15vw;
height: 4.5vw;
color: #000000;
}
.open_button_link:hover {
text-decoration: none;
color: #000000;
}
.links_block {
margin-top: 4vw;
height: 17vw;
display: flex;
flex-direction: column;
align-items: center;
width: 100%;
}
.link_list {
width: 95%;
background-color: #EDCBB0;
height: 16vw;
border-radius: 1.5vw;
display: flex;
align-items: center;
overflow-x: auto;
overflow-y: hidden;
}
.link_list::-webkit-scrollbar {
height: 0.8vw; /* ширина scrollbar */
}
.link_list::-webkit-scrollbar-thumb {
background-color: #d49d51; /* цвет плашки */
border-radius: 5vw; /* закругления плашки */
border: 0.25vw solid #ffffff;
}
.link_block {
margin: 1vw;
width: 25vw;
height: 6vw;
background-color: #9E795A;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
border-radius: 1vw;
}
.link {
width: auto;
min-width: 15vw;
max-width: 20vw;
height: 6vw;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
}
.link:hover {
text-decoration: none;
color: #ffffff;
}
.link_text {
margin-top: 1vw;
width: 13vw;
height: 3.5vw;
color: #ffffff;
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 {
border-radius: 1vw !important;
margin: 1vw;
width: 8vw;
height: 3vw;
}
.link_delete, .repeal_button {
background-color: hsla(0, 100%, 62%, 0.785) !important;
border-color: hsla(0, 100%, 62%, 0.785) !important;
}
.delete_text {
font-size: 1.3vw;
}
.header_link {
display: flex;
flex-direction: column;
align-items: center;
}
.form_link, .file_form {
width: 90%;
}
.link_form {
display: flex;
align-items: center;
flex-direction: row;
justify-content: center;
}
.form_data {
margin: 0.5vw;
}

View File

@ -1,262 +0,0 @@
.template_page {
height: 120vw;
background-color: #dcb495;
display: flex;
flex-direction: column;
align-items: center;
}
.link_back_block {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
flex-wrap: nowrap;
}
.link_back {
background-color: #ffffff;
color: #000000;
width: 15vw;
height: 4.5vw;
vertical-align: middle;
border-radius: 5vw;
display: flex;
align-items: center;
justify-content: center;
}
.link_back:hover {
text-decoration: none;
color: #000000;
}
.link_back_text {
font-size: 1.5vw;
margin-top: 15px;
display: flex;
align-items: center;
justify-content: center;
}
.project_logo {
margin-top: 30px;
width: 15vw;
height: 15vw;
border: 0.2vw solid #ffffff;
border-radius: 2vw;
}
.brand_block {
height: 25vw;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
color: #000000;
}
.name_project {
font-size: 3vw !important;
overflow-y: hidden;
overflow-x: auto;
white-space: nowrap
}
.header_task_block {
width: 60vw;
height: 30vw;
display: flex;
flex-direction: column;
align-items: center;
}
.task_block, .list_files_block {
background-color: #EDCBB0;
width: 95%;
height: 25vw;
border-radius: 2vw;
overflow-y: auto;
}
.task {
margin: 20px;
}
.body_block {
display: flex;
justify-content: space-evenly;
align-items: center;
flex-direction: column;
}
.head_task {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
width: 60vw;
justify-content: center;
align-items: flex-start;
}
.list_quests {
width: 95%;
margin-left: 2.5%;
margin-top: 0.5vw;
overflow-y: hidden;
overflow-x: hidden;
}
.quest_header_button {
height: 4.5vw;
width: 100%;
text-align: left;
border-radius: 5vw;
background-color: #9E795A;
border-color: #9E795A;
border-bottom-color: #9E795A;
color: #ffffff;
display: flex;
align-items: center;
}
.quest_button_block_one {
width: 95%;
display: flex;
justify-content: space-between;
align-items: flex-start;
}
.quest_title_block {
width: 100%;
height: 4vw;
display: flex;
align-items: center;
}
.quest_title {
overflow-y: hidden;
overflow-x: auto;
max-height: 4vw;
font-size: 1.5vw;
display: flex;
align-items: center;
margin-top: 0.7vw;
margin-left: 1.8vw;
font-size: 3.5vw;
white-space: nowrap
}
.quest_title::-webkit-scrollbar {
height: 0.8vw; /* ширина scrollbar */
}
.quest_title::-webkit-scrollbar-thumb {
background-color: #d49d51; /* цвет плашки */
border-radius: 5vw; /* закругления плашки */
border: 0.25vw solid #ffffff;
}
.quest_body_block {
background-color: #9E795A;
width: 100%;
height: 20vw;
border-radius: 2vw;
display: flex;
align-items: center;
justify-content: center;
}
.quest_body {
width: 94%;
height: 94%;
display: flex;
align-items: center;
justify-content: space-around;
}
.quest_description_block {
width: 100%;
height: 90%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.quest_description {
width: 100%;
height: 100%;
background-color: #dcb495;
border-radius: 2vw;
overflow-y: auto;
}
.quest_description::-webkit-scrollbar, .task_block::-webkit-scrollbar-thumb {
width: 0.8vw !important;
}
.quest_description::-webkit-scrollbar-thumb, .task_block::-webkit-scrollbar-thumb {
background-color: #d49d51 !important; /* цвет плашки */
border-radius: 5vw !important; /* закругления плашки */
border: 0.25vw solid #ffffff !important;
}
.quest_description_text {
margin: 20px;
}
.files_block {
display: flex;
flex-direction: column;
align-items: center;
width: 100%;
height: 35vw;
}
.list_files {
margin: 2vw;
}
.files_title {
text-align: center;
color: #000000;
font-size: 4vw;
}
.file {
width: 98%;
display: flex;
background-color: #9E795A;
margin: 0.5vw;
align-items: center;
justify-content: space-between;
flex-direction: row;
height: 4.5vw;
border-radius: 2vw;
}
.file_head {
width: 30vw;
margin-left: 1vw;
height: 4vw;
background-color: #9E795A !important;
overflow-y: hidden;
overflow-x: auto;
}
.file_head_path, .file_path {
font-size: 1.5vw;
color: #ffffff !important;
font-weight: bold;
height: 3vw;
display: flex;
align-items: flex-start;
background-color: #9E795A !important;
}
.file_buttons {
margin-right: 2vw;
}
.file_delete, .file_download, .upload_button {
border-radius: 1vw !important;
margin: 1vw;
width: 8vw;
height: 3vw;
}
.file_delete {
background-color: hsla(0, 100%, 62%, 0.785) !important;
border-color: hsla(0, 100%, 62%, 0.785) !important;
}
.button_text {
font-size: 1.3vw;
}
.create_project_block {
width: 13vw;
height: 5vw;
background-color: #000000;
border: 2px solid #ffffff;
border-radius: 3vw;
margin-left: 2vw;
}
.create_link:hover {
text-decoration: none;
color: #000000;
}
.create_text {
width: 13vw;
height: 5vw;
text-align: center;
font-size: 1.5vw;
color: #ffffff;
display: flex;
align-items: center;
justify-content: center;
}

View File

@ -1,263 +0,0 @@
.user_view_page {
height: 120vw;
background-color: #dcb495;
}
.user_data_block {
width: 85%;
height: 65vw;
margin-left: 7.5%;
display: flex;
flex-direction: column;
align-items: center;
background-color:#a8886f;
border-radius: 4vw;
}
.user_photo {
margin-top: 30px;
width: 15vw;
height: 15vw;
border: 0.2vw solid #ffffff;
border-radius: 2vw;
}
.first_data_block {
width: 100%;
display: flex;
align-items: center;
justify-content: space-evenly;
}
.user_data {
width: 95%;
height: 30vw;
display: flex;
flex-direction: column;
align-items: center;
}
.data_header {
font-size: 2vw;
color: #ffffff;
font-weight: bold;
}
.data_block {
background-color:#f5d3b8;
width: 25vw;
height: 5vw;
border-radius: 5vw;
display: flex;
justify-content: center;
align-items: center;
}
.data_text {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
margin-top: 5px;
font-size: 1.5vw;
color: #000000;
overflow-x: auto;
}
.surname_block, .about_block {
width: 90%;
}
.about_bottom {
border-radius: 3vw;
height: 20vw !important;
}
.data_bottom {
width: 100% !important;
}
.list_project {
width: 95%;
margin-left: 2.5%;
margin-top: 2vw;
overflow-y: hidden;
overflow-x: hidden;
}
.project_header_button {
height: 5.5vw;
width: 100%;
text-align: left;
border-radius: 5vw;
background-color: #9E795A;
border-color: #9E795A;
border-bottom-color: #9E795A;
color: #ffffff;
display: flex;
align-items: center;
}
.project_description_block {
background-color: #9E795A;
width: 100%;
height: 20vw;
border-radius: 2vw;
}
.project_logo_block {
width: 4.5vw;
height: 4.5vw;
border: 0.3vw solid #ffffff;
background-color: #ffffff;
border-radius: 2vw;
display: flex;
justify-content: center;
align-items: center;
}
.project_logo {
width: 4vw;
height: 4vw;
border-radius: 5vw;
}
.project_title_block {
width: 70%;
height: 4vw;
}
.project_title {
font-size: 3.5vw;
overflow-y: hidden;
overflow-x: auto;
white-space: nowrap
}
.project_button_block_one {
width: 50%;
display: flex;
justify-content: space-evenly;
align-items: flex-start;
}
.project_description {
width: 98%;
height: 100%;
margin-left: 1%;
display: flex;
flex-direction: row;
flex-wrap: nowrap;
align-content: center;
align-items: center;
justify-content: space-evenly;
}
.collaborator_block {
width: 22%;
height: 90%;
background-color: #EDCBB0;
border-radius: 2vw;
overflow-y: auto;
}
.description_block {
width: 48%;
height: 90%;
display: flex;
flex-direction: column;
align-items: center;
flex-wrap: nowrap;
}
.description_header_text {
font-size: 2vw;
}
.description_block_text {
width: 90% !important;
height: 80% !important;
width: 50%;
background-color: #dcb495;
border-radius: 2vw;
}
.description_text {
width: 100% !important;
height: 100%;
font-size: 1.5vw;
overflow-wrap: normal; /* не поддерживает IE, Firefox; является копией word-wrap */
word-wrap: normal;
word-break: normal; /* не поддерживает Opera12.14, значение keep-all не поддерживается IE, Chrome */
line-break: auto; /* нет поддержки для русского языка */
hyphens: manual; /* значение auto не поддерживается Chrome */
margin: 2vw;
}
.user_projects_block {
margin-top: 35px;
margin-left: 3%;
border: 0.2vw solid #694a2d;
border-radius: 4.5vw;
width: 94%;
height: 45vw;
overflow-y: auto;
}
.user {
width: 16vw;
height: 3.5vw;
background-color: #ffffff;
border: 2px solid #9E795A;
border-radius: 3vw;
margin-top: 5px;
display: flex;
align-items: center;
justify-content: flex-start;
flex-direction: row;
flex-wrap: no-wrap;
}
.user_logo {
margin-left: 3px;
width: 3vw;
height: 3vw;
border-radius: 5vw;
background-color: #000000;
}
.user_names {
margin-left: 9px;
margin-top: 10px;
overflow-x: auto;
color: #000000 !important;
}
.link_to_user {
width: 16vw;
height: 3.5vw;
display: flex;
align-items: center;
justify-content: flex-start;
flex-direction: row;
flex-wrap: no-wrap;
text-decoration: none;
}
.link_to_user:hover {
text-decoration: none;
}
.open_project_block {
width: 20%;
height: 90%;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
flex-wrap: nowrap;
}
.open_button {
background-color: #ffffff;
color: #000000;
width: 15vw;
height: 4.5vw;
vertical-align: middle;
border-radius: 5vw;
display: flex;
align-items: center;
justify-content: center;
}
.open_button:hover {
text-decoration: none;
color: #000000;
}
.open_button_text {
font-size: 1.5vw;
margin-top: 15px;
display: flex;
align-items: center;
justify-content: center;
}
.open_button, .open_button_link {
display: flex;
align-items: center;
justify-content: center;
width: 15vw;
height: 4.5vw;
color: #000000;
}
.open_button_link:hover {
text-decoration: none;
color: #000000;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 242 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 217 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve">
<style type="text/css">
.st0{fill:none;stroke:#FFD014;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
</style>
<g>
<path class="st0" d="M71,40.7c0,13.3-9.1,24.1-20.4,24.1c-11.2,0-20.4-10.8-20.4-24.1V8.3H71V40.7z"/>
<path class="st0" d="M55.4,64v1.4C55.4,74,62.4,81,71,81l0,0V89H55.4h-9.8H30.5V81l0,0c8.6,0,15.1-7,15.1-15.6V64"/>
<path class="st0" d="M70.7,16.4H87c0,0-0.9,24.4-16.9,31.5"/>
<path class="st0" d="M30.3,16.4H14c0,0,0.9,24.4,16.9,31.5"/>
</g>
<path class="st0" d="M50.2,19.2L46.4,27l-8.6,1.2c-0.7,0.1-1.1,1-0.5,1.6l6.2,6.1L42,44.5c-0.1,0.7,0.6,1.3,1.3,1l7.9-4l7.5,3.9
c0.7,0.4,1.5-0.2,1.3-1l-1.5-8.5l6.2-6.1c0.5-0.5,0.2-1.5-0.5-1.6L55.7,27l-3.8-7.8C51.5,18.6,50.5,18.6,50.2,19.2z"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve">
<style type="text/css">
.st0{fill:none;stroke:#FFD014;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st1{fill:none;stroke:#FFD014;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
</style>
<rect x="15.4" y="32.9" class="st0" width="16.6" height="45.3"/>
<path class="st0" d="M32,37.5c0,0,13.9-9,13.2-17.6c-0.7-8.6,3.7-9.5,6.3-8.5c2.6,1.1,7.6,5.2,8,13.5c0.4,7.3-2.9,10.1-2.9,10.1H73
h5.8c3.4,0,6.1,2.5,6.1,5.5l0,0c0,3.1-2.7,5.6-6.1,5.6"/>
<path class="st1" d="M74.8,46.3h5.7c3.6,0,6.5,2.8,6.5,6.2l0,0c0,3.4-2.9,6.2-6.5,6.2h-6.8"/>
<path class="st1" d="M72.3,58.6h4.6c3.6,0,6.5,2.8,6.5,6.2l0,0c0,3.4-2.9,6.2-6.5,6.2h-4.6"/>
<path class="st1" d="M67.4,71h4.9c3.6,0,6.5,2.8,6.5,6.2l0,0c0,3.4-2.9,6.2-6.5,6.2l-13.9-0.1C50.1,83,31,75.8,31,75.8"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve">
<style type="text/css">
.st0{fill:none;stroke:#FFD014;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
</style>
<g>
<path class="st0" d="M27.6,23.7c6.5-0.5,9.4-1.8,14.2-3.8c5.4-2.3,7.7-5.6,13.6-6.2c3-0.3,11.9,6.5,14.8,7.2"/>
<path class="st0" d="M10.1,95.8c0-22.1,17.9-40,40-40s40,17.9,40,40H10.1z"/>
<circle class="st0" cx="49.3" cy="25.7" r="22.3"/>
</g>
<polyline class="st0" points="32.6,60.2 50.6,72.5 67.4,60.2 "/>
</svg>

Before

Width:  |  Height:  |  Size: 813 B

View File

@ -1,15 +0,0 @@
var edit_button = document.getElementById("edit_button"),
new_task_link = document.getElementById("new_task_link"),
quest_solve_link = document.getElementById("quest_solve_link"),
quest_solve_link_id = document.getElementById("quest_solve_link_id"),
is_template = document.getElementById("is_template");
edit_button.href = String(window.location.href) + '/edit';
new_task_link.href = String(window.location.href) + '/quest/new';
function push_file()
{
document.getElementById('selectedFile').click();
document.getElementById('upload_button').style = 'display: block;';
document.getElementById('select_file_button').style = 'display: none;';
}

View File

@ -1,18 +0,0 @@
var prevScrollpos = window.pageYOffset;
window.onload = function()
{
document.getElementById("navbar").style.display = "none";
}
window.onscroll = function() {
var currentScrollPos = window.pageYOffset;
// 20 is an arbitrary number here, just to make you think if you need the prevScrollpos variable:
if (currentScrollPos > 1250) {
// I am using 'display' instead of 'top':
document.getElementById("navbar").style.display = "initial";
}
else {
document.getElementById("navbar").style.display = "none";
}
}

View File

@ -1,12 +0,0 @@
function add_link()
{
document.getElementById('add_link_button').style = 'display: none;';
document.getElementById('repeal_link_button').style = 'display: block;';
document.getElementById('form_link').style = 'display: block;';
}
function repeal_link()
{
document.getElementById('add_link_button').style = 'display: block;';
document.getElementById('repeal_link_button').style = 'display: none;';
document.getElementById('form_link').style = 'display: none;';
}