def lista(): """Pobranie wszystkich pytań z bazy i zwrócenie szablonu z listą pytań""" pytania = Pytanie().select() if not pytania.count(): flash('Brak pytań w bazie.', 'kom') return redirect(url_for('index')) return render_template('lista.html', pytania=pytania)
def lista(): """Pobranie wszystkich pytań z bazy i zwrócenie szablonu z listą pytań""" pytania = Pytanie().select().annotate(Odpowiedz) if not pytania.count(): flash('Brak pytań w bazie.', 'kom') return redirect(url_for('index')) return render_template('lista.html', pytania=pytania)
def dodaj_pytania(dane): """Funkcja dodaje pytania i odpowiedzi przekazane w tupli do bazy.""" for pytanie, odpowiedzi, odpok in dane: p = Pytanie(pytanie=pytanie, odpok=odpok) p.save() for o in odpowiedzi.split(","): odp = Odpowiedz(pnr=p.id, odpowiedz=o.strip()) odp.save() print("Dodano przykładowe pytania")
def dodaj_pytania(dane): """Funkcja dodaje pytania i odpowiedzi przekazane w tupli do bazy.""" for pytanie,odpowiedzi,odpok in dane: pyt = Pytanie(pytanie = pytanie, odpok = odpok) pyt.save() for o in odpowiedzi.split(","): odp = Odpowiedz(pnr = pyt.id, odpowiedz = o.strip()) odp.save() print "Dodano przykładowe pytania"
def edytuj(): pytania = Pytanie().select().annotate(Odpowiedz) if not pytania.count(): flash(u'Brak pytań w bazie.','kom') return redirect(url_for('index')) if request.method == 'POST': pid = request.form['id'] pytanie = Pytanie.select(Pytanie,Odpowiedz).join(Odpowiedz).where(Pytanie.id == int(pid)).get() return render_template('dodaj.html', pytanie=pytanie) return render_template('edytuj.html', pytania=pytania)
def edytuj(): pytania = Pytanie().select().annotate(Odpowiedz) if not pytania.count(): flash(u'Brak pytań w bazie.', 'kom') return redirect(url_for('index')) if request.method == 'POST': pid = request.form['id'] pytanie = Pytanie.select( Pytanie, Odpowiedz).join(Odpowiedz).where(Pytanie.id == int(pid)).get() return render_template('dodaj.html', pytanie=pytanie) return render_template('edytuj.html', pytania=pytania)
def dodaj(): error = [] # POST, zapisz pytanie if request.method == 'POST': # sprawdzanie poprawności przesłanych danych if len(request.form['pytanie']) == 0: error.append(u'Błąd: pytanie nie może być puste!') odpowiedzi = list(request.form.getlist('odp[]')) for odp in odpowiedzi: if len(odp) == 0: error.append(u'Odpowiedź nie może być pusta!') if len(request.form['odpok']) == 0: error.append(u'Brak numeru poprawnej odpowiedzi!') elif int(request.form['odpok']) > len(odpowiedzi): error.append(u'Błędny numer poprawnej odpowiedzi!') if not error: # jeżeli nie ma błędów dodajemy pytanie pytanie = request.form['pytanie'].strip() odpok = odpowiedzi[(int(request.form['odpok']) - 1)] try: if request.form['id']: # aktualizujemy pytanie p = Pytanie.select(Pytanie, Odpowiedz).join(Odpowiedz).\ where(Pytanie.id == int(request.form['id'])).get() p.pytanie = pytanie.strip() p.odpok = odpok.strip() p.save() for i, o in enumerate(list(p.odpowiedzi)): o.odpowiedz = odpowiedzi[i].strip() o.save() flash(u'Zmieniono pytanie:', 'sukces') except KeyError: # dodajemy nowe pytanie, brak id pytania! p = Pytanie(pytanie=pytanie.strip(), odpok=odpok.strip()) p.save() for odp in odpowiedzi: o = Odpowiedz(pnr=p, odpowiedz=odp.strip()) o.save() flash(u'Dodano pytanie:', 'sukces') flash( "\n" + pytanie + " " + odpok.strip() + " (" + ", ".join(odpowiedzi) + ")", 'kom') return redirect(url_for('index')) else: for e in error: flash(e, 'blad') # GET, wyświetl formularz return render_template('dodaj.html')
def get_or_404(pid): """Pobranie i zwrócenie obiektu z bazy lub wywołanie szablonu 404.html""" try: p = Pytanie.select().annotate(Odpowiedz).where(Pytanie.id == pid).get() return p except Pytanie.DoesNotExist: abort(404)
def usun(): """Usunięcie pytania o identyfikatorze pid""" pid = request.form['id'] pytanie = Pytanie.get(Pytanie.id == int(pid)) pytanie.delete_instance(recursive=True) flash(u'Usunięto pytanie {0}'.format(pid), 'sukces') return redirect(url_for('index'))
def dodaj(): """Dodawanie pytań i odpowiedzi""" form = DodajForm() if form.validate_on_submit(): odp = form.odpowiedzi.data p = Pytanie(pytanie=form.pytanie.data, odpok=odp[int(form.odpok.data)]) p.save() for o in odp: inst = Odpowiedz(pnr=p.id, odpowiedz=o) inst.save() flash("Dodano pytanie: {}".format(form.pytanie.data)) return redirect(url_for("lista")) elif request.method == 'POST': flash_errors(form) return render_template("dodaj.html", form=form, radio=list(form.odpok))
def dodaj(): error = [] # POST, zapisz pytanie if request.method == 'POST': # sprawdzanie poprawności przesłanych danych if len(request.form['pytanie']) == 0: error.append(u'Błąd: pytanie nie może być puste!') odpowiedzi = list(request.form.getlist('odp[]')) for odp in odpowiedzi: if len(odp) == 0: error.append(u'Odpowiedź nie może być pusta!') if len(request.form['odpok']) == 0: error.append(u'Brak numeru poprawnej odpowiedzi!') elif int(request.form['odpok']) > len(odpowiedzi): error.append(u'Błędny numer poprawnej odpowiedzi!') if not error: # jeżeli nie ma błędów dodajemy pytanie pytanie = request.form['pytanie'].strip() odpok = odpowiedzi[(int(request.form['odpok']) - 1)] try: if request.form['id']: # aktualizujemy pytanie p = Pytanie.select(Pytanie, Odpowiedz).join(Odpowiedz).\ where(Pytanie.id == int(request.form['id'])).get() p.pytanie = pytanie.strip() p.odpok = odpok.strip() p.save() for i, o in enumerate(list(p.odpowiedzi)): o.odpowiedz = odpowiedzi[i].strip() o.save() flash(u'Zmieniono pytanie:', 'sukces') except KeyError: # dodajemy nowe pytanie, brak id pytania! p = Pytanie(pytanie=pytanie.strip(), odpok=odpok.strip()) p.save() for odp in odpowiedzi: o = Odpowiedz(pnr=p, odpowiedz=odp.strip()) o.save() flash(u'Dodano pytanie:', 'sukces') flash("\n" + pytanie + " " + odpok.strip() + " (" + ", ".join(odpowiedzi) + ")", 'kom') return redirect(url_for('index')) else: for e in error: flash(e, 'blad') # GET, wyświetl formularz return render_template('dodaj.html')
def quiz(): # POST, sprawdź odpowiedzi if request.method == 'POST': wynik = 0 # liczba poprawnych odpowiedzi for pid, odp in request.form.items(): # odczytujemy słownik z odpowiedziami # pobieramy z bazy poprawną odpowiedź odpok = Pytanie.select(Pytanie.odpok).where(Pytanie.id == int(pid)).scalar() if odp == odpok: # porównujemy odpowiedzi wynik += 1 # zwiększamy wynik # przygotowujemy informacje o wyniku flash(u'Liczba poprawnych odpowiedzi, to: {0}'.format(wynik),'sukces') return redirect(url_for('index')) # GET, wyświetl pytania pytania = Pytanie().select().annotate(Odpowiedz) if not pytania.count(): flash(u'Brak pytań w bazie.','kom') return redirect(url_for('index')) return render_template('quiz.html', pytania=pytania)
def quiz(): """Wyświetlenie pytań i odpowiedzi w formie quizu oraz ocena poprawności przesłanych odpowiedzi""" if request.method == 'POST': wynik = 0 for pid, odp in request.form.items(): odpok = Pytanie.select(Pytanie.odpok).where( Pytanie.id == int(pid)).scalar() if odp == odpok: wynik += 1 flash('Liczba poprawnych odpowiedzi, to: {0}'.format(wynik), 'sukces') return redirect(url_for('index')) # GET, wyświetl pytania pytania = Pytanie().select().annotate(Odpowiedz) if not pytania.count(): flash('Brak pytań w bazie.', 'kom') return redirect(url_for('index')) return render_template('quiz.html', pytania=pytania)
def quiz(): """Wyświetlenie pytań i odpowiedzi w formie quizu oraz ocena poprawności przesłanych odpowiedzi""" if request.method == 'POST': wynik = 0 for pid, odp in request.form.items(): odpok = Pytanie.select( Pytanie.odpok).where(Pytanie.id == int(pid)).scalar() if odp == odpok: wynik += 1 flash('Liczba poprawnych odpowiedzi, to: {0}'.format(wynik), 'sukces') return redirect(url_for('index')) # GET, wyświetl pytania pytania = Pytanie().select() if not pytania.count(): flash('Brak pytań w bazie.', 'kom') return redirect(url_for('index')) return render_template('quiz.html', pytania=pytania)
def dodaj_pytania(dane): """Funkcja dodaje pytania i odpowiedzi przekazane w tupli do bazy.""" for pytanie, odpowiedzi, odpok in dane: pyt = Pytanie(pytanie=pytanie, odpok=odpok) baza.session.add(pyt) baza.session.commit() for o in odpowiedzi.split(","): odp = Odpowiedz(pnr=pyt.id, odpowiedz=o.strip()) baza.session.add(odp) baza.session.commit() print "Dodano przykładowe pytania"
def quiz(): # POST, sprawdź odpowiedzi if request.method == 'POST': wynik = 0 # liczba poprawnych odpowiedzi # odczytujemy słownik z odpowiedziami for pid, odp in request.form.items(): # pobieramy z bazy poprawną odpowiedź odpok = Pytanie.select( Pytanie.odpok).where(Pytanie.id == int(pid)).scalar() if odp == odpok: # porównujemy odpowiedzi wynik += 1 # zwiększamy wynik # przygotowujemy informacje o wyniku flash(u'Liczba poprawnych odpowiedzi, to: {0}'.format(wynik), 'sukces') return redirect(url_for('index')) # GET, wyświetl pytania pytania = Pytanie().select().annotate(Odpowiedz) if not pytania.count(): flash(u'Brak pytań w bazie.', 'kom') return redirect(url_for('index')) return render_template('quiz.html', pytania=pytania)