Merge branch 'main' of git.ingemanngade.net:NikolajDanger/UIS_Prototype
This commit is contained in:
@ -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"
|
||||
|
||||
|
@ -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
12
aula/Threads/routes.py
Normal 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()
|
@ -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):
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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>
|
||||
|
46
aula/templates/threads.html
Normal file
46
aula/templates/threads.html
Normal 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 %}
|
Reference in New Issue
Block a user