mostly works but need to figure out message locking in the database
database changed again, and scripts also
This commit is contained in:
parent
bb29d6a2f3
commit
93a1aac507
@ -1 +1 @@
|
||||
<mxfile host="Electron" modified="2020-10-20T11:00:03.872Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/13.6.2 Chrome/83.0.4103.122 Electron/9.2.0 Safari/537.36" etag="ZBDpQQ2WmE6KWBS7qbMe" version="13.6.2" type="device"><diagram id="JNM6W-7HF5Xyfk11UdC0" name="Page-1">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</diagram></mxfile>
|
||||
<mxfile host="Electron" modified="2020-10-31T16:41:46.595Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/13.6.2 Chrome/83.0.4103.122 Electron/9.2.0 Safari/537.36" etag="cq-ppZPf8VK1-7qTTUK_" version="13.6.2" type="device"><diagram id="JNM6W-7HF5Xyfk11UdC0" name="Page-1">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</diagram></mxfile>
|
Binary file not shown.
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 262 KiB |
@ -7,7 +7,9 @@ CREATE TABLE moderators(
|
||||
moderatorid serial PRIMARY KEY,
|
||||
naam varchar(64) NOT NULL,
|
||||
hash varchar(255),
|
||||
maylogin boolean NOT NULL,
|
||||
lastseen timestamp
|
||||
|
||||
);
|
||||
|
||||
CREATE TABLE twitterberichten(
|
||||
@ -23,12 +25,10 @@ CREATE TABLE statuses(
|
||||
CREATE TABLE berichten(
|
||||
berichtid serial PRIMARY KEY,
|
||||
bericht varchar(140) NOT NULL,
|
||||
datumontvangen date NOT NULL,
|
||||
tijdontvangen time NOT NULL,
|
||||
datumontvangen timestamp NOT NULL,
|
||||
naamposter varchar(32),
|
||||
moderatorid int,
|
||||
datumgekeurd date,
|
||||
tijdgekeurd time,
|
||||
datumgekeurd timestamp,
|
||||
statusid int NOT NULL,
|
||||
locatieid int NOT NULL,
|
||||
twitterid bigint,
|
||||
@ -39,7 +39,7 @@ CREATE TABLE berichten(
|
||||
);
|
||||
|
||||
-- administrator:password
|
||||
INSERT INTO moderators(naam, hash) VALUES ('administrator', 'a3eec2461d6637164d836db2c9f19795357c80c1420ccc13386839ae1104b53a');
|
||||
INSERT INTO moderators(naam, hash, maylogin) VALUES ('administrator', 'a3eec2461d6637164d836db2c9f19795357c80c1420ccc13386839ae1104b53a', true);
|
||||
INSERT INTO locaties(locatieid, naam) VALUES ('1', 'Utrecht Centraal');
|
||||
INSERT INTO locaties(locatieid, naam) VALUES ('2', 'Amsterdam Centraal');
|
||||
INSERT INTO locaties(locatieid, naam) VALUES ('3', 'Rotterdam Centraal');
|
||||
|
@ -1 +1 @@
|
||||
<mxfile host="Electron" modified="2020-10-20T10:57:25.099Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/13.6.2 Chrome/83.0.4103.122 Electron/9.2.0 Safari/537.36" etag="BMyJVbrVZ4EPQjX7XkGy" version="13.6.2" type="device"><diagram id="JNM6W-7HF5Xyfk11UdC0" name="Page-1">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</diagram></mxfile>
|
||||
<mxfile host="Electron" modified="2020-10-31T16:43:03.934Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/13.6.2 Chrome/83.0.4103.122 Electron/9.2.0 Safari/537.36" etag="T7l8-jizCmwrtWpbLF4g" version="13.6.2" type="device"><diagram id="JNM6W-7HF5Xyfk11UdC0" name="Page-1">7V1bb+MoFP41lXYfZhRfkzy2aTsz6nTUbavddl9GNKaxdxyTxaRJ9tcvtiGxA0nt1Lc4SJVqMMb4fIePw+FAzozRdPkFg5l7ixzon+k9Z3lmXJ7pumZYPfovylklOQPNTjIm2HNYoU3Gg/cfZJnsucncc2CYKUgQ8ok3y2aOURDAMcnkAYzRIlvsFfnZt87ABAoZD2Pgi7l/eQ5xWa5mDzc3vkJv4rJXD/R+cmMKeGH2JaELHLRIZRlXZ8YII0SSq+lyBP1IeFwuyXPXO+6uG4ZhQPI8sLjrBcPZve38uZp/u7+ZnN/fTj9Zg6SaN+DP2Rez1pIVFwEMnPNIkjR1dY8CmnvhkqlPkxq9pG/Hqyea6PHEc5T4bPHk5TJ983LFU0uPPPE66HXqKZraPBQl+DMhAZhk2vKIbkGw4reuPd9fv8xJpURZMfGFaI7HcI+AdIMpHcATSPYU1FhB6GQUimHxBaIppJ9PCyw2asQ7h5tSIJ6HoQ+I95ZVQ8C0ebKubv2GO+TRb9N7rOdZNquH9TvT7GWrSL6cPZVWm62KbC1bkTHcqiiRjFARvUh99iYr1soiGjr8sIYeoGkHa3VG7UR9lWjq4bppDnLqZt9UulmFbva1Y2LP93RzJ5cerqF9PaeG2prS0Co0NIeCUrtkFl0S8OJvaefC9Qh8mIEY4wU18LhyMDstUg5qeBHgBRCzZ8bI98Es9OLKkhKu5zvfwQrNCX8NT+1WrTeICVzuVQV21xxkRaxxgyulKrop0RWdC0OmFxkgikpdzy91+unEA/49tV1BMMkDgChgB6PZI+9hUcYsUieIr96oVEOW90r78wj5KMIpSHiIoBm76cNX/uwLIgRNWQIzaa0rjSVlXdA/KtBRxDgW/ZoRTWubNP2LimMyQkFIMPBibCEIyQKGctT3Ku/7qvAu1EZFSBsSpG0/+sYXejGJLyD2xi6BAb9DX7S+WapexDMgsNELRCX36scE73qOQ1tQghrkxE4/BDtNRullYNe3n8/BzwtrrLkL78Ua3Fhf9U/aUEmfk+ha8ik0hnV2JFNRZr2UucoC+v5gWRHw1k4GDWcgyGiA/e88cpZcvFKT49OCNe6cFgkQngJ/U2CLeun7I5tgzb5JxUmRu5vjI4Ho+x9YeyVuoL39qwQ+LkETpHzM7bZKVCGkqhDny5RAqcDHBoWquMFWg0Ijg4Jp5RwUqrIG+gLwjMqPr6fmxMjOjVFj9rIuOhPeAB67AP+mmb3fFTStMaZzLOoo3qyAN+1Bw8a0uFbiADKfUmPhjaIbuSA62kcHuaFqzrwVvYIUHKggaY25yZfuFU1WS5PD3A76qoAWB8gAgOkMhRSOlK9g7ab9cVq+235uRJtjU9FhyI1RQ++uLVoAmtawqqFYtQ5W1TS9aVoV++QUORADgnDGB7um0Oub0yJWIzeozRGr6JDnsQknDklbCNWwFKHWQqiG2TChGqIDPJ7PT+AvOMdSRj0tS5V3hVYTqhTE7s77C2DSAKP+0PS/9e/z1eNEN9zBH7/w86jPqUERasWEatn1EaoUaNEFFxJKqGFknR5/d9yn2y1hSGkTxSC6jlicHwSkLQYnj+JW/FgxP/abXj/qi13RR2NAPKjm76mO0BIylZubom+7I2z6UUhaQ6emotNaQlt7Ta8z9UVfGll4hIKxm057pzWD7x9DYKoYVvHiTTrNqkcYKyqLHt4Bz7FudRtsbUs0ZCvpPYnUeWBS+VIvsMFQDW45tLfYXjcZ1pVFFdqi90QYwdhsITypMcw+zMdSFXjyzW7l+jiPVPzLLdHXAYe8zbKNo4o3q+TNPRvepNBXZqiIURJ7fSx3p+VjsQ+LkagKQjmZStYR2P4yhUphjq2so8m2liqOrYFjZfvH6h1exTX3KMC3u93zsDiIei1Q0eThEbu22d2I3QLQtMY6lYxvO/Hpii9F6+f0pazDwsoXu5oUlLNSoOdWhsZGKE124MmW5b8Onj4td4pW4gygssGs3DW8IxV/ewYsZerXzZxtcadooqn/zqaTE3OoaCXODSpzqIj9t+MOlQKotMahoonHsiiWrYVlG3eoaPId093tnodtga7XBhVHvlNwqBSApj32aY5D7BVzVsGcsiN5ah00JacauiB0ZYbpaUX+rftEm+1S0eKJ+VW3rA4TbH5gWmOa6uWGtyg+3cWneSMOq0NaXJvw6XeHMDrd7NQ5tcAySHOcKk4liDelagumMwVMM5z6/epi/vXiaTHXx+G3oeb1fv76R+2KllGqAGBult1JqdKDe2pFWqTUKVj5aOId7YGR78C0W9+bIUppe8TV4BeEfAgUKC0yPM0CPtFjDZXQ+KY5vu3EzmkEVrbtxFQnHJdi/5sHuTnrdT2bMt/ZlpXPdlWe5k8tmYcdfmzU6au2lfQ3dGqI9Nmvs0dZoktSsWe17NmWaAlL3K+5d0f6icVKrHtGCVRalf9E8tso3d6MXgCUogxbWTcTZ9SKYWth2MYjJSxx2h6f2Tmbv/he6EKnu/00/2JCY3aoOG/s9FmcBSBpwDiVH49XIJS3Kw6V3HtPynCoyKWufmqv6IC1X3vb4VCRt1Hmstyy+5NjUbt7jsf+TtCOoD95GwdK/M0E9snbrAL76ubNBlwp8rOkRS/a5jDpU/Kk7O8Y7YhEkSMoOsO6s+vko6g0scIqR0n5Uhqi2Dp9KXLoRV9KQrGd7aBrZW+xCdr9n977KDStMU8lP+Yl4AMD5xzjWKZX94n8UrhQmeDVUzrxHImNUhNLXi6ZGJPUiqeWHnlKXaeeoqnNQ1GCPxP7aTJteUS3IFjxW9de9PXsZU4qJSLIYxfRHI/hPlJMyhHO9+/NTaAzgXl7peyMYp6HoQ+I9wYzrZXBz95wh+IVHq5ZRi/rQNKH5md+2DSvJfl29uBGj4S6zC1nlK5pn/WtuhL5CHXFOrn+eJma0iRGiKSL077t3iIHRiX+Bw==</diagram></mxfile>
|
Binary file not shown.
Before Width: | Height: | Size: 406 KiB After Width: | Height: | Size: 394 KiB |
@ -1 +1 @@
|
||||
<mxfile host="Electron" modified="2020-10-20T10:58:22.189Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/13.6.2 Chrome/83.0.4103.122 Electron/9.2.0 Safari/537.36" etag="eqiQvSHtfg_PLV3qvBa5" version="13.6.2" type="device"><diagram id="JNM6W-7HF5Xyfk11UdC0" name="Page-1">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</diagram></mxfile>
|
||||
<mxfile host="Electron" modified="2020-10-31T16:43:41.405Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/13.6.2 Chrome/83.0.4103.122 Electron/9.2.0 Safari/537.36" etag="X0UP-HxUBg-bzk5Q34ap" version="13.6.2" type="device"><diagram id="JNM6W-7HF5Xyfk11UdC0" name="Page-1">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</diagram></mxfile>
|
Binary file not shown.
Before Width: | Height: | Size: 267 KiB After Width: | Height: | Size: 254 KiB |
@ -10,12 +10,11 @@ locatieid = 1
|
||||
|
||||
def insertdatabase(bericht, naamposter):
|
||||
|
||||
time = datetime.datetime.utcnow().strftime("%H:%M:%S")
|
||||
date = datetime.datetime.utcnow().strftime("%Y-%m-%d")
|
||||
date = datetime.datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S")
|
||||
|
||||
try:
|
||||
QUERY = 'INSERT INTO berichten(bericht, datumontvangen, tijdontvangen, locatieid, naamposter, statusid) VALUES (%s, %s, %s, %s, %s, %s)'
|
||||
DATA = (bericht, date, time, locatieid, naamposter, '1')
|
||||
QUERY = 'INSERT INTO berichten(bericht, datumontvangen, locatieid, naamposter, statusid) VALUES (%s, %s, %s, %s, %s)'
|
||||
DATA = (bericht, date, locatieid, naamposter, '1')
|
||||
cur.execute(QUERY, DATA)
|
||||
conn.commit()
|
||||
return True
|
||||
|
25
moderator.py
25
moderator.py
@ -55,7 +55,7 @@ def newaccount():
|
||||
"""
|
||||
hashedpass = hashlib.sha256(password1.encode('UTF-8') + 'saltandpepper'.encode('UTF-8')).hexdigest()
|
||||
try:
|
||||
cur.execute("INSERT INTO moderators(naam, hash) VALUES (%s, %s)", (username, hashedpass))
|
||||
cur.execute("INSERT INTO moderators(naam, hash, maylogin) VALUES (%s, %s, %s)", (username, hashedpass, 'true'))
|
||||
conn.commit()
|
||||
print('Account aangemaakt!')
|
||||
return True
|
||||
@ -113,9 +113,9 @@ def getmessage(moderatorid):
|
||||
"""
|
||||
vraagt de outste bericht op en zet het bericht gelijk op moderator lock(2)
|
||||
returnt een tuple met de oudste bericht met de status 1(pending moderation)
|
||||
de tuple ziet er alsvolgt uit: (berichtid int, berichtinhoud str, datum date, tijd time, naam str)
|
||||
de tuple ziet er alsvolgt uit: (berichtid int, berichtinhoud str, datum date, naam str)
|
||||
"""
|
||||
cur.execute("SELECT berichtid, bericht, datumontvangen, tijdontvangen, naamposter FROM berichten WHERE statusid = 1 ORDER BY datumontvangen, tijdontvangen LIMIT 1")
|
||||
cur.execute("SELECT berichtid, bericht, datumontvangen, naamposter FROM berichten WHERE statusid = 1 ORDER BY datumontvangen LIMIT 1")
|
||||
|
||||
gottuple = cur.fetchone()
|
||||
|
||||
@ -133,22 +133,20 @@ def unlockmessage(berichtid):
|
||||
|
||||
def acceptmessage(berichtid, moderatorid):
|
||||
|
||||
time = datetime.datetime.utcnow().strftime("%H:%M:%S")
|
||||
date = datetime.datetime.utcnow().strftime("%Y-%m-%d")
|
||||
date = datetime.datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S")
|
||||
|
||||
QUERY = "UPDATE berichten SET statusid = 4, datumgekeurd = (%s), tijdgekeurd = (%s), moderatorid = (%s) WHERE berichtid = (%s)"
|
||||
DATA = (date, time, moderatorid, berichtid)
|
||||
QUERY = "UPDATE berichten SET statusid = 4, datumgekeurd = (%s), moderatorid = (%s) WHERE berichtid = (%s)"
|
||||
DATA = (date, moderatorid, berichtid)
|
||||
cur.execute(QUERY, DATA)
|
||||
conn.commit()
|
||||
return True
|
||||
|
||||
def rejectmessage(berichtid, moderatorid):
|
||||
|
||||
time = datetime.datetime.utcnow().strftime("%H:%M:%S")
|
||||
date = datetime.datetime.utcnow().strftime("%Y-%m-%d")
|
||||
date = datetime.datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S")
|
||||
|
||||
QUERY = "UPDATE berichten SET statusid = 3, datumgekeurd = (%s), tijdgekeurd = (%s), moderatorid = (%s) WHERE berichtid = (%s)"
|
||||
DATA = (date, time, moderatorid, berichtid)
|
||||
QUERY = "UPDATE berichten SET statusid = 3, datumgekeurd = (%s), moderatorid = (%s) WHERE berichtid = (%s)"
|
||||
DATA = (date, moderatorid, berichtid)
|
||||
cur.execute(QUERY, DATA)
|
||||
conn.commit()
|
||||
return True
|
||||
@ -174,7 +172,7 @@ def moderateloop(moderatorid):
|
||||
print('Er zijn geen berichten meer om te weergeven, probeer het later opnieuw')
|
||||
return True
|
||||
|
||||
print("Op " + str(bericht[2]) + " " + str(bericht[3]) + " heeft " + str(bericht[4]) + " een bericht achtergelaten")
|
||||
print("Op " + str(bericht[2]) + " heeft " + str(bericht[3]) + " een bericht achtergelaten")
|
||||
print(str(bericht[0]) + " " + str(bericht[1]))
|
||||
|
||||
while exitvar != True:
|
||||
@ -295,6 +293,9 @@ def login():
|
||||
elif hashedpass != sqlreturn[2]:
|
||||
print('Wachtwoord onjuist')
|
||||
return False
|
||||
elif sqlreturn[3] != True:
|
||||
print('account mag niet inloggen')
|
||||
return False
|
||||
|
||||
menu(sqlreturn[0], sqlreturn[1])
|
||||
|
||||
|
@ -20,6 +20,9 @@ def func_check_login(uname, pword):
|
||||
elif hashedpass != sqlreturn[2]:
|
||||
flash('Uw wachtwoord is fout')
|
||||
return False
|
||||
elif sqlreturn[3] != True:
|
||||
flash('Dit account mag niet meer inloggen')
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
@ -30,7 +33,6 @@ def func_listmoderators(limit, page):
|
||||
countmoderators = cur.fetchone()
|
||||
return (allmoderators, countmoderators)
|
||||
|
||||
|
||||
def func_addmoderator(uname, pword, pword2):
|
||||
username = uname.lower()
|
||||
password = pword
|
||||
@ -55,7 +57,7 @@ def func_addmoderator(uname, pword, pword2):
|
||||
|
||||
if sqlreturn == None:
|
||||
hashedpass = hashlib.sha256(password.encode('UTF-8') + 'saltandpepper'.encode('UTF-8')).hexdigest()
|
||||
cur.execute("INSERT INTO moderators(naam, hash) VALUES (%s, %s)", (username, hashedpass))
|
||||
cur.execute("INSERT INTO moderators(naam, hash, maylogin) VALUES (%s, %s, 'true')", (username, hashedpass))
|
||||
conn.commit()
|
||||
flash('Account voor ' + username + ' aangemaakt!')
|
||||
return True
|
||||
@ -71,12 +73,47 @@ def func_removemoderator(moderatorid):
|
||||
return True
|
||||
except:
|
||||
conn.rollback()
|
||||
flash('Probleem met het verwijderen van account! Heeft de account berichten gemodereerd?')
|
||||
return False
|
||||
try:
|
||||
cur.execute('UPDATE moderators SET maylogin = false WHERE moderatorid = (%s)', [moderatorid])
|
||||
conn.commit()
|
||||
flash('Account kan niet verwijdert worden, account mag niet meer inloggen')
|
||||
return True
|
||||
except:
|
||||
conn.rollback()
|
||||
flash('Probleem opgetreden bij het aanpassen van moderator account')
|
||||
return False
|
||||
|
||||
def publish_twitter(berichtid):
|
||||
|
||||
def func_listberichten(limit, page):
|
||||
cur.execute('SELECT berichten.berichtid, berichten.bericht, berichten.datumontvangen, berichten.naamposter, '
|
||||
'berichten.datumgekeurd, locaties.naam, moderators.naam, statuses.status, berichten.twitterid '
|
||||
'FROM berichten '
|
||||
'LEFT OUTER JOIN statuses ON berichten.statusid = statuses.statusid '
|
||||
'LEFT OUTER JOIN locaties ON berichten.locatieid = locaties.locatieid '
|
||||
'LEFT OUTER JOIN moderators ON berichten.moderatorid = moderators.moderatorid '
|
||||
'ORDER BY datumontvangen DESC LIMIT (%s) OFFSET (%s)', (limit, page))
|
||||
allberichten = cur.fetchall()
|
||||
cur.execute('SELECT COUNT(*) FROM berichten')
|
||||
countberichten = cur.fetchone()
|
||||
return (allberichten, countberichten)
|
||||
|
||||
def func_querybericht(berichtid):
|
||||
cur.execute('SELECT berichten.berichtid, berichten.bericht, berichten.datumontvangen, berichten.naamposter, '
|
||||
'berichten.datumgekeurd, locaties.naam, moderators.naam, statuses.status, berichten.twitterid '
|
||||
'FROM berichten '
|
||||
'LEFT OUTER JOIN statuses ON berichten.statusid = statuses.statusid '
|
||||
'LEFT OUTER JOIN locaties ON berichten.locatieid = locaties.locatieid '
|
||||
'LEFT OUTER JOIN moderators ON berichten.moderatorid = moderators.moderatorid '
|
||||
'WHERE berichtid = (%s)', [berichtid])
|
||||
return cur.fetchone()
|
||||
|
||||
def func_lockbericht(berichtid, moderatorid):
|
||||
cur.execute('UPDATE berichten SET statusid = 2, moderatorid = (%s) WHERE berichtid = (%s)', (moderatorid, berichtid))
|
||||
conn.commit()
|
||||
return True
|
||||
|
||||
|
||||
|
||||
@app.route('/')
|
||||
def root():
|
||||
return render_template('root.html')
|
||||
@ -88,7 +125,6 @@ def login():
|
||||
session['username'] = request.form['uname']
|
||||
return redirect(url_for('home'))
|
||||
else:
|
||||
flash('Er is een probleem bij het inloggen')
|
||||
return render_template('login.html')
|
||||
else:
|
||||
if 'username' in session:
|
||||
@ -118,9 +154,11 @@ def moderators():
|
||||
|
||||
page = maxitems * pagenum
|
||||
|
||||
moderators = func_listmoderators(maxitems, page)[0]
|
||||
listreturn = func_listmoderators(maxitems, page)
|
||||
moderators = listreturn[0]
|
||||
moderatorcount = listreturn[1][0]
|
||||
|
||||
return render_template('moderators.html', moderators=moderators)
|
||||
return render_template('moderators.html', moderators=moderators, moderatorcount=moderatorcount)
|
||||
else:
|
||||
flash('You are not logged in!')
|
||||
return redirect(url_for('login'))
|
||||
@ -147,5 +185,39 @@ def listmoderators():
|
||||
flash('You are not logged in!')
|
||||
return redirect(url_for('login'))
|
||||
|
||||
@app.route('/berichten')
|
||||
def berichten():
|
||||
if 'username' in session:
|
||||
if request.args.get('maxitems'):
|
||||
maxitems = int(request.args.get('maxitems'))
|
||||
else:
|
||||
maxitems = 10
|
||||
if request.args.get('pagenum'):
|
||||
pagenum = int(request.args.get('pagenum')) - 1
|
||||
else:
|
||||
pagenum = 0
|
||||
|
||||
page = maxitems * pagenum
|
||||
|
||||
listreturn = func_listberichten(maxitems, page)
|
||||
berichten = listreturn[0]
|
||||
berichtcount = listreturn[1][0]
|
||||
|
||||
return render_template('berichten.html', berichten=berichten, berichtcount=berichtcount)
|
||||
else:
|
||||
flash('You are not logged in!')
|
||||
return redirect(url_for('login'))
|
||||
|
||||
@app.route('/bericht/<berichtid>')
|
||||
def bericht(berichtid):
|
||||
if 'username' in session:
|
||||
bericht = func_querybericht(berichtid)
|
||||
return render_template('bericht.html', bericht=bericht)
|
||||
else:
|
||||
flash('You are not logged in!')
|
||||
return redirect(url_for('login'))
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
app.run('0.0.0.0', debug=True)
|
36
templates/bericht.html
Normal file
36
templates/bericht.html
Normal file
@ -0,0 +1,36 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Home</title>
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}"/>
|
||||
</head>
|
||||
<body>
|
||||
{% include 'navbar_template.html' %}
|
||||
{% include 'flash_template.html' %}
|
||||
<h1>Bericht ID {{ berichtid }}</h1>
|
||||
<table style="width:100%">
|
||||
<tr>
|
||||
<th>Bericht ID</th>
|
||||
<th>Naam</th>
|
||||
<th>Bericht inhoud</th>
|
||||
<th>Geplaatst in</th>
|
||||
<th>Ontvangen op</th>
|
||||
<th>Status bericht</th>
|
||||
<th>Gekeurd op</th>
|
||||
<th>Moderator</th>
|
||||
<th>Twitter ID</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{ bericht[0] }}</th>
|
||||
<th>{{ bericht[3] }}</th>
|
||||
<th>{{ bericht[1] }}</th>
|
||||
<th>{{ bericht[5] }}</th>
|
||||
<th>{{ bericht[2] }}</th>
|
||||
<th>{{ bericht[7] }}</th>
|
||||
<th>{{ bericht[4] }}</th>
|
||||
<th>{{ bericht[6] }}</th>
|
||||
<th>{{ bericht[8] }}</th>
|
||||
</tr>
|
||||
</body>
|
||||
</html>
|
59
templates/berichten.html
Normal file
59
templates/berichten.html
Normal file
@ -0,0 +1,59 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Berichten</title>
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}"/>
|
||||
</head>
|
||||
<body>
|
||||
{% include 'navbar_template.html' %}
|
||||
{% include 'flash_template.html' %}
|
||||
<h1>List of berichten</h1>
|
||||
<p>Er zijn momenteel {{ berichtcount }} berichten in het systeem</p>
|
||||
<table style="width:100%">
|
||||
<tr>
|
||||
<th>Bericht ID</th>
|
||||
<th>Naam</th>
|
||||
<th>Bericht inhoud</th>
|
||||
<th>Geplaatst in</th>
|
||||
<th>Ontvangen op</th>
|
||||
<th>Status bericht</th>
|
||||
<th>Gekeurd op</th>
|
||||
<th>Moderator</th>
|
||||
<th>Twitter ID</th>
|
||||
</tr>
|
||||
{% for row in berichten %}
|
||||
<tr>
|
||||
<th><a href="/bericht/{{ row[0] }}">{{ row[0] }}</a></th>
|
||||
<th>{{ row[3] }}</th>
|
||||
<th>{{ row[1] }}</th>
|
||||
<th>{{ row[5] }}</th>
|
||||
<th>{{ row[2] }}</th>
|
||||
<th>{{ row[7] }}</th>
|
||||
<th>{{ row[4] }}</th>
|
||||
<th>{{ row[6] }}</th>
|
||||
<th>{{ row[8] }}</th>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
|
||||
<form>
|
||||
<label for="maxitems">Max items in table:</label>
|
||||
<select name="maxitems" id="maxitems">
|
||||
<option value="10">10</option>
|
||||
<option value="20">20</option>
|
||||
<option value="50">50</option>
|
||||
<option value="100">100</option>
|
||||
</select>
|
||||
<label for="pagenum">Table page:</label>
|
||||
<select name="pagenum" id="pagenum">
|
||||
<option value="1">1</option>
|
||||
<option value="2">2</option>
|
||||
<option value="3">3</option>
|
||||
<option value="4">4</option>
|
||||
</select>
|
||||
<button type="submit">Refresh table</button>
|
||||
</form>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -3,11 +3,11 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Home</title>
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}"/>
|
||||
</head>
|
||||
<body>
|
||||
{% include 'navbar_template.html' %}
|
||||
{% include 'flash_template.html' %}
|
||||
<h1>Hello {{ username }}</h1>
|
||||
<p>Click <a href="login">here</a> to logout</p>
|
||||
<p>Click <a href="moderators">here</a> to edit moderators in the system</p>
|
||||
</body>
|
||||
</html>
|
@ -3,8 +3,10 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Login</title>
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}"/>
|
||||
</head>
|
||||
<body>
|
||||
{% include 'navbar_template.html' %}
|
||||
{% include 'flash_template.html' %}
|
||||
<h1>Please login to access home page</h1>
|
||||
<form method="POST">
|
||||
|
@ -9,11 +9,13 @@
|
||||
{% include 'navbar_template.html' %}
|
||||
{% include 'flash_template.html' %}
|
||||
<h1>List of moderators</h1>
|
||||
<table>
|
||||
<p>Er zijn momenteel {{ moderatorcount }} moderators in het systeem</p>
|
||||
<table style="width:100%">
|
||||
<tr>
|
||||
<th>Moderator ID</th>
|
||||
<th>Username</th>
|
||||
<th>Hashed Password</th>
|
||||
<th>May login</th>
|
||||
<th>Last seen</th>
|
||||
</tr>
|
||||
{% for row in moderators %}
|
||||
@ -22,6 +24,7 @@
|
||||
<th>{{ row[1] }}</th>
|
||||
<th>{{ row[2] }}</th>
|
||||
<th>{{ row[3] }}</th>
|
||||
<th>{{ row[4] }}</th>
|
||||
<th>
|
||||
<form method="POST" action="/moderators/removemoderator">
|
||||
<button type="submit" name="delete" value="{{ row[0] }}">Delete</button>
|
||||
|
@ -1,5 +1,7 @@
|
||||
<ul>
|
||||
<ul>
|
||||
|
||||
<li><a href="/home">Home</a></li>
|
||||
<li><a href="/moderators">Moderators</a></li>
|
||||
<li><a href="/berichten">Berichten</a></li>
|
||||
<li><a href="/login" style="float:right;">Login/Logout</a></li>
|
||||
</ul>
|
@ -3,10 +3,11 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Root</title>
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}"/>
|
||||
</head>
|
||||
<body>
|
||||
{% include 'navbar_template.html' %}
|
||||
{% include 'flash_template.html' %}
|
||||
<h1>Welcome to the index page!</h1>
|
||||
<p>Click <a href="login">here</a> for the login page</p>
|
||||
<p>Click <a href="home">here</a> for the home page</p>
|
||||
</body>
|
||||
</html>
|
Reference in New Issue
Block a user