Dirty fix for id validation on answer page

This commit is contained in:
Sauer 2019-04-13 21:58:30 +02:00
parent 6afb88c4be
commit 309bdf4983

View File

@ -6,6 +6,7 @@ import smtplib
from email.message import EmailMessage
from wtforms import Form, StringField, SelectField, RadioField, TextAreaField, BooleanField, validators
from wtforms.fields.html5 import EmailField
import importlib
app = Flask(__name__)
app.jinja_env.trim_blocks = True
@ -41,7 +42,6 @@ class SolutionForm(Form):
question = RadioField(u'Welche Frage ist ausschlaggebend für die Hauszuordnung?', choices=choices, validators=[validators.InputRequired(message='Bitte ankreuzen'),])
solution_text = TextAreaField(u'Textfeld')
def create_used_id_list():
data = list()
@ -54,29 +54,23 @@ def create_used_id_list():
data.append(line[0])
return data
def check_id(user_id):
used_ids = create_used_id_list()
if user_id in used_ids:
return True
else:
return False
class AnswerForm(Form):
user_id = StringField('Deine Id', [validators.InputRequired(), validators.AnyOf(values=create_used_id_list(), message='Leider ist das keine gültige ID')])
used_id_list = create_used_id_list()
user_id = StringField('Deine Id', [validators.InputRequired(), validators.AnyOf(values=used_id_list, message='Leider ist das keine gültige ID')])
@app.route('/')
def index():
return render_template('index.html', title='Sortierhut')
def send_mail(user_id):
with open(mailfile) as f:
msg = EmailMessage()
msg.set_content(f.read())
msg['Subject'] = 'Deine Sortierhut-ID'
msg['From'] = 'anna-carina-dorothea.sauer@stud.uni-bamberg.de'
msg['To'] = 'anna-carina-dorothea.sauer@stud.uni-bamberg.de'
s = smtplib.SMTP('localhost')
s.send_message(msg)
s.quit()
return
@app.route('/questions', methods=['GET', 'POST'])
def questions():
form = QuestionForm(request.form)
@ -87,12 +81,10 @@ def questions():
new_row.append(new_id)
for item in request.form:
new_row.append(request.form[item])
if len(new_row) == 6:
new_row.append('n')
writer = csv.writer(f)
writer.writerow(new_row)
# user = User()
# user.name = form.username
# spirit = request.form['spirit_animal']
# user.save()
return redirect(url_for('result', user_id=new_id))
return render_template('questions.html', form=form, title='Sortierhut')
@ -143,10 +135,14 @@ def admin_solution():
@app.route('/answers', methods=['GET', 'POST'])
def answers():
file_data = create_used_id_list()
print(file_data)
form = AnswerForm(request.form)
if request.method == 'POST' and form.validate():
ident = request.form['user_id']
return redirect(url_for('view_answers', user_id=ident))
if request.method == 'POST':
print(request.form['user_id'])
if request.form['user_id'] in file_data:
ident = request.form['user_id']
return redirect(url_for('view_answers', user_id=ident))
return render_template('answers.html', form=form, title='Sortierhut', text='Hallo, Admin Fooboar')
@app.route('/view_answers<user_id>')