From 2f920f3b6f39c47f6eed03486545250cc3314613 Mon Sep 17 00:00:00 2001
From: finn
Date: Sun, 4 Aug 2024 09:40:09 -0700
Subject: [PATCH] mgt c8 finish
---
backend/Dockerfile | 0
backend/app/forms.py | 3 ++-
backend/app/routes.py | 47 ++++++++++++++++++++++++++++++---
backend/app/templates/user.html | 22 ++++++++++++---
backend/config.py | 4 +--
backend/dbdb.sh | 0
6 files changed, 66 insertions(+), 10 deletions(-)
mode change 100755 => 100644 backend/Dockerfile
mode change 100644 => 100755 backend/dbdb.sh
diff --git a/backend/Dockerfile b/backend/Dockerfile
old mode 100755
new mode 100644
diff --git a/backend/app/forms.py b/backend/app/forms.py
index 21dadf7..4825c86 100644
--- a/backend/app/forms.py
+++ b/backend/app/forms.py
@@ -43,6 +43,7 @@ class EditProfileForm(FlaskForm):
if user is not None:
raise ValidationError('Please use a different username.')
-
+class EmptyForm(FlaskForm):
+ submit = SubmitField('Submit')
diff --git a/backend/app/routes.py b/backend/app/routes.py
index e3723b1..921db5a 100644
--- a/backend/app/routes.py
+++ b/backend/app/routes.py
@@ -5,7 +5,7 @@ from datetime import datetime, timezone
import sqlalchemy as sa
from app import app, db
-from app.forms import LoginForm, RegistrationForm, EditProfileForm
+from app.forms import LoginForm, RegistrationForm, EditProfileForm, EmptyForm
from app.models import User
@app.before_request
@@ -18,7 +18,7 @@ def before_request():
@app.route('/index')
@login_required
def index():
- app.logger.info("AAAAAAAAAAAAAAAAAAAAA")
+ app.logger.info('@@@@@@@@@@@@@@@@@ INFO LOG TEST INDEX')
user = {'username': 'Finnaa'}
posts = [
@@ -75,12 +75,12 @@ def register():
@login_required
def user(username):
user = db.first_or_404(sa.select(User).where(User.username == username))
- #app.logger.info('PROFILE DEBUG ###############################')
posts = [
{'author': user, 'body': 'Test1'},
{'author': user, 'body': 'Test2?'}
]
- return render_template('user.html', user=user, posts=posts)
+ form = EmptyForm()
+ return render_template('user.html', user=user, posts=posts, form=form)
@app.route('/edit_profile', methods=['GET', 'POST'])
@login_required
@@ -97,3 +97,42 @@ def edit_profile():
form.about_me.data = current_user.about_me
return render_template('edit_profile.html', title='Edit Profile', form=form)
+@app.route('/follow/', methods=['POST'])
+@login_required
+def follow(username):
+ form = EmptyForm()
+ if form.validate_on_submit():
+ user = db.session.scalar(sa.select(User).where(User.username == username))
+ if user is None:
+ flash(f'User {username} not found.')
+ return redirect(url_for('index'))
+ if user == current_user:
+ flash('You cannot follow yourself.')
+ return redirect(url_for('user', username=username))
+ current_user.follow(user)
+ db.session.commit()
+ flash(f'You are now following {username}.')
+ return redirect(url_for('user', username=username))
+ else:
+ return redirect(url_for('index'))
+
+@app.route('/unfollow/', methods=['POST'])
+@login_required
+def unfollow(username):
+ form = EmptyForm()
+ if form.validate_on_submit():
+ user = db.session.scalar(sa.select(User).where(User.username == username))
+ if user is None:
+ flash(f'User {username} not found.')
+ return redirect(url_for('index'))
+ if user == current_user:
+ flash('You cannot unfollow yourself.')
+ return redirect(url_for('user', username=username))
+ current_user.unfollow(user)
+ db.session.commit()
+ flash(f'You have unfollowed {username}.')
+ return redirect(url_for('user', username=username))
+ else:
+ return redirect(url_for('index'))
+
+
diff --git a/backend/app/templates/user.html b/backend/app/templates/user.html
index fbfe27e..8c3d26f 100644
--- a/backend/app/templates/user.html
+++ b/backend/app/templates/user.html
@@ -10,12 +10,28 @@
Udebug: {{ user }}
{% if user.about_me %}{{ user.about_me }}
{% endif %}
{% if user.last_seen %}Last activity:{{ user.last_seen }}
{% endif %}
+ {% if user == current_user %}
+ Edit Profile
+ {% elif not current_user.is_following(user) %}
+
+
+
+ {% else %}
+
+
+
+ {% endif %}
+
+
- {% if user == current_user %}
- Edit Profile
- {% endif %}
{% for post in posts %}
{% include '_post.html' %}
diff --git a/backend/config.py b/backend/config.py
index e1efeb1..d05ad60 100644
--- a/backend/config.py
+++ b/backend/config.py
@@ -5,8 +5,8 @@ basedir = os.path.abspath(os.path.dirname(__file__))
class Config:
SECRET_KEY = os.environ.get('FLASK_SECRET_KEY') or 'flasksk'
- SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'zapp.db')
- #SQLALCHEMY_DATABASE_URI = 'mariadb+mariadbconnector://flasku:' + os.environ.get('MYSQL_PASSWORD') + '@db:3306/flask'
+ #SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'zapp.db')
+ SQLALCHEMY_DATABASE_URI = 'mariadb+mariadbconnector://flasku:' + os.environ.get('MYSQL_PASSWORD') + '@db:3306/flask'
#MAIL_SERVER = 'pmb'
MAIL_SERVER = ''
diff --git a/backend/dbdb.sh b/backend/dbdb.sh
old mode 100644
new mode 100755