Merge branch 'main' of git.ingemanngade.net:NikolajDanger/UIS_Prototype

This commit is contained in:
Mikkel
2022-05-24 15:35:50 +02:00
8 changed files with 111 additions and 48 deletions

View File

@ -1,12 +1,15 @@
from flask import render_template, url_for, flash, redirect, request, Blueprint
from flask_login import current_user, login_required
from aula.models import select_users
from aula.models import select_users_by_id
import sys, datetime
Group = Blueprint('Group', __name__)
@Group.route("/groups/index", methods=['GET'])
def index():
user = select_users(5000)
return user.address
user = select_users_by_id(5000)
groups = user.get_groups()
for group in groups:
print(group.name)
return "hej"

View File

@ -1,18 +1,22 @@
from flask import render_template, Blueprint, redirect, url_for, flash, request
from flask_login import current_user, login_user
from flask_login import current_user, login_user, logout_user, login_required
from aula import bcrypt
from aula.forms import UserLoginForm
from aula.models import select_users_by_email
from aula.models import select_users_by_email, get_posts_for_user
Login = Blueprint('Login', __name__)
posts = [{}]
@Login.route("/")
@Login.route("/home")
def home():
print(current_user.is_authenticated)
if current_user.is_authenticated:
posts = get_posts_for_user(current_user.get_id())
else:
posts = []
print(posts)
return render_template('home.html', posts=posts)
@ -41,13 +45,13 @@ def login():
return render_template('login.html', title='Login', form=form)
# @Login.route("/logout")
# def logout():
# logout_user()
# return redirect(url_for('Login.home'))
@Login.route("/logout")
def logout():
logout_user()
return redirect(url_for('Login.home'))
# @Login.route("/account")
# @login_required
# def account():
# return render_template('account.html', title='Account')
@Login.route("/account")
@login_required
def account():
return render_template('account.html', title='Account')

12
aula/Threads/routes.py Normal file
View File

@ -0,0 +1,12 @@
from flask import render_template, url_for, flash, redirect, request, Blueprint
from bank import app, conn, bcrypt
from aula.forms import TransferForm, DepositForm, AddCustomerForm
from flask_login import current_user, login_required
import sys, datetime
Group = Blueprint('Threads', __name__)
@login_required()
@Group.route("threads/index", methods=['GET'])
def index():
return render_template()

View File

@ -1,5 +1,5 @@
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField, BooleanField, IntegerField
from wtforms import StringField, PasswordField, SubmitField, BooleanField
from wtforms.validators import DataRequired, Length
class AddUserForm(FlaskForm):

View File

@ -1,25 +1,21 @@
# write all your SQL queries in this file.
from aula import conn, login_manager
from flask_login import UserMixin
from psycopg2 import sql
from aula import conn, login_manager
@login_manager.user_loader
def load_user(user_id):
cur = conn.cursor()
schema = 'users'
_id = 'user_id'
user_sql = sql.SQL("""
SELECT * FROM {}
WHERE {} = %s
""").format(sql.Identifier(schema), sql.Identifier(_id))
user_sql = """
SELECT * FROM users
WHERE user_id = %s
"""
cur.execute(user_sql, (user_id,))
if cur.rowcount > 0:
User(cur.fetchone())
else:
return None
user = User(cur.fetchone()) if cur.rowcount > 0 else None
cur.close()
return user
#
# Models
@ -66,7 +62,7 @@ class User(tuple, UserMixin):
self.role = user_data[6]
def get_id(self):
return (self.user_id)
return self.user_id
def get_groups(self):
cur = conn.cursor()
@ -113,6 +109,21 @@ def select_users_by_email(email):
cur.execute(sql_call, (email,))
user = User(cur.fetchone()) if cur.rowcount > 0 else None
cur.close()
<<<<<<< HEAD
return
=======
return user
def get_posts_for_user(user_id):
cur = conn.cursor()
sql_call = """
SELECT * FROM posts
"""
cur.execute(sql_call, ())
posts = [Post(i) for i in cur.fetchmany(10)]
print(posts)
cur.close()
return posts
>>>>>>> 44c5063a11505828679f1ebd8455debca1f8cf84

View File

