def edit(lecture_id): """Úprava specifické cvičení""" lecture = Lecture.get(lecture_id) form = LectureForm(request.forms.decode(), lecture) user = getUser() if not (user.inRole("master") or lecture.lector == user.login): return unauthorized() if request.method == 'POST' and form.validate(): try: lecture.update(name=form.name.data, nonterminal=form.nonterminal.data) msg("Cvičení aktualizováno", "success") except Exception as e: msg("Chyba při aktualizaci - %s" % e, "error") redirect(request.path) try: text = lecture.generate() except Exception as e: text = "Došlo k chybě : \n %s \n %s" % (type(e).__name__, e) return template("lectures_edit", { "lecture": lecture, "form": form_renderer(form), "text": text })
def edit(lecture_id): """Úprava specifické cvičení""" lecture = Lecture.get( lecture_id ) form = LectureForm(request.forms.decode(), lecture) user = getUser() if not ( user.inRole("master") or lecture.lector == user.login): return unauthorized() if request.method == 'POST' and form.validate(): try: lecture.update( name = form.name.data, nonterminal = form.nonterminal.data ) msg("Cvičení aktualizováno","success") except Exception as e: msg("Chyba při aktualizaci - %s" % e, "error") redirect(request.path) try: text = lecture.generate() except Exception as e: text = "Došlo k chybě : \n %s \n %s" % (type(e).__name__, e) return template("lectures_edit", {"lecture" : lecture, "form": form_renderer(form), "text": text } )
def edit(group_id): """Úprava specifické skupiny včetně přidávání uživatelů""" user = getUser() group = Group.get( group_id ) if not ( user.inRole("master") or group.lector == user.login): return unauthorized() # vložení studenta if request.forms.get("add"): try: usr = User.insertStudent( request.forms.get("add"), group_id ) msg("Student %s vložen" % usr.login,"success") except Exception as e: msg("Chyba při vkládání studenta - %s " % e,"error") redirect(request.path) # odstranění studenta if request.query.get("remove"): usr = User.get( request.query.get("remove") ) if not usr: msg("Student nenalezen","error") elif usr.remove(): msg("Student %s odstraněn"% usr.login ,"success") else: msg("Student nenalezen","error") redirect(request.path) form = GroupForm(request.forms.decode(), group) if request.method == 'POST' and form.validate(): try: group.update( name = form.name.data ) msg("Skupina aktualizována","success") except Exception as e: msg("Chyba při aktualizaci - %s" % e, "error") redirect(request.path) return template("groups_edit", {"group" : group, "form": form_renderer(form) } )
def delete(group_id): """Smaže skupinu""" user = getUser() group = Group.get( group_id ) if not ( user.inRole("master") or group.lector == user.login): return unauthorized() answer = request.forms.get("answer") if answer: if answer == "Ne": redirect("/groups") if answer == "Ano": group.remove() msg("Skupina smazána","success") redirect("/groups") return template("question", {"question":"Skutečně chcete smazat skupinu '%s'" % group.name } )
def edit(group_id): """Úprava specifické skupiny včetně přidávání uživatelů""" user = getUser() group = Group.get(group_id) if not (user.inRole("master") or group.lector == user.login): return unauthorized() # vložení studenta if request.forms.get("add"): try: usr = User.insertStudent(request.forms.get("add"), group_id) msg("Student %s vložen" % usr.login, "success") except Exception as e: msg("Chyba při vkládání studenta - %s " % e, "error") redirect(request.path) # odstranění studenta if request.query.get("remove"): usr = User.get(request.query.get("remove")) if not usr: msg("Student nenalezen", "error") elif usr.remove(): msg("Student %s odstraněn" % usr.login, "success") else: msg("Student nenalezen", "error") redirect(request.path) form = GroupForm(request.forms.decode(), group) if request.method == "POST" and form.validate(): try: group.update(name=form.name.data) msg("Skupina aktualizována", "success") except Exception as e: msg("Chyba při aktualizaci - %s" % e, "error") redirect(request.path) return template("groups_edit", {"group": group, "form": form_renderer(form)})
def delete(lecture_id): """Smaže cvičení""" lecture = Lecture.get( lecture_id ) user = getUser() if not ( user.inRole("master") or lecture.lector == user.login): return unauthorized() answer = request.forms.get("answer") if answer: if answer == "Ne": redirect("/lectures") if answer == "Ano": lecture.remove() msg("Cvičení smazáno","success") redirect("/lectures") return template("question", {"question":"Skutečně chcete smazat cvičení '%s'" % lecture.name } )
def delete(group_id): """Smaže skupinu""" user = getUser() group = Group.get(group_id) if not (user.inRole("master") or group.lector == user.login): return unauthorized() answer = request.forms.get("answer") if answer: if answer == "Ne": redirect("/groups") if answer == "Ano": group.remove() msg("Skupina smazána", "success") redirect("/groups") return template("question", {"question": "Skutečně chcete smazat skupinu '%s'" % group.name})
def delete(lecture_id): """Smaže cvičení""" lecture = Lecture.get(lecture_id) user = getUser() if not (user.inRole("master") or lecture.lector == user.login): return unauthorized() answer = request.forms.get("answer") if answer: if answer == "Ne": redirect("/lectures") if answer == "Ano": lecture.remove() msg("Cvičení smazáno", "success") redirect("/lectures") return template( "question", {"question": "Skutečně chcete smazat cvičení '%s'" % lecture.name})
def download(group_id): """Stažení výsledků skupiny ve wis formátu""" user = getUser() group = Group.get( group_id ) if not ( user.inRole("master") or group.lector == user.login): return unauthorized() headers = {} headers['Content-Type'] = "text/csv" headers['Content-Disposition'] = 'attachment; filename="%s.csv"' % slug(group.name) #Formát CSV: 1. ID, 2. jméno, 3. login, 4. body, 5. celk.body, 6. datum, 7. login zadávajícího #při importu musí být zachováno pořadí sloupců, stačí vyplnit sloupce 3. a 4., případně 6. date = today() data = [] results = group.getResults() for login, points in results.items(): data.append(";;%s;%s;;%s;%s;" % (login, points, date, group.lector) ); data = "\n".join(data) return HTTPResponse(data, **headers)
def download(group_id): """Stažení výsledků skupiny ve wis formátu""" user = getUser() group = Group.get(group_id) if not (user.inRole("master") or group.lector == user.login): return unauthorized() headers = {} headers["Content-Type"] = "text/csv" headers["Content-Disposition"] = 'attachment; filename="%s.csv"' % slug(group.name) # Formát CSV: 1. ID, 2. jméno, 3. login, 4. body, 5. celk.body, 6. datum, 7. login zadávajícího # při importu musí být zachováno pořadí sloupců, stačí vyplnit sloupce 3. a 4., případně 6. date = today() data = [] results = group.getResults() for login, points in results.items(): data.append(";;%s;%s;;%s;%s;" % (login, points, date, group.lector)) data = "\n".join(data) return HTTPResponse(data, **headers)