diff --git a/aula/Threads/routes.py b/aula/Threads/routes.py index 64ff632..5f612ef 100644 --- a/aula/Threads/routes.py +++ b/aula/Threads/routes.py @@ -1,6 +1,7 @@ -from flask import render_template, Blueprint +from flask import redirect, render_template, Blueprint from flask_login import login_required, current_user -from aula.models import get_thread +from aula.models import get_thread, insert_message +from aula.forms import SendMessageForm Threads = Blueprint('Threads', __name__) @@ -10,7 +11,7 @@ def threads(): threads_data = current_user.get_threads() return render_template("threads.html", threads=threads_data) -@Threads.route("/threads/", methods=['GET']) +@Threads.route("/threads/", methods=['GET', 'POST']) @login_required def show(thread_id): thread = get_thread(thread_id) @@ -19,4 +20,10 @@ def show(thread_id): elif not current_user.in_thread(thread_id): return f"Du har ikke adgang til tråden med id {thread_id}." else: - return render_template("thread_show.html", thread=thread, messages=thread.get_messages()) + form = SendMessageForm() + + if form.validate_on_submit(): + insert_message(form.besked.data, thread_id, current_user.user_id) + return redirect(f"/threads/{thread_id}") + + return render_template("thread_show.html", thread=thread, messages=thread.get_messages(), form=form) diff --git a/aula/forms.py b/aula/forms.py index 38a9a28..3eb41fa 100644 --- a/aula/forms.py +++ b/aula/forms.py @@ -15,3 +15,7 @@ class UserLoginForm(FlaskForm): password = PasswordField('Password', validators=[DataRequired()]) remember = BooleanField('Remember Me') submit = SubmitField('Login') + +class SendMessageForm(FlaskForm): + besked = StringField('Besked', validators=[DataRequired()]) + submit = SubmitField('Send') diff --git a/aula/models.py b/aula/models.py index 85364c7..14c916e 100644 --- a/aula/models.py +++ b/aula/models.py @@ -321,3 +321,13 @@ def get_thread(thread_id): cur.close() return thread +def insert_message(content, thread_id, author_id): + cur = conn.cursor() + sql_call = """ + INSERT INTO messages(content, thread_id, author_id, created_date) + VALUES (%s, %s, %s, NOW()) + """ + cur.execute(sql_call, (content, thread_id, author_id)) + # Husk commit() for INSERT og UPDATE, men ikke til SELECT! + conn.commit() + cur.close() diff --git a/aula/schema_ins.sql b/aula/schema_ins.sql index 6f51c11..1562795 100644 --- a/aula/schema_ins.sql +++ b/aula/schema_ins.sql @@ -17,18 +17,18 @@ INSERT INTO users_groups (user_id, group_id) VALUES (5000, 1000), (5001, 1001); INSERT INTO threads(thread_id ,title, group_id) VALUES (2000, 'Anbefalinger til fodboldsko?', 1000); -INSERT INTO messages (message_id, content, thread_id, author_id, created_date) VALUES - (4000,'Eleverne har ondt i fødderne når de spiller fodbild. Hvem kender et godt skomærke?', 2000, 5000, NOW() - INTERVAL '3.189 day'), - (4005,'Jeg tror min søn har nogle han er glad for. Jeg spørger ham lige 😀', 2000, 5002, NOW() - INTERVAL '2.951 day'), - (4010,'Tak 👍', 2000, 5000, NOW() - INTERVAL '1.894 day'), - (4001,'Er det meningen vi skal give dem sko med????', 2000, 5001, NOW() - INTERVAL '1.05 hour'), - (4002,'Rachel, giver du ikke dine børn sko med til fodbold?', 2000, 5002, NOW() - INTERVAL '0.95 hour'), - (4003,'Hvad er der galt med dig?', 2000, 5003, NOW() - INTERVAL '0.94 hour'), - (4004,'Jeg troede de lånte sko af skolen!', 2000, 5001, NOW() - INTERVAL '0.91 hour'), - (4006,'Er det noget der nogensinde sket?', 2000, 5003, NOW() - INTERVAL '0.908 hour'), - (4007,'Kan vi ikke godt komme tilbage til pointen?', 2000, 5000, NOW() - INTERVAL '0.9 hour'), - (4008,'Hvorfor er det ligepludselig mig der skal holde styr på om skolen uddeler sko eller ej?', 2000, 5001, NOW() - INTERVAL '0.898 hour'), - (4009,'Fordi du er dit barns mor?', 2000, 5003, NOW() - INTERVAL '0.89 hour'); +INSERT INTO messages (content, thread_id, author_id, created_date) VALUES + ('Eleverne har ondt i fødderne når de spiller fodbild. Hvem kender et godt skomærke?', 2000, 5000, NOW() - INTERVAL '3.189 day'), + ('Jeg tror min søn har nogle han er glad for. Jeg spørger ham lige 😀', 2000, 5002, NOW() - INTERVAL '2.951 day'), + ('Tak 👍', 2000, 5000, NOW() - INTERVAL '1.894 day'), + ('Er det meningen vi skal give dem sko med????', 2000, 5001, NOW() - INTERVAL '1.05 hour'), + ('Rachel, giver du ikke dine børn sko med til fodbold?', 2000, 5002, NOW() - INTERVAL '0.95 hour'), + ('Hvad er der galt med dig?', 2000, 5003, NOW() - INTERVAL '0.94 hour'), + ('Jeg troede de lånte sko af skolen!', 2000, 5001, NOW() - INTERVAL '0.91 hour'), + ('Er det noget der nogensinde sket?', 2000, 5003, NOW() - INTERVAL '0.908 hour'), + ('Kan vi ikke godt komme tilbage til pointen?', 2000, 5000, NOW() - INTERVAL '0.9 hour'), + ('Hvorfor er det ligepludselig mig der skal holde styr på om skolen uddeler sko eller ej?', 2000, 5001, NOW() - INTERVAL '0.898 hour'), + ('Fordi du er dit barns mor?', 2000, 5003, NOW() - INTERVAL '0.89 hour'); INSERT INTO users_threads (user_id, thread_id) VALUES (5000, 2000), diff --git a/aula/static/main.css b/aula/static/main.css index 85a2ade..218096b 100644 --- a/aula/static/main.css +++ b/aula/static/main.css @@ -33,15 +33,26 @@ h1, h2, h3, h4, h5, h6 { .thread { border-radius: 20px !important; height: 80vh; + padding: 0 !important; +} + +.thread h1 { + margin-top: 20px; + margin-left: 20px; + margin-right: 20px; } .messages { display: flex; flex-direction: column; margin-top: auto; - height: 60vh; + height: 61vh; overflow: scroll; padding-right: 5px; + padding-left: 20px; + padding-right: 20px; + border-top: 3px black solid; + border-bottom: 3px black solid; } .message-container { @@ -68,6 +79,40 @@ h1, h2, h3, h4, h5, h6 { margin-bottom: 0px !important; } +.new-message form { + width: 100%; + display: flex; + padding: 10px; + padding-right: 20px; + padding-left: 20px; +} + +.new-message form .message-box { + height: auto; + font-size: large; + display: flex; + flex-grow: 3; + margin-right: 10px; + border-radius: 10px; + border: 2px black solid; + padding: 3px; + padding-left: 10px; + padding-right: 10px; +} + +.new-message form .send:hover { + background-color: rgb(84 158 199); + border: 2px rgb(22 97 148) solid; +} + +.new-message form .send { + color: #fff; + background-color: rgb(22 97 148); + border-radius: 10px; + border: 2px black solid; + cursor: pointer; +} + .message-container .timestamp { align-self: flex-start; margin-right: 5px; diff --git a/aula/templates/thread_show.html b/aula/templates/thread_show.html index 9b039d8..33058c4 100644 --- a/aula/templates/thread_show.html +++ b/aula/templates/thread_show.html @@ -2,8 +2,7 @@ {% block content %}

{{ thread.title }}

-
-
+
{% for message in messages %} {% if message.author_id == current_user.user_id %}
@@ -18,5 +17,16 @@
{% endfor %}
+
+
+ {{ form.hidden_tag() }} + {{ form.besked(class="message-box") }} + {{ form.submit(class="send") }} +
+
+
{% endblock content %}