Exemplo n.º 1
0
def seite_backlog_post():
    data = json.loads(request.form.get("data"))
    story = Story.query.get(data.get("id"))
    sprint_id = data.get("sprint_id", "-1")
    if data.get("to_delete"):
        if story:
            db.session.delete(story)
            db.session.commit()
        return redirect("/backlog")

    if not story:
        story = Story()
        db.session.add(story)

    story.titel = data.get("titel")
    story.beschreibung = data.get("beschreibung")
    story.sprint = Sprint.query.get(sprint_id)

    Kriterium.query.filter_by(story=story).delete()
    for kriterium in data.get("kriterien", []):
        k = Kriterium()
        k.beschreibung = kriterium.get("beschreibung")
        db.session.add(k)
        story.kriterien.append(k)

    db.session.commit()
    return redirect("/backlog")
Exemplo n.º 2
0
def seite_sprint_post(sprint_id):
    db.session.autoflush = False
    sprint = Sprint.query.get_or_404(sprint_id)

    sprint.start = request.form.get("start")
    sprint.ende = request.form.get("ende")
    sprint.ziel = request.form.get("ziel")

    for story_data in json.loads(request.form.get("data")):
        story = Story.query.get(story_data.get("id"))
        if story_data.get("to_delete"):
            if story:
                db.session.delete(story)
            continue

        if not story:
            story = Story(sprint=sprint)
            db.session.add(story)

        story.titel = story_data.get("titel")
        story.beschreibung = story_data.get("beschreibung")

        for task_data in story_data.get("tasks", []):
            task = Task.query.get(task_data.get("id"))
            if task and task_data.get("delete", False):
                db.session.delete(task)
                continue

            if not task:
                task = Task()

            task.story = story
            task.name = task_data.get("name")
            task.user = User.query.get(task_data.get("user_id"))

            neuer_status = task_data.get("status")
            if task.status != neuer_status and neuer_status == 2:
                task._fertig_datum = datetime.now()
            task.status = neuer_status

            story.tasks.append(task)
            db.session.add(task)

    db.session.commit()

    return redirect(f"/sprints/{sprint_id}")