Created submit solution function
This commit is contained in:
parent
a9abb30810
commit
7073702440
@ -2,7 +2,7 @@ from flask import Flask, render_template, request, redirect, url_for
|
||||
import uuid
|
||||
import csv
|
||||
import os
|
||||
from wtforms import Form, StringField, SelectField, BooleanField, validators
|
||||
from wtforms import Form, StringField, SelectField, RadioField, TextAreaField, BooleanField, validators
|
||||
from wtforms.fields.html5 import EmailField
|
||||
|
||||
app = Flask(__name__)
|
||||
@ -10,11 +10,13 @@ app.jinja_env.trim_blocks = True
|
||||
app.jinja_env.lstrip_blocks = True
|
||||
|
||||
datafile = "data.csv"
|
||||
solutionfile = "solutions.csv"
|
||||
|
||||
def check_input(form, field):
|
||||
if field.data == 'default':
|
||||
raise validators.ValidationError('Bitte wähle eine Option aus')
|
||||
|
||||
|
||||
class QuestionForm(Form):
|
||||
computers = [('default', 'Bitte auswählen'), ('hal', 'HAL 9000 (2001: Odyssee im Weltraum)'), ('deepthought', 'Deep Thought (Hitchhiker\'s Guide)'), ('neuromancer', 'Neuromancer (Neuromancer)'), ('samantha', 'Samatha (Her)'), ('tars', 'TARS und CASE (Interstellar)')]
|
||||
computer = SelectField(u'Fiktionaler Lieblingscomputer', choices=computers, validators=[validators.InputRequired(), check_input])
|
||||
@ -30,6 +32,13 @@ class QuestionForm(Form):
|
||||
email = EmailField('Email-Adresse')
|
||||
|
||||
|
||||
class SolutionForm(Form):
|
||||
user_id = StringField('id', [validators.InputRequired()])
|
||||
choices = [('computer', 'Fiktionaler Lieblingscomputer'), ('status', 'HTTP-Statuscode'), ('vegetable', 'Lieblingsgemüse'), ('spirit_animal', 'Spirit Animal'), ('operating system', 'Betriebssystem'), ('check', 'Bitte nicht ankreuzen')]
|
||||
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()
|
||||
|
||||
@ -42,9 +51,11 @@ def create_used_id_list():
|
||||
data.append(line[0])
|
||||
return data
|
||||
|
||||
|
||||
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')])
|
||||
|
||||
|
||||
@app.route('/')
|
||||
def index():
|
||||
return render_template('index.html', title='Sortierhut')
|
||||
@ -66,7 +77,21 @@ def questions():
|
||||
# spirit = request.form['spirit_animal']
|
||||
# user.save()
|
||||
return redirect(url_for('result', user_id=new_id))
|
||||
return render_template('questions.html', form=form)
|
||||
return render_template('questions.html', form=form, title='Sortierhut')
|
||||
|
||||
@app.route('/solution', methods=['GET', 'POST'])
|
||||
def solution():
|
||||
form = SolutionForm(request.form)
|
||||
if request.method == 'POST' and form.validate():
|
||||
with open(solutionfile, "a", newline='') as f:
|
||||
solution_list = list()
|
||||
for item in request.form:
|
||||
solution_list.append(request.form[item])
|
||||
writer = csv.writer(f)
|
||||
writer.writerow(solution_list)
|
||||
return redirect(url_for('thanks'))
|
||||
return render_template('solution.html', form=form, title='Sortierhut', text='Hallo, Lösung')
|
||||
|
||||
|
||||
# @app.route('/form')
|
||||
# def form():
|
||||
@ -113,9 +138,9 @@ def view_answers(user_id):
|
||||
break
|
||||
return render_template('view.html', title='Sortierhut', user_id=user_id, user_row=user_row)
|
||||
|
||||
@app.route('/solution')
|
||||
def solution():
|
||||
return render_template('solution.html', title='Sortierhut', text='Hallo, Lösung')
|
||||
@app.route('/thanks')
|
||||
def thanks():
|
||||
return render_template('thanks.html', title='Sortierhut')
|
||||
|
||||
@app.route('/patrons')
|
||||
def patrons():
|
||||
|
||||
7
solutions.csv
Normal file
7
solutions.csv
Normal file
@ -0,0 +1,7 @@
|
||||
123,status,hallo
|
||||
123,status,hallo
|
||||
123,computer,hallo
|
||||
123,status,"hallo
|
||||
"
|
||||
123,computer,
|
||||
123,computer,"Hallo, Welt!"
|
||||
|
@ -1,4 +1,14 @@
|
||||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
index
|
||||
{% from "_formhelpers.html" import render_field %}
|
||||
<form method=post>
|
||||
{{ render_field(form.user_id) }}
|
||||
<p></p>
|
||||
{% for subfield in form.question %}
|
||||
{{ subfield }} {{ subfield.label }}
|
||||
{% endfor %}
|
||||
<br>
|
||||
{{ form.solution_text(cols="40", rows="20") }}
|
||||
<p><input type=submit value=Abschicken>
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
||||
4
templates/thanks.html
Normal file
4
templates/thanks.html
Normal file
@ -0,0 +1,4 @@
|
||||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<h1>Danke!</h1>
|
||||
{% endblock %}
|
||||
Loading…
x
Reference in New Issue
Block a user