From 561d45b991e68941c3121f1f31ad403eff758771 Mon Sep 17 00:00:00 2001 From: andrei Date: Fri, 1 Nov 2024 15:09:49 +0500 Subject: [PATCH] ._. --- .gitignore | 6 +++++ data/db_session.py | 4 ++- data/roles.py | 2 +- forms/egg.py | 6 +++++ main.py | 25 +++++++++++++---- static/css/register.css | 3 +++ templates/admin.html | 60 ++++++++++++++++++++++------------------- templates/register.html | 44 ++++++++++++++++++++++++++++++ 8 files changed, 115 insertions(+), 35 deletions(-) create mode 100644 .gitignore create mode 100644 forms/egg.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2ac87d2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +/egg.txt +/venv/ +.idea/ +/.idea +/static +static/ \ No newline at end of file diff --git a/data/db_session.py b/data/db_session.py index 8323fef..a66fbed 100644 --- a/data/db_session.py +++ b/data/db_session.py @@ -7,6 +7,7 @@ SqlAlchemyBase = dec.declarative_base() __factory = None + def global_init(db_file): global __factory @@ -25,6 +26,7 @@ def global_init(db_file): SqlAlchemyBase.metadata.create_all(engine) + def create_session() -> Session: global __factory - return __factory() \ No newline at end of file + return __factory() diff --git a/data/roles.py b/data/roles.py index 1edaebf..a516ebc 100644 --- a/data/roles.py +++ b/data/roles.py @@ -10,4 +10,4 @@ class Roles(SqlAlchemyBase, UserMixin): id = sqlalchemy.Column(sqlalchemy.Integer, primary_key=True, autoincrement=True) name = sqlalchemy.Column(sqlalchemy.String, nullable=False) - rights = sqlalchemy.Column(sqlalchemy.Integer) + rights = sqlalchemy.Column(sqlalchemy.Integer) \ No newline at end of file diff --git a/forms/egg.py b/forms/egg.py new file mode 100644 index 0000000..3471716 --- /dev/null +++ b/forms/egg.py @@ -0,0 +1,6 @@ +from flask_wtf import FlaskForm +from wtforms import BooleanField + + +class EggForm(FlaskForm): + egg = BooleanField('Пасхалка') \ No newline at end of file diff --git a/main.py b/main.py index 46f0e08..644e782 100644 --- a/main.py +++ b/main.py @@ -13,6 +13,7 @@ from sqlalchemy import or_ from json import loads from waitress import serve +from forms.egg import EggForm from functions import check_password, mail, init_db_default, get_projects_data, get_user_data, save_project_logo, \ overdue_quest_project, save_proof_quest, find_files_answer, file_tree, delete_project_data, delete_quest_data, \ copy_template, save_admin_data @@ -110,7 +111,14 @@ def admin(): roles, users = data_session.query(Roles).all(), \ data_session.query(User).filter(User.id != current_user.id).all() form = EncryptForm() + egg_form = EggForm() if request.method == 'POST': + if egg_form.egg.data: + with open('egg.txt', 'w', encoding='utf-8') as file_egg: + file_egg.write('1') + else: + with open('egg.txt', 'w', encoding='utf-8') as file_egg: + file_egg.write('2') data_form = request.form.to_dict() del data_form['csrf_token'], data_form['submit'] data_form = list(map(lambda x: (x[0], x[1]), data_form.items())) @@ -128,7 +136,10 @@ def admin(): user.banned = 0 user.activated = 1 data_session.commit() - return render_template('admin.html', title='Панель админа', roles=roles, users=users, form=form) + with open('egg.txt', 'r', encoding='utf-8') as file_egg: + egg_form.egg.data = True if int(file_egg.read()) == 1 else False + return render_template('admin.html', title='Панель админа', roles=roles, users=users, + form=form, egg_form=egg_form) abort(404) @@ -771,17 +782,21 @@ def logout(): @app.route('/register', methods=['GET', 'POST']) def register(): if not current_user.is_authenticated: + with open('egg.txt', 'r', encoding='utf-8') as file_egg: + egg = int(file_egg.read()) form = RegisterForm() if form.validate_on_submit(): data_session = db_session.create_session() if data_session.query(User).filter(User.login == form.login.data).first(): return render_template('register.html', form=form, message="Такой пользователь уже есть", - title='Регистрация') + title='Регистрация', egg=0) if data_session.query(User).filter(User.email == form.email.data).first(): - return render_template('register.html', form=form, message="Такая почта уже есть", title='Регистрация') + return render_template('register.html', form=form, message="Такая почта уже есть", egg=0, + title='Регистрация') status_password = check_password(form.password.data) if status_password != 'OK': - return render_template('register.html', form=form, message=status_password, title='Регистрация') + return render_template('register.html', form=form, message=status_password, egg=0, + title='Регистрация') user = User( email=form.email.data, name=form.name.data, @@ -800,7 +815,7 @@ def register(): 'Подтверждение регистрации') logging.info(f'{form.login.data} was registered') return redirect('/login?message=Мы выслали ссылку для подтверждения почты') - return render_template('register.html', form=form, message='', title='Регистрация') + return render_template('register.html', form=form, message='', title='Регистрация', egg=egg) else: return redirect('/projects') diff --git a/static/css/register.css b/static/css/register.css index ae8b2d0..4539d6f 100644 --- a/static/css/register.css +++ b/static/css/register.css @@ -1,6 +1,9 @@ #navbar { display: none; } +#btn_cooc { + display: none +} .register_page { margin-top: -1.1vw; display: flex; diff --git a/templates/admin.html b/templates/admin.html index 0637e90..c817521 100644 --- a/templates/admin.html +++ b/templates/admin.html @@ -3,37 +3,41 @@

Изменение данных пользователей

- {{ form.hidden_tag() }} -
-
- {% for user in users %} -
- - -

{{user.name}}

-
- - {% if user.role != 1 %} -
- - + {{ form.hidden_tag() }} +
+
+ {% for user in users %} +
+ + +

{{user.name}}

+
+ + {% if user.role != 1 %} +
+ + +
+
+ + +
+ {% endif %}
-
- - -
- {% endif %} + {% endfor %}
- {% endfor %}
-
- {{ form.submit(type="submit", class="save_button") }} + + {{egg_form.egg}} + {{ form.submit(type="submit", class="save_button") }}
{% endblock %} \ No newline at end of file diff --git a/templates/register.html b/templates/register.html index 5199570..a0dcb9d 100644 --- a/templates/register.html +++ b/templates/register.html @@ -1,6 +1,43 @@ {% extends "base.html" %} {% block content %}
+{% if egg == 1 %} + + + + + + + {% endif %}

Регистрация

@@ -51,4 +88,11 @@
+{% if egg == 1 %} + +{% endif %} {% endblock %}