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 uuid
|
||||||
import csv
|
import csv
|
||||||
import os
|
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
|
from wtforms.fields.html5 import EmailField
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
@ -10,11 +10,13 @@ app.jinja_env.trim_blocks = True
|
|||||||
app.jinja_env.lstrip_blocks = True
|
app.jinja_env.lstrip_blocks = True
|
||||||
|
|
||||||
datafile = "data.csv"
|
datafile = "data.csv"
|
||||||
|
solutionfile = "solutions.csv"
|
||||||
|
|
||||||
def check_input(form, field):
|
def check_input(form, field):
|
||||||
if field.data == 'default':
|
if field.data == 'default':
|
||||||
raise validators.ValidationError('Bitte wähle eine Option aus')
|
raise validators.ValidationError('Bitte wähle eine Option aus')
|
||||||
|
|
||||||
|
|
||||||
class QuestionForm(Form):
|
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)')]
|
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])
|
computer = SelectField(u'Fiktionaler Lieblingscomputer', choices=computers, validators=[validators.InputRequired(), check_input])
|
||||||
@ -30,6 +32,13 @@ class QuestionForm(Form):
|
|||||||
email = EmailField('Email-Adresse')
|
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():
|
def create_used_id_list():
|
||||||
data = list()
|
data = list()
|
||||||
|
|
||||||
@ -42,9 +51,11 @@ def create_used_id_list():
|
|||||||
data.append(line[0])
|
data.append(line[0])
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
class AnswerForm(Form):
|
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')])
|
user_id = StringField('Deine Id', [validators.InputRequired(), validators.AnyOf(values=create_used_id_list(), message='Leider ist das keine gültige ID')])
|
||||||
|
|
||||||
|
|
||||||
@app.route('/')
|
@app.route('/')
|
||||||
def index():
|
def index():
|
||||||
return render_template('index.html', title='Sortierhut')
|
return render_template('index.html', title='Sortierhut')
|
||||||
@ -66,7 +77,21 @@ def questions():
|
|||||||
# spirit = request.form['spirit_animal']
|
# spirit = request.form['spirit_animal']
|
||||||
# user.save()
|
# user.save()
|
||||||
return redirect(url_for('result', user_id=new_id))
|
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')
|
# @app.route('/form')
|
||||||
# def form():
|
# def form():
|
||||||
@ -113,9 +138,9 @@ def view_answers(user_id):
|
|||||||
break
|
break
|
||||||
return render_template('view.html', title='Sortierhut', user_id=user_id, user_row=user_row)
|
return render_template('view.html', title='Sortierhut', user_id=user_id, user_row=user_row)
|
||||||
|
|
||||||
@app.route('/solution')
|
@app.route('/thanks')
|
||||||
def solution():
|
def thanks():
|
||||||
return render_template('solution.html', title='Sortierhut', text='Hallo, Lösung')
|
return render_template('thanks.html', title='Sortierhut')
|
||||||
|
|
||||||
@app.route('/patrons')
|
@app.route('/patrons')
|
||||||
def 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" %}
|
{% extends "base.html" %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
index
|
{% from "_formhelpers.html" import render_field %}
|
||||||
{% endblock %}
|
<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