def taskcreate_view(request):
    session = request.session
    username = session.get("user")
    userid = session.get("userid")
    activeprojectid = session.get("activeprojectid")
    if username is None:
        return HTTPFound('/login')
    #all students in project
    students = []
    students.append(utils.getUnassignedStudent())
    studentsToAdd = database.readAssignableStudentsInProject(userid, activeprojectid)
    if type(studentsToAdd) is int:
        print("Error: " + replyCodes[studentsToAdd])
        return HTTPFound('/scrumboard/' + activeprojectid)
    students.extend(studentsToAdd)

    if request.method == 'POST':
        data = request.POST
        if "taskTitle" in data and "taskDescription" in data and "taskPriority" in data and "taskType" in data and "taskCost" in data:
            ticketM = ticketModel()
            ticketM.name = data.get('taskTitle')
            ticketM.sprintid = None
            ticketM.column = 0
            ticketM.creatorid = userid
            ticketM.description = data.get('taskDescription')
            ticketM.effort = data.get('taskCost')
            if "taskEditor" in data:
                if data.get('taskEditor') == staticValues["UNASSIGNED_TICKET_STRING"]:
                    ticketM.assignedid = None
                else:
                    for s in students:
                        if s.hfuId == data.get('taskEditor'):
                            ticketM.assignedid = s.id
                            break
        ticketM.projektid = activeprojectid
        for i in range(1,len(priority)+1):
            if data.get('taskPriority') == priority[i]:
                ticketM.prioritaet = i
                break
        for i in range(1,len(typ)+1):
            if data.get('taskType') == typ[i]:
                ticketM.typ= i
                break
        ticket = database.writeNewTicket(userid, ticketM)
        if ticket > 0:
            print("Error: " + replyCodes[ticket])
            return HTTPFound('/taskcreate')
          
        return HTTPFound('/backlog/' + activeprojectid)

    prioritaet = []
    for i in range(1,len(priority)+1):
        prioritaet.append(priority[i])
    typen = []
    for i in range(1,len(typ)+1):
        typen.append(typ[i])
        
    return{'students' : students, 'priority' : prioritaet, 'typen' : typen }
def taskmodify_view(request):
    session = request.session
    username = session.get("user")
    userid = session.get("userid")
    taskid = request.matchdict['taskid']
    if username is None:
        return HTTPFound('/login')
      
    ticket = database.readTicketByTicketid(userid, taskid)
    if type(ticket) is int:
        print("Error: " + replyCodes[ticket])
        return HTTPFound("/dashboard")
    ticket.prioritaet = priority[ticket.prioritaet]
    ticket.typ = typ[ticket.typ]
    
    prioritaet = []
    for i in range(1,len(priority)+1):
        prioritaet.append(priority[i])
    typen = []
    for i in range(1,len(typ)+1):
        typen.append(typ[i])
    students = database.readAssignableStudentsInProject(userid, ticket.projektid)
    if type(students) is int:
        print("Error " + replyCodes[students])
        return HTTPFound("/dashboard")
    students.append(utils.getUnassignedStudent())
    
    if request.method == 'POST':
        data = request.POST
        ticketM = ticketModel()
        ticketM.id = ticket.id
        ticketM.sprintid = ticket.sprintid
        ticketM.column = ticket.column
        ticketM.creatorid = ticket.creatorid
        ticketM.finished = ticket.finished
        ticketM.projektid = ticket.projektid

        if "taskTitle" in data:
            ticketM.name = data.get("taskTitle")
        else:
            ticketM.name = ticket.name

        if "taskDescription" in data:
            ticketM.description = data.get("taskDescription")
        else:
            ticketM.description = ticket.description
            
        if "taskPriority" in data:
            taskpriority = data.get("taskPriority")
            for i in range(1,len(priority)+1):
                if priority[i] == taskpriority:
                    ticketM.prioritaet = i
                    break
        else:
            ticketM.prioritaet = ticket.prioritaet
            
        if "taskType" in data:
            tasktype = data.get("taskType")
            for i in range(1,len(typ)+1):
                if typ[i] == tasktype:
                    ticketM.typ = i
                    break
        else:
            ticketM.typ = ticket.typ
            
        if "taskEditor" in data:
            taskeditor = data.get("taskEditor")
            for s in students:
                if taskeditor == s.hfuId:
                    ticketM.assignedid = s.id
                    break
            if ticketM.assignedid < 0:
                ticketM.assignedid = None
        else:
            ticketM.assignedid = ticket.assignedid
            
        if "taskCost" in data:
            ticketM.effort = data.get("taskCost")
        else:
            ticketM.effort = ticket.effort

        changed = database.changeTicketInfo(userid, ticketM)
        if changed > 0:
            print("Error: " + replyCodes[changed])

    return{'ticket' : ticket, 'typen' : typen, 'priority' : prioritaet, 'students' : students}