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")
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}")