diff --git a/db/moona_data.db b/db/moona_data.db index f2a06d7..0305ff4 100644 Binary files a/db/moona_data.db and b/db/moona_data.db differ diff --git a/forms/login.py b/forms/login.py index 58305df..2d168dc 100644 --- a/forms/login.py +++ b/forms/login.py @@ -6,6 +6,5 @@ from wtforms.validators import DataRequired class LoginForm(FlaskForm): email = EmailField('Почта', validators=[DataRequired()]) password = PasswordField('Пароль', validators=[DataRequired()]) - style = {"type": "checkbox", "class": "btn-check", "id": "btn-check", "autocomplete": "off"} remember_me = BooleanField('Запомнить меня') submit = SubmitField('Войти') \ No newline at end of file diff --git a/forms/register.py b/forms/register.py index c41780c..8da6fc7 100644 --- a/forms/register.py +++ b/forms/register.py @@ -15,6 +15,8 @@ class RegisterForm(FlaskForm): password = PasswordField('Пароль', validators=[DataRequired()]) password2 = PasswordField('Повторите пароль', validators=[DataRequired()]) submit = SubmitField('Регистрация') + del_photo = SubmitField('Удалить фотографию') + submit2 = SubmitField('Сохранить') class Confirmation(FlaskForm): diff --git a/main.py b/main.py index 9cb5be9..2427e34 100644 --- a/main.py +++ b/main.py @@ -72,6 +72,48 @@ def main_page(): return render_template('base.html', title='moona') +@app.route('/edit_profile/', methods=['GET', 'POST']) +def edit_profile(logins): + global photo + global help_arg + form = RegisterForm() + session = db_session.create_session() + ph_f = False + if form.del_photo.data: + help_arg = photo + photo = '../static/img/None_logo.png' + if form.submit2.data: + user = session.query(User).filter(User.login == logins).first() + user.name = form.name.data + user.surname = form.surname.data + user.age = form.age.data + user.about = form.about.data + if not ph_f and form.photo.data: + photo = save_photo(form.photo.data, logins) + if help_arg: + os.remove(help_arg) + help_arg = False + user.photo = photo + session.commit() + return redirect('/profile') + if request.method == "GET": + if current_user.login == logins: + form.email.data = current_user.email + form.name.data = current_user.name + form.surname.data = current_user.surname + form.login.data = logins + form.age.data = current_user.age + form.about.data = current_user.about + form.password.data = None + form.password2.data = None + if current_user.photo != '../static/img/None_logo.png': + photo = current_user.photo + ph_f = True + else: + photo = None + return render_template('edit_profile.html', title='Редактирование профиля', form=form, message='', ph_f=ph_f) + + @app.route('/profile') def profile(): db_sess = db_session.create_session() @@ -523,7 +565,6 @@ def confirmation(): if not send_msg: secret_code = secret_key() mail(f'Ваш секретный код: {secret_code}', form.email.data, 'Moona Код') - print(secret_code) send_msg = True if conf.validate_on_submit(): if str(conf.code_key.data).strip() == str(secret_code).strip(): @@ -575,6 +616,10 @@ def register(): return render_template('register.html', title='Регистрация', form=form, message="Такой пользователь уже есть") + if session.query(User).filter(User.email == form.email.data).first(): + return render_template('register.html', title='Регистрация', + form=form, + message="Такая почта уже есть") help_arg = form if form.photo.data: photo = save_photo(form.photo.data, form.login.data) @@ -596,7 +641,7 @@ def recovery(): user_email = form.email.data if not send_msg: secret_code = secret_key() - mail(f'Ваш секретный код: {secret_code}', form.email.data, 'Moona Код') + mail(f'Ваш секретный код: {secret_code}', form.email.data, 'Восстановление пароля') send_msg = True print(secret_code) return render_template('recovery.html', title='Восстановление пароля', form=conf, message='', s='2') diff --git a/templates/profil.html b/static/css/edit_profile.css similarity index 100% rename from templates/profil.html rename to static/css/edit_profile.css diff --git a/static/css/profile.css b/static/css/profile.css index d546a52..a64bdba 100644 --- a/static/css/profile.css +++ b/static/css/profile.css @@ -43,4 +43,9 @@ table { width: 35%; margin-right: auto; margin-left: auto; +} +.logout_btn { + width: 96%; + margin-right: 2%; + margin-left: 2%; } \ No newline at end of file diff --git a/static/img/Икона.png b/static/img/None_logo.png similarity index 100% rename from static/img/Икона.png rename to static/img/None_logo.png diff --git a/templates/edit_profile.html b/templates/edit_profile.html new file mode 100644 index 0000000..e477174 --- /dev/null +++ b/templates/edit_profile.html @@ -0,0 +1,81 @@ + + +{% extends "base.html" %} +{% block content %} +
+

Регистрация

+
+ {{ form.hidden_tag() }} + {{ form.csrf_token }} +
+ + {{ form.name(class="form-control", type="text") }} + {% for error in form.name.errors %} + + {% endfor %} +
+
+ + {{ form.surname(class="form-control", type="text") }} + {% for error in form.surname.errors %} + + {% endfor %} +
+
+ + {{ form.email(class="form-control", type="email") }} + {% for error in form.email.errors %} + + {% endfor %} +
+
+ + {{ form.age(class="form-control", type="number") }} + {% for error in form.age.errors %} + + {% endfor %} +
+
+ + {{ form.about(class="form-control", type="textarea") }} + {% for error in form.about.errors %} + + {% endfor %} +
+ {% if ph_f %} + {{ form.del_photo(type="submit", class="btn btn-primary") }} + {% for error in form.del_photo.errors %} + + {% endfor %} + {% else %} +

+ {{ form.photo.label }}
+ {{ form.photo(class="form-control") }}
+ {% for error in form.photo.errors %} +

+ {% endfor %} +

+ {% endif %} +
+

{{ form.submit2(type="submit", class="btn btn-primary", style="background-color:#38aaff") }}

+ {% if message != '' %} + + {% endif %} +
+
+
+{% endblock %} \ No newline at end of file diff --git a/templates/profile.html b/templates/profile.html index 489e705..e2d74ac 100644 --- a/templates/profile.html +++ b/templates/profile.html @@ -14,8 +14,11 @@ {% endif %}
- Редактировать профиль + + Выйти +
diff --git a/templates/register.html b/templates/register.html index 21bb4cc..27ba77f 100644 --- a/templates/register.html +++ b/templates/register.html @@ -1,4 +1,3 @@ - {% extends "base.html" %} {% block content %}