示例#1
0
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
    })
示例#2
0
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 } )    
示例#3
0
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) } )
示例#4
0
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 } )            
示例#5
0
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)})
示例#6
0
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 } )    
示例#7
0
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})
示例#8
0
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})
示例#9
0
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)
示例#10
0
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)