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

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/ /venv/
.idea/ .idea/
/.idea /.idea
/static /incepted/static
static/ incepted/static/
/incepted/logfiles/main.log
/incepted/db/incepted.db

View File

@ -1,267 +1,267 @@
import datetime import datetime
import os import os
import shutil import shutil
import smtplib import smtplib
from json import loads from json import loads
from email.message import EmailMessage from email.message import EmailMessage
from data.answer import Answer from data.answer import Answer
from data.proof_file import FileProof from data.proof_file import FileProof
from data.quests import Quests from data.quests import Quests
from data.roles import Roles from data.roles import Roles
from data.users import User from data.users import User
from data.staff_projects import StaffProjects from data.staff_projects import StaffProjects
from data.files import Files from data.files import Files
from data import db_session from data import db_session
import uuid import uuid
import pymorphy2 import pymorphy2
def check_password(password=''): def check_password(password=''):
smb = 'qwertyuiopasdfghjklzxcvbnm' smb = 'qwertyuiopasdfghjklzxcvbnm'
if len(password) < 6: if len(password) < 6:
return 'Пароль должен быть длиннее 6 символов' return 'Пароль должен быть длиннее 6 символов'
elif False in [True if i.isalpha() and i.lower() in smb or i.isdigit() else False for i in password]: elif False in [True if i.isalpha() and i.lower() in smb or i.isdigit() else False for i in password]:
return 'Пароль может содержать только буквы латинского алфавита и цифры' return 'Пароль может содержать только буквы латинского алфавита и цифры'
elif True not in [True if i.isdigit() else False for i in password]: elif True not in [True if i.isdigit() else False for i in password]:
return 'Пароль должен содержать буквы разного регистра и цифры' return 'Пароль должен содержать буквы разного регистра и цифры'
elif False not in [True if i.islower() and i.isalpha() else False for i in password]: elif False not in [True if i.islower() and i.isalpha() else False for i in password]:
return 'Пароль должен содержать буквы разного регистра и цифры' return 'Пароль должен содержать буквы разного регистра и цифры'
else: else:
return 'OK' return 'OK'
def mail(msg, to, topic='Подтверждение почты'): def mail(msg, to, topic='Подтверждение почты'):
with open('incepted.config', 'r', encoding='utf-8') as file: with open('../incepted.config', 'r', encoding='utf-8') as file:
file = loads(file.read()) file = loads(file.read())
login, password = file["mail_login"], file["mail_password"] login, password = file["mail_login"], file["mail_password"]
email_server = "smtp.yandex.ru" email_server = "smtp.yandex.ru"
sender = "incepted@yandex.ru" sender = "incepted@yandex.ru"
em = EmailMessage() em = EmailMessage()
em.set_content(msg) em.set_content(msg)
em['To'] = to em['To'] = to
em['From'] = sender em['From'] = sender
em['Subject'] = topic em['Subject'] = topic
mailServer = smtplib.SMTP(email_server) mailServer = smtplib.SMTP(email_server)
mailServer.set_debuglevel(1) mailServer.set_debuglevel(1)
mailServer.ehlo() mailServer.ehlo()
mailServer.starttls() mailServer.starttls()
mailServer.ehlo() mailServer.ehlo()
mailServer.login(login, password) mailServer.login(login, password)
mailServer.ehlo() mailServer.ehlo()
mailServer.send_message(em) mailServer.send_message(em)
mailServer.quit() mailServer.quit()
def init_db_default(): def init_db_default():
data_session = db_session.create_session() data_session = db_session.create_session()
roles = [['admin', 90], ['moderator', 75], ['counselor', 45], ['user', 0]] roles = [['admin', 90], ['moderator', 75], ['counselor', 45], ['user', 0]]
for i in roles: for i in roles:
role = Roles( role = Roles(
name=i[0], name=i[0],
rights=i[1] rights=i[1]
) )
data_session.add(role) data_session.add(role)
data_session.commit() data_session.commit()
data_session.close() data_session.close()
def get_user_data(user): def get_user_data(user):
resp = { resp = {
'id': user.id, 'id': user.id,
'name': user.name, 'name': user.name,
'surname': user.surname, 'surname': user.surname,
'login': user.login, 'login': user.login,
'email': user.email, 'email': user.email,
'photo': user.photo, 'photo': user.photo,
'role': user.role 'role': user.role
} }
return resp return resp
def get_projects_data(project): def get_projects_data(project):
data_session = db_session.create_session() data_session = db_session.create_session()
staff = data_session.query(StaffProjects.user).filter(StaffProjects.project == project.id).all() staff = data_session.query(StaffProjects.user).filter(StaffProjects.project == project.id).all()
resp = { resp = {
'id': project.id, 'id': project.id,
'name': project.name, 'name': project.name,
'logo': project.photo, 'logo': project.photo,
'description': project.description, 'description': project.description,
'staff': list(map(lambda x: get_user_data(x), data_session.query(User).filter( '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 [] 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())) resp['staff'].insert(0, get_user_data(data_session.query(User).filter(User.id == project.creator).first()))
return resp return resp
def save_project_logo(photo): def save_project_logo(photo):
filename = f'static/app_files/project_logo/{uuid.uuid4()}.png' filename = f'static/app_files/project_logo/{uuid.uuid4()}.png'
with open(filename, 'wb') as f: with open(filename, 'wb') as f:
photo.save(f) photo.save(f)
return filename return filename
def overdue_quest_project(quest): def overdue_quest_project(quest):
if quest.deadline is None: if quest.deadline is None:
quest.overdue = '' quest.overdue = ''
elif str(quest.deadline.date()) == str(datetime.datetime.now().date()): elif str(quest.deadline.date()) == str(datetime.datetime.now().date()):
quest.overdue = 'today' quest.overdue = 'today'
elif quest.deadline < datetime.datetime.now(): elif quest.deadline < datetime.datetime.now():
quest.overdue = 'yes' quest.overdue = 'yes'
quest.time_left = 'Просрочено на' + round_date(quest.deadline) quest.time_left = 'Просрочено на' + round_date(quest.deadline)
elif quest.deadline > datetime.datetime.now(): elif quest.deadline > datetime.datetime.now():
quest.overdue = 'no' quest.overdue = 'no'
quest.time_left = 'Еще есть: ' + round_date(quest.deadline) quest.time_left = 'Еще есть: ' + round_date(quest.deadline)
return quest return quest
def round_date(date_time): def round_date(date_time):
morph = pymorphy2.MorphAnalyzer() morph = pymorphy2.MorphAnalyzer()
difference = abs(date_time - datetime.datetime.now()).days difference = abs(date_time - datetime.datetime.now()).days
resp = '' resp = ''
if difference // 365: if difference // 365:
resp += f'{difference // 365} {morph.parse("год")[0].make_agree_with_number(difference // 365).word}' resp += f'{difference // 365} {morph.parse("год")[0].make_agree_with_number(difference // 365).word}'
difference -= 365 * (difference // 365) difference -= 365 * (difference // 365)
if difference // 30: if difference // 30:
resp += ', ' if resp else ' ' + f'{difference // 30}' \ resp += ', ' if resp else ' ' + f'{difference // 30}' \
f' {morph.parse("месяц")[0].make_agree_with_number(difference // 30).word}' f' {morph.parse("месяц")[0].make_agree_with_number(difference // 30).word}'
difference -= 30 * (difference // 30) difference -= 30 * (difference // 30)
if difference: if difference:
resp += ', ' if resp else ' ' + f'{difference} {morph.parse("день")[0].make_agree_with_number(difference).word}' resp += ', ' if resp else ' ' + f'{difference} {morph.parse("день")[0].make_agree_with_number(difference).word}'
return f'{resp}' return f'{resp}'
def save_proof_quest(project, file, user_id): def save_proof_quest(project, file, user_id):
data_session = db_session.create_session() data_session = db_session.create_session()
path = f'static/app_files/all_projects/{str(project.id)}/{str(file.filename)}' 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_check = data_session.query(Files).filter(Files.path == path).first()
file.save(path) file.save(path)
if file_check: if file_check:
return file_check.id return file_check.id
file = Files( file = Files(
path=path, path=path,
user=user_id, user=user_id,
up_date=datetime.datetime.now() up_date=datetime.datetime.now()
) )
data_session.add(file) data_session.add(file)
data_session.flush() data_session.flush()
data_session.refresh(file) data_session.refresh(file)
file_id = file.id file_id = file.id
data_session.commit() data_session.commit()
data_session.close() data_session.close()
return file_id return file_id
def find_files_answer(file_id): def find_files_answer(file_id):
data_session = db_session.create_session() data_session = db_session.create_session()
file = data_session.query(Files).filter(Files.id == file_id).first() 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, 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('/')} 'current_path': file.path[str(file.path).find('all_projects') + 13:].split('/')}
def file_tree(path): def file_tree(path):
tree = [] tree = []
data_session = db_session.create_session() data_session = db_session.create_session()
h = 1 h = 1
for i in os.listdir(path): for i in os.listdir(path):
if os.path.isfile(f'{path}/{i}'): if os.path.isfile(f'{path}/{i}'):
file = data_session.query(Files).filter(Files.path == f'{path}/{i}').first() file = data_session.query(Files).filter(Files.path == f'{path}/{i}').first()
tree.append( tree.append(
{ {
'path': f'{path}/{i}', 'path': f'{path}/{i}',
'type': 'file', 'type': 'file',
'object': file if file else None, 'object': file if file else None,
'current_path': f'{path}/{i}'[str(file.path).find('all_projects') + 13:].split('/') 'current_path': f'{path}/{i}'[str(file.path).find('all_projects') + 13:].split('/')
} }
) )
else: else:
tree.append( tree.append(
{ {
'id': h, 'id': h,
'name': i, 'name': i,
'path': f'{path}/{i}', 'path': f'{path}/{i}',
'type': 'folder', 'type': 'folder',
'tree': file_tree(f'{path}/{i}') 'tree': file_tree(f'{path}/{i}')
} }
) )
h += 1 h += 1
data_session.close() data_session.close()
return tree return tree
def delete_file_proof_data(file_proof, data_session): def delete_file_proof_data(file_proof, data_session):
file = data_session.query(Files).filter(Files.id == file_proof.file).first() file = data_session.query(Files).filter(Files.id == file_proof.file).first()
data_session.delete(file) data_session.delete(file)
def delete_answer_data(answer, data_session): def delete_answer_data(answer, data_session):
file_proofs = data_session.query(FileProof).filter(FileProof.answer == answer.id).all() 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(lambda file: delete_file_proof_data(file, data_session), file_proofs))
list(map(data_session.delete, file_proofs)) list(map(data_session.delete, file_proofs))
def delete_quest_data(quest, data_session): def delete_quest_data(quest, data_session):
answers = data_session.query(Answer).filter(Answer.quest == quest.id).all() answers = data_session.query(Answer).filter(Answer.quest == quest.id).all()
list(map(lambda answer: delete_answer_data(answer, data_session), answers)) list(map(lambda answer: delete_answer_data(answer, data_session), answers))
list(map(data_session.delete, answers)) list(map(data_session.delete, answers))
def delete_project_data(project, data_session): def delete_project_data(project, data_session):
staff = data_session.query(StaffProjects).filter(StaffProjects.project == project.id).all() staff = data_session.query(StaffProjects).filter(StaffProjects.project == project.id).all()
list(map(data_session.delete, staff)) list(map(data_session.delete, staff))
if 'none_project' not in project.photo: if 'none_project' not in project.photo:
os.remove(project.photo) os.remove(project.photo)
quests = data_session.query(Quests).filter(Quests.project == project.id).all() quests = data_session.query(Quests).filter(Quests.project == project.id).all()
list(map(lambda quest: delete_quest_data(quest, data_session), quests)) list(map(lambda quest: delete_quest_data(quest, data_session), quests))
list(map(data_session.delete, quests)) list(map(data_session.delete, quests))
list(map(data_session.delete, list(map(data_session.delete,
data_session.query(Files).filter(Files.path.contains(f'all_projects/{str(project.id)}/')).all())) 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)}') shutil.rmtree(f'static/app_files/all_projects/{str(project.id)}')
data_session.delete(project) data_session.delete(project)
data_session.commit() data_session.commit()
def copy_file_from_template(file, new_project, data_session, current_user): 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]}' path = f'static/app_files/all_projects/{str(new_project.id)}/{str(file.path).split("/")[-1]}'
shutil.copy(file.path, path) shutil.copy(file.path, path)
new_file = Files( new_file = Files(
path=path, path=path,
user=current_user.id, user=current_user.id,
up_date=datetime.datetime.now() up_date=datetime.datetime.now()
) )
data_session.add(new_file) data_session.add(new_file)
def copy_quests_from_template(quest, new_project, data_session, current_user): def copy_quests_from_template(quest, new_project, data_session, current_user):
new_quest = Quests( new_quest = Quests(
project=new_project.id, project=new_project.id,
creator=current_user.id, creator=current_user.id,
name=quest.name, name=quest.name,
description=quest.description, description=quest.description,
date_create=datetime.datetime.now(), date_create=datetime.datetime.now(),
deadline=quest.deadline, deadline=quest.deadline,
realized=False realized=False
) )
data_session.add(new_quest) data_session.add(new_quest)
def copy_template(template, new_project, data_session, current_user): def copy_template(template, new_project, data_session, current_user):
os.mkdir(f'static/app_files/all_projects/{str(new_project.id)}') os.mkdir(f'static/app_files/all_projects/{str(new_project.id)}')
if 'none_project' not in template.photo: if 'none_project' not in template.photo:
filename = f'static/app_files/project_logo/{uuid.uuid4()}.png' filename = f'static/app_files/project_logo/{uuid.uuid4()}.png'
shutil.copy(template.photo, filename) shutil.copy(template.photo, filename)
new_project.photo = filename new_project.photo = filename
else: else:
new_project.photo = 'static/images/none_project.png' new_project.photo = 'static/images/none_project.png'
list(map(lambda file: copy_file_from_template(file, new_project, data_session, current_user), 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())) 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), 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.query(Quests).filter(Quests.project == template.id).all()))
data_session.commit() data_session.commit()
def save_admin_data(data, data_session): def save_admin_data(data, data_session):
user = data_session.query(User).filter(User.id == data[0].split('_')[-1]).first() user = data_session.query(User).filter(User.id == data[0].split('_')[-1]).first()
if user.role != data[1]: if user.role != data[1]:
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> <!DOCTYPE html>
<html lang="ru"> <html lang="ru">
<head> <head>
<meta charset="UTF-8"/> <meta charset="UTF-8"/>
<link rel="stylesheet" href="../../../../static/css/base.css"/> <link rel="stylesheet" href="../../../../static/css/base.css"/>
<link <link
rel="stylesheet" rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh"
crossorigin="anonymous" crossorigin="anonymous"
/> />
<link rel="icon" href="../../../static/images/logo_b.ico" type="image/x-icon"/> <link rel="icon" href="../../../static/images/logo_b.ico" type="image/x-icon"/>
<title>{{title}}</title> <title>{{title}}</title>
</head> </head>
<body> <body>
<div class="alert alert-danger mess_block" role="alert"> <div class="alert alert-danger mess_block" role="alert">
<h4 style="text-align:center;">Это демонстрационная версия сайта, пока что мы не рекомендуем сохранять здесь важные данные</h4> <h4 style="text-align:center;">Это демонстрационная версия сайта, пока что мы не рекомендуем сохранять здесь важные данные</h4>
</div> </div>
{% if current_user.is_authenticated %} {% if current_user.is_authenticated %}
<nav class="navbar"> <nav class="navbar">
<div class="nav_panel"> <div class="nav_panel">
<a class="nav_chapter" href="/profile"> <a class="nav_chapter" href="/profile">
<div class="nav_user"> <div class="nav_user">
<div class="nav_user_name_div"><p class="nav_user_name nav_chapter_text">{{current_user.name}}</p></div> <div class="nav_user_name_div"><p class="nav_user_name nav_chapter_text">{{current_user.name}}</p></div>
</div> </div>
</a> </a>
<a class="nav_chapter" href="/projects"> <a class="nav_chapter" href="/projects">
<p class="nav_chapter_text">Проекты</p> <p class="nav_chapter_text">Проекты</p>
</a> </a>
<a class="nav_chapter" href="/showcase"> <a class="nav_chapter" href="/showcase">
<p class="nav_chapter_text">Витрина</p> <p class="nav_chapter_text">Витрина</p>
</a> </a>
{% if current_user.role == 1 %} {% if current_user.role == 1 %}
<a class="nav_chapter" href="/admin"> <a class="nav_chapter" href="/admin">
<p class="nav_chapter_text">Админ</p> <p class="nav_chapter_text">Админ</p>
</a> </a>
{% endif %} {% endif %}
</div> </div>
</nav> </nav>
{% else %} {% else %}
<nav class="navbar" id="navbar"> <nav class="navbar" id="navbar">
<div class="container-fluid"> <div class="container-fluid">
<a class="navbar-brand" href="/"> <a class="navbar-brand" href="/">
<img src="../../../../static/images/logo_b.png" class="nav_logo"/> <img src="../../../../static/images/logo_b.png" class="nav_logo"/>
</a> </a>
<a class="auth_button" href="/login">Авторизация</a> <a class="auth_button" href="/login">Авторизация</a>
</div> </div>
</nav> </nav>
{% endif %} {% endif %}
<!-- Begin page content --> <!-- Begin page content -->
<main role="main">{% block content %}{% endblock %}</main> <main role="main">{% block content %}{% endblock %}</main>
<footer class="footer"> <footer class="footer">
<div class="footer_block"> <div class="footer_block">
<a href="/#header_block" <a href="/#header_block"
><img class="footer_logo" src="../../../../static/images/logo_w.png" ><img class="footer_logo" src="../../../../static/images/logo_w.png"
/></a> /></a>
<strong class="footer_rights">© All rights reserved</strong> <strong class="footer_rights">© All rights reserved</strong>
</div> </div>
</footer> </footer>
<script <script
src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/js/bootstrap.bundle.min.js" src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/js/bootstrap.bundle.min.js"
integrity="sha384-u1OknCvxWvY5kfmNBILK2hRnQC3Pr17a+RTT6rIHI7NnikvbZlHgTPOOmMi466C8" integrity="sha384-u1OknCvxWvY5kfmNBILK2hRnQC3Pr17a+RTT6rIHI7NnikvbZlHgTPOOmMi466C8"
crossorigin="anonymous" crossorigin="anonymous"
></script> ></script>
</body> </body>
</html> </html>

View File

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

View File

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