Compare commits

...

9 Commits

Author SHA1 Message Date
Kostanjevec 21e37d197d some settings functionality 2022-06-23 16:01:16 +02:00
Kostanjevec bb2b1c44d0 added some settings functionality that's stored in db as json 2022-06-23 15:59:55 +02:00
Kostanjevec da0bba6a98 added a lil about page 2022-06-23 15:07:17 +02:00
Kostanjevec 3e461f9863 loop for emails kinda works? 2022-06-23 14:57:21 +02:00
Kostanjevec a9f731564e contiue stuff 2022-06-23 14:45:43 +02:00
Kostanjevec 1dd8d277a2 emails by id dictionary, still buggy tho 2022-06-23 14:44:25 +02:00
Kostanjevec 69cccb8eb9 added stuff for settings 2022-06-23 14:41:11 +02:00
Kostanjevec faeb857666 links for settings, instructions and about 2022-06-23 14:39:26 +02:00
Kostanjevec e31c3e91e6 links for settings, instructions and about 2022-06-23 14:39:16 +02:00
8 changed files with 114 additions and 18 deletions

2
app.py
View File

@ -7,6 +7,7 @@ from menu import bp as menu_bp
from upload import bp as upload_bp
from share import share
from matches import bp as matches_bp
from settings import bp as settings_bp
from create_db import Card, Deck, get_session
from config import CONFIG
@ -146,6 +147,7 @@ def create_app(test_config=None):
app.register_blueprint(menu_bp)
app.register_blueprint(upload_bp)
app.register_blueprint(matches_bp)
app.register_blueprint(settings_bp)
app.add_url_rule('/', endpoint='index')
return app

View File

@ -12,7 +12,7 @@ def get_matches(user_id):
list_of_matches = []
#in all shared cards for the ones you votes yes
#in all shared cards for the ones you voted yes
all_cards = dbsession.query(Card)
all_shared_of_user_of_ir_1 = all_cards.filter(Card.share_id != "0", Card.owner_id == user_id, Card.interest_rate == 1).all()
if all_shared_of_user_of_ir_1 == []:
@ -49,9 +49,10 @@ def index():
users = dbsession.query(User)
names_by_ids = {}
emails_by_ids = {}
for id in user_ids:
names_by_ids[id] = users.get(id).username
emails_by_ids[id] = users.get(id).email
names_by_ids[id] = users.get(id).username
return render_template("matches.html", username=username, list_of_matches=list_of_matches, names_by_ids=names_by_ids, users=users)
return render_template("matches.html", username=username, list_of_matches=list_of_matches, names_by_ids=names_by_ids, emails_by_ids=emails_by_ids, users=users)

View File

@ -6,6 +6,7 @@ from config import CONFIG
from create_db import Deck, Card, get_session
from deck import get_deck, probabilistic_deck_generator
from settings import get_settings
from auth import login
bp = Blueprint('menu', __name__, url_prefix='/menu')
@ -65,11 +66,12 @@ def index():
elif action == "upload":
return redirect(url_for("upload.index"))
elif action == "settings":
pass
settings = get_settings(user_id)
return render_template("settings.html", username=username, user_id=user_id, settings=settings)
elif action == "instructions":
pass
return render_template("instructions.html", username=username, user_id=user_id)
elif action == "about":
pass
return render_template("about.html", username=username, user_id=user_id)
return render_template("menu/menu.html", username=username, deck_status=deck_status)

59
settings.py 100644
View File

@ -0,0 +1,59 @@
from flask import flash, redirect, render_template, url_for, Blueprint, request, session
from create_db import User, get_session
import json
bp = Blueprint('settings', __name__, url_prefix='/settings')
dbsession = get_session()
def get_settings(user_id):
"""get settings from db, turns it into a dict and returns it"""
user = dbsession.query(User).get(user_id)
settings_db = user.settings
if settings_db == "":
#userji se zaenkrat generirajo brez settingsov aka empty string, zato dodamo te defaulte
settings_dict = {
"max_new" : 5,
"max_due" : 5,
"max_shared" : 5,
}
else:
settings_dict = json.loads(settings_db)
print("this is it: ", settings_dict)
return settings_dict
@bp.route("/save_settings", methods=["GET", "POST"])
def save_settings():
"""takes a dict of settings turns it into json and updates the database with it"""
user_id = session['user_id']
username = session['username']
if request.method == "GET":
settings_old = get_settings(user_id)
return render_template("settings.html", username=username, settings=settings_old)
if request.method == "POST":
print('this is the form ', request.form)
#request form stuff
settings_dict = {
"max_new" : request.form.get('max_new', False),
"max_due" : request.form.get('max_due', False),
"max_shared" : request.form.get('max_shared', False),
}
print('this is the dict: ', settings_dict)
settings_json = json.dumps(settings_dict)
print('this is the json: ', settings_json)
user = dbsession.query(User).get(user_id)
user.settings = settings_json
dbsession.commit()
dbsession.close()
flash("settings updated")
return render_template("settings.html", username=username, settings=settings_dict)

View File

@ -0,0 +1,10 @@
{% extends 'base.html' %}
{% block header %}
<head>About</head>
{% endblock %}
{% block content %}
<p>Contentmatcher is a <a href="https://gia.kompot.si/about.php">General Intelligence Agency of Ljubljana</a> prototype.</p>
{% endblock %}

View File

@ -35,7 +35,13 @@
{% endfor %}
</TD>
<TD>
<a href="mailto:email@placeholder.com">send email</a>
<a href="mailto:
{% for card in match %}
{{ emails_by_ids[card['owner_id']] }}
{% endfor %}
">
send email</a>
</TD>
</TR>
{% endfor %}

View File

@ -6,16 +6,15 @@
{% block content %}
<form method="post">
{% if deck_status == "old" %}
<button type="subimt" name="menu" value="new_session">Continiue Session</button> <br />
{% if deck_status == "old" %}
<button type="submit" name="menu" value="new_session">Continiue Session</button> <br />
{% else %}
<button type="subimt" name="menu" value="new_session">New Session</button> <br />
<button type="submit" name="menu" value="new_session">New Session</button> <br />
{% endif %}
<button type="subimt" name="menu" value="matches">Matches</button> <br />
<button type="subimt" name="menu" value="upload">Upload</button> <br />
<button type="subimt" name="menu" value="settings">Settings</button> <br />
<button type="subimt" name="menu" value="instructions">Instructions</button> <br />
<button type="subimt" name="menu" value="about">About</button>
<button type="submit" name="menu" value="matches">Matches</button> <br />
<button type="submit" name="menu" value="upload">Upload</button> <br />
<button type="submit" name="menu" value="settings">Settings</button> <br />
<button type="submit" name="menu" value="instructions">Instructions</button> <br />
<button type="submit" name="menu" value="about">About</button>
</form>
{% endblock %}

View File

@ -0,0 +1,17 @@
{% extends 'base.html' %}
quantity
{% block header %}
<head>Settings</head>
{% endblock %}
{% block content %}
<form method="post" action={{ url_for('settings.save_settings') }}>
<label for="quantity">Maximum new cards per session</label>
<input type="number" id="quantity" name="max_new" value= '{{ settings['max_new'] }}' min="0" required="required">
<label for="quantity">Maximum seen cards per session</label>
<input type="number" id="quantity" name="max_due" value='{{ settings['max_due'] }}' min="0" required="required">
<label for="quantity">Maximum shared cards per session</label>
<input type="number" id="quantity" name="max_shared" value='{{ settings['max_shared'] }}' min="0" required="required">
<input type="submit" value="Save">
</form>
{% endblock %}