def backlogsprint_view(request): projektid = request.matchdict['projektid'] sprintnumber = request.matchdict['sprintnumber'] session = request.session username = session.get("user") userid = session.get("userid") if username is None: return HTTPFound('/login') projekt = database.readProjectByProjectid(userid, projektid) if type(projekt) is int: print("Error: " + replyCodes[projekt]) return HTTPFound('/scrumboard/' + projektid) sprints = database.readSprintsOfProject(userid, projektid) if type(sprints) is int: print("Error: " + replyCodes[sprints]) return HTTPFound('/scrumboard/' + projektid) #all tickets of project tickets = database.readTicketsOfProject(userid, projektid) if type(tickets) is int: print("Error: " + replyCodes[tickets]) return HTTPFound('/scrumboard/' + projektid) for t in tickets: t.prioritaet = priority[t.prioritaet] t.typ = typ[t.typ] if t.sprintid: sprintNr = None for s in sprints: if s.id == t.sprintid: sprintNr = s.number break if sprintNr: t.name = "[In Sprint " + str(sprintNr) + "] " + t.name #tickets of sprint sprinttickets = database.readTicketsOfSprint(userid, projektid, sprintnumber) if type(sprinttickets) is int: print("Error: " + replyCodes[sprinttickets]) return HTTPFound('/scrumboard/' + projektid) for t in sprinttickets: t.prioritaet = priority[t.prioritaet] t.typ = typ[t.typ] if request.method == 'POST': data = request.POST taskid = data.get('task') snr = data.get('sprintnr') pid = data.get('pid') changed = database.changeTicketSprint(userid, int(taskid), int(snr)) if changed > 0: print("Error : " + replyCodes[changed]) return HTTPFound("/backlog/" + projektid + "/" + sprintnumber) return{'tickets' : tickets, 'projekt' : projekt, 'sprints' : sprints, 'sprinttickets' : sprinttickets, 'sprintnumber' : int(sprintnumber)}
def chart_view(request): session = request.session username = session.get("user") userid = session.get("userid") projektid = request.matchdict['projektid'] sprintnumber = request.matchdict['sprintnumber'] if username is None: return HTTPFound('/login') projekt = database.readProjectByProjectid(userid, projektid) if type(projekt) is int: print("Error! " + replyCodes[projekt]) return HTTPFound("/scrumboard/" + projektid + "/" + sprintnumber) sprint = database.readSprintOfProject(userid, projektid, sprintnumber) if type(sprint) is int: print("Error! " + replyCodes[sprint]) return HTTPFound("/scrumboard/" + projektid + "/" + sprintnumber) tickets = database.readTicketsOfSprint(userid, projektid, sprintnumber) if type(tickets) is int: print("Error! " + replyCodes[tickets]) return HTTPFound("/scrumboard/" + projektid + "/" + sprintnumber) totaleffort = 0 for ticket in tickets: totaleffort = totaleffort + ticket.effort dateEffortValues = [] curDate = sprint.start curEffortHeight = totaleffort while curDate <= sprint.end: for t in tickets: if curDate == t.finished: curEffortHeight = curEffortHeight - t.effort dateEffortValues.append({ 'remainingEffort':curEffortHeight, 'datum':str(curDate.day) + '.' + str(curDate.month) }) curDate = curDate + timedelta(days=1) ticketdata = {} ticketdata['totaleffort'] = totaleffort ticketdata['dateEffortValues'] = dateEffortValues ticketdata['daysNum'] = len(ticketdata['dateEffortValues']) return{'projekt' : projekt, 'sprint' : sprint, 'tickets' : tickets, 'ticketdata' : ticketdata}
def sprint_view(request): projektid = request.matchdict['projektid'] sprintnumber = request.matchdict['sprintnumber'] session = request.session username = session.get("user") userid = session.get("userid") session['activeprojectid'] = projektid if username is None: return HTTPFound('/login') #do stuff project = database.readProjectByProjectid(userid, projektid) if type(project) is int: print("Error:" + replyCodes[project]) return HTTPFound('/dashboard') dbsprints = database.readSprintsOfProject(userid, projektid) if type(dbsprints) is int: print("Error: " + replyCodes[dbsprints]) return HTTPFound('/dashboard') sprints = [] activesprint = None for sprint in dbsprints: sprints.append(sprint) if sprint.number == int(sprintnumber): activesprint = sprint if activesprint is None: return HTTPFound('/scrumboard/' + projektid) sstart = activesprint.start send = activesprint.end #tasks for sprint tasks = database.readTicketsOfSprint(userid, projektid, sprintnumber) if type(tasks) is int: print("Error: " + replyCodes[tasks]) return HTTPFound('/scrumboard/' + activeprojectid) ausstehend = [] bearbeitung = [] testphase = [] fertig = [] for ticket in tasks: ticket.prioritaet = priority[ticket.prioritaet] ticket.typ = typ[ticket.typ] if ticket.column == 1: ausstehend.append(ticket) elif ticket.column == 2: bearbeitung.append(ticket) elif ticket.column == 3: testphase.append(ticket) elif ticket.column == 4: fertig.append(ticket) if request.method == 'POST': data = request.POST tid = data.get('task') cid = data.get('column') changed = database.changeTicketColumn(userid, int(tid), int(cid)) if changed > 0: print("Error : " + replyCodes[changed]) return HTTPFound("/scrumboard/" + projektid + "/" + sprintnumber) return{ 'sprints' : sprints, 'project' : projektid, 'projektname' : project.name, 'sprintnumber' : int(sprintnumber), 'sprintstart' : sstart, 'sprintend' : send , 'ticketausstehend' : ausstehend, 'ticketbearbeitung' : bearbeitung, 'tickettest' : testphase, 'ticketfertig' : fertig}