@ -1,18 +1,18 @@
TRUNCATE users, groups, threads, messages, posts, users_groups, users_threads;
INSERT INTO public.users(user_id, first_name, last_name, password, email, address, role) VALUES
(5000, 'Gordon', 'Freeman', '$2b$12$KFkp1IEMGT4QrWwjPGhE3ejOv6Z3pYhx/S4qOoFbanR2sMiZqgeJO', 'test@test.dk', 'aud Auditorium A, bygning 1, 1. sal Universitetsparken 15 (Zoo)', 'teacher'),
(5000, 'Gordon', 'Freeman', '$2b$12$KFkp1IEMGT4QrWwjPGhE3ejOv6Z3pYhx/S4qOoFbanR2sMiZqgeJO', 'gordon@test.dk', 'Black Mesa', 'teacher'),
(5001, 'Rachel', 'Green', '$2b$12$KFkp1IEMGT4QrWwjPGhE3ejOv6Z3pYhx/S4qOoFbanR2sMiZqgeJO', 'rachel@test.dk', 'Cnetral Park', 'parent'),
(5002,'Joey', 'Trib', '$2b$12$KFkp1IEMGT4QrWwjPGhE3ejOv6Z3pYhx/S4qOoFbanR2sMiZqgeJO', 'joey@test.dk', 'New York', 'student'),
(5003,'Chandler', 'Bing', '$2b$12$KFkp1IEMGT4QrWwjPGhE3ejOv6Z3pYhx/S4qOoFbanR2sMiZqgeJO', 'Chandler@test.dk', 'Central Park', 'student'),
(5004,'Phoebe', 'Buffay', '$2b$12$KFkp1IEMGT4QrWwjPGhE3ejOv6Z3pYhx/S4qOoFbanR2sMiZqgeJO', 'Phoebe@test.dk', 'Central Perk', 'parent'),
(5005,'Ross', 'Geller', '$2b$12$KFkp1IEMGT4QrWwjPGhE3ejOv6Z3pYhx/S4qOoFbanR2sMiZqgeJO', 'Ross@test.dk', 'Central Perk', 'student');
(5003,'Chandler', 'Bing', '$2b$12$KFkp1IEMGT4QrWwjPGhE3ejOv6Z3pYhx/S4qOoFbanR2sMiZqgeJO', 'chandler@test.dk', 'Central Park', 'student'),
(5004,'Phoebe', 'Buffay', '$2b$12$KFkp1IEMGT4QrWwjPGhE3ejOv6Z3pYhx/S4qOoFbanR2sMiZqgeJO', 'phoebe@test.dk', 'Central Perk', 'parent'),
(5005,'Ross', 'Geller', '$2b$12$KFkp1IEMGT4QrWwjPGhE3ejOv6Z3pYhx/S4qOoFbanR2sMiZqgeJO', 'ross@test.dk', 'Central Perk', 'student');
INSERT INTO public.groups(group_id, name, leaveable, parents_can_post) VALUES
(1000, 'fodbold', TRUE, TRUE),
(1001,'3a', FALSE, TRUE);
INSERT INTO users_groups (user_id, group_id) VALUES (5000, 1000), (5000, 1001);
INSERT INTO users_groups (user_id, group_id) VALUES (5000, 1000), (5001, 1001);
INSERT INTO threads(thread_id ,title, group_id, creator_id) VALUES
(2000, 'Anbefalinger til fodboldsko?', 1000, 5000);

View File

@ -70,19 +70,6 @@
</div>
<div class="col-md-4">
<div class="content-section">
<h3>Account</h3>
<ul class="list-group">
{% if current_user.is_authenticated %}
<li class="list-group-item list-group-item-light"><a class="nav-item nav-link" href="{{ url_for('Employee.transfer') }}">Transfer</a></li>
<li class="list-group-item list-group-item-light">Checking Accounts</li>
<li class="list-group-item list-group-item-light">Investment Accounts</li>
<li class="list-group-item list-group-item-light"><a class="nav-item nav-link" href="{{ url_for('Customer.invest') }}">View investment accounts</a></li>
<li class="list-group-item list-group-item-light">etc</li>
{% else %}
<li class="list-group-item list-group-item-light">etc</li>
{% endif %}
</ul>
</p>
</div>
</div>
</div>

View File

@ -0,0 +1,46 @@
{% extends "layout.html" %}
{% block content %}
<div class="content-section">
<form method="POST" action="">
{{ form.hidden_tag() }}
<div class="form-group">
{{ form.sourceAccount.label(class="form-control-label") }}
{{ form.sourceAccount(class="form-control")}}
</div>
<fieldset class="form-group">
<div class="form-group">
{{ form.amount.label(class="form-control-label") }}
{% if form.amount.errors %}
{{ form.amount(class="form-control form-control-lg is-invalid") }}
<div class="invalid-feedback">
{% for error in form.password.errors %}
<span>{{ error }}</span>
{% endfor %}
</div>
{% else %}
{{ form.amount(class="form-control form-control-lg") }}
{% endif %}
</div>
</fieldset>
<div class="form-group">
{{ form.targetAccount.label(class="form-control-label") }}
{{ form.targetAccount(class="form-control") }}
</div>
<div class="form-group">
{{ form.submit(class="btn btn-outline-info") }}
</div>
</form>
</div>
<div class="content-section">
<p>Dropdown customer account tuples:</p>
<ul class="list-group">
{% for n in drop_cus_acc %}
<li class="list-group-item list-group-item-light">{{n}}}</li>
{% endfor %}
</ul>
<br>
<p>Same list with a filter: {{ drop_cus_acc|join(', ') }}</p>
</div>
{% endblock content %}