示例#1
0
def ACrearElementoMeeting():
    #POST/PUT parameters
    params = request.get_json()
    results = [{'label':'/VReunion', 'msg':['Detalle de la reunión creado']}, {'label':'/VCrearElementoMeeting', 'msg':['Error al crear un detalle a la reunión']}, ]
    res = results[1]
    #Action code goes here, res should be a list with a label and a message
    usuario = session['usuario']
    oUser = user()
    usuario = oUser.searchUserByName(usuario['nombre'])
    print(usuario)
    challenges = params['challenge']
    planed = params['planed']
    done = params['done']
    idReunion = int(session['idReunion'])
    oElementMeeting = elementMeeting()
    exito = oElementMeeting.insertElement(challenges, planed, done, idReunion, usuario.U_username)
    if exito:
        res = results[0]

    res['label'] = res['label'] + '/' + str(idReunion)

    #Action code ends here
    if "actor" in res:
        if res['actor'] is None:
            session.pop("actor", None)
        else:
            session['actor'] = res['actor']
    return json.dumps(res)
示例#2
0
def VEquipo():
    #GET parameter
    idPila = request.args['idPila']
    res = {}
    if "actor" in session:
        res['actor']=session['actor']
    #Action code goes here, res should be a JSON structure

    if 'usuario' not in session:
      res['logout'] = '/'
      return json.dumps(res)

    idPila   = int(session['idPila'])
   
    oTeam = team()
    teamList = oTeam.getTeam(idPila)
    oUser = user()
    userList = oUser.getAllUsers()

    res['fEquipo'] = {'lista':[{'miembro':team.EQ_username, 'rol': team.EQ_rol} for team in teamList]}
    res['usuario'] = session['usuario']
    res['idPila'] = idPila

    res['fEquipo_opcionesRol'] =[
        {'key':'Desarrollador', 'value':'Desarrollador'},
        {'key':'Scrum master', 'value':'Scrum master'},
      ]

    res['fEquipo_opcionesMiembros'] =[{'key':user.U_username,'value': user.U_username} for user in userList]

    #Action code ends here
    return json.dumps(res)
示例#3
0
def AIdentificar():
    #POST/PUT parameters.
    params = request.get_json()

    results = [{
        'label': '/VProductos',
        'msg': ['Bienvenido dueño del producto'],
        "actor": "duenoProducto"
    }, {
        'label': '/VProductos',
        'msg': ['Bienvenido Maestro Scrum'],
        "actor": "maestroScrum"
    }, {
        'label': '/VProductos',
        'msg': ['Bienvenido Desarrollador'],
        "actor": "desarrollador"
    }, {
        'label': '/VLogin',
        'msg': ['Datos de identificación incorrectos']
    }]
    res = results[3]

    if request.method == 'POST':
        userName = params['usuario']
        userPassword = params['clave']

        # Buscamos el usuario en la base de datos
        oUser = user()
        userLogin = oUser.searchUser(userName)

        if userLogin:
            encriptPassword = userLogin[0].U_password
            # Chequeamos el password
            oLogin = login()
            isValid = oLogin.check_password(encriptPassword, userPassword)

            if isValid:
                # Mostramos el nombre en la aplicación
                fullname = userLogin[0].U_fullname
                session['usuario'] = {'nombre': fullname.title()}

                # Verificamos el rol del usuario
                rolUser = userLogin[0].U_idActor

                if rolUser == 1: res = results[0]
                if rolUser == 2: res = results[1]
                if rolUser == 3: res = results[2]

    if "actor" in res:
        if res['actor'] is None:
            session.pop("actor", None)
        else:
            session['actor'] = res['actor']
    return json.dumps(res)
示例#4
0
def VEquipo():
    #GET parameter
    res = {}

    idPila = int(session['idPila'])
   
    oTeam = team()
    oUser = user()

    #Obtenemos la lista de usuarios asignados al equipo.
    teamList = oTeam.getTeam(idPila)
    teamMembers  = []
    productOwner = ''
    scrumMaster  = ''

    for m in teamList:
        if m.EQ_rol == "Product owner":
            productOwner = m.EQ_username
        if m.EQ_rol == "Scrum master":
            scrumMaster = m.EQ_username
        if m.EQ_rol == "Team member":
            teamMembers.append(m.EQ_username)

    #Obtenemos los usuarios registrados como product owner.
    productOwnerList = oUser.getUserByIdActor(1)

    #Obtenemos los usuarios registrados como scrum masters.
    scrumMastersList = oUser.getUserByIdActor(2)

    #Obtenemos los usuarios registrados como desarrolladores.
    teamMembersList = oUser.getUserByIdActor(3)
    

    res['fEquipo'] = {'productOwner':productOwner,'scrum':scrumMaster,'miembros':teamMembers,'id':idPila}
    res['usuario'] = session['usuario']
    res['idPila']  = idPila

    res['fEquipo_opcionesProductOwner'] = [{'key': user.U_username,'value': user.U_fullname + " (" + user.U_username + ")"} for user in productOwnerList]
    res['fEquipo_opcionesScrum']        = [{'key': user.U_username,'value': user.U_fullname + " (" + user.U_username + ")"} for user in scrumMastersList]
    res['fEquipo_opcionesMiembros']     = [{'key': user.U_username,'value': user.U_fullname + " (" + user.U_username + ")"} for user in teamMembersList]

    if "actor" in session:
        res['actor']=session['actor']

    if 'usuario' not in session:
      res['logout'] = '/'

    return json.dumps(res)
示例#5
0
def VEquipo():
    #GET parameter
    idPila = request.args['idPila']
    res = {}
    if "actor" in session:
        res['actor'] = session['actor']
    #Action code goes here, res should be a JSON structure

    if 'usuario' not in session:
        res['logout'] = '/'
        return json.dumps(res)

    idPila = int(session['idPila'])

    oTeam = team()
    teamList = oTeam.getTeam(idPila)
    oUser = user()
    userList = oUser.getAllUsers()

    res['fEquipo'] = {
        'lista': [{
            'miembro': team.EQ_username,
            'rol': team.EQ_rol,
            'id': team.EQ_idEquipo
        } for team in teamList]
    }
    res['usuario'] = session['usuario']
    res['idPila'] = idPila

    res['fEquipo_opcionesRol'] = [
        {
            'key': 'Desarrollador',
            'value': 'Desarrollador'
        },
        {
            'key': 'Scrum master',
            'value': 'Scrum master'
        },
    ]

    res['fEquipo_opcionesMiembros'] = [{
        'key': user.U_username,
        'value': user.U_username
    } for user in userList]

    #Action code ends here
    return json.dumps(res)
示例#6
0
def VLogin():
    res = {}
    if "actor" in session:
        res['actor'] = session['actor']

    session.pop('usuario', None)

    # Se precargan valores en la base de datos
    oCate = category()
    oActor = role()
    isEmpty = oActor.emptyTable()

    if isEmpty:
        print('Cargando datos de prueba...')
        #Se crean categorias para las tareas
        result1 = oCate.insertCategory('Implementar una acción', 2)
        result2 = oCate.insertCategory('Implementar una vista', 2)
        result3 = oCate.insertCategory(
            'Implementar una regla de negocio o un método de una clase', 2)
        result4 = oCate.insertCategory('Migrar la base de datos', 2)
        result5 = oCate.insertCategory('Crear un diagrama UML', 1)
        result6 = oCate.insertCategory('Crear datos inciales', 1)
        result7 = oCate.insertCategory('Crear un criterio de aceptación', 1)
        result8 = oCate.insertCategory('Crear una prueba de aceptación', 2)
        result9 = oCate.insertCategory(
            'Actualizar un elemento implementado en otra tarea', 1)
        result10 = oCate.insertCategory(
            'Escribir el manual en línea de una página', 1)

        oLogin = login()
        oUser = user()
        #Creamos usuarios con los tres posibles roles
        password = '******'
        encriptPassword = oLogin.encript(password)

        oActor.insertActor('Dueno', 'Dueño del Producto', 0)
        oActor.insertActor('Maestro Scrum', 'Maestro Scrum', 0)
        oActor.insertActor('Miembro del Equipo', 'Miembro del Equipo', 0)

        #Corregido error de los actores por defecto, deberian ir en la tabla de Actores
        #result = oUser.insertUser('Dueno','admin',encriptPassword,'*****@*****.**',1)
        #result = oUser.insertUser('Maestro Scrum','scrum',encriptPassword,'*****@*****.**',2)
        #result = oUser.insertUser('Equipo de Trabajo','team',encriptPassword,'*****@*****.**',3)

        print('Se cargaron los datos.')

    return json.dumps(res)
示例#7
0
def VLogin():
    res = {}
    if "actor" in session:
        res['actor']=session['actor']

    session.pop('usuario', None)

    # Se precargan valores en la base de datos
    oCate    = category()
    oActor   = role()
    isEmpty  = oActor.emptyTable()

    if isEmpty:
        print('Cargando datos de prueba...')
        #Se crean categorias para las tareas
        result1  = oCate.insertCategory('Implementar una acción',2)
        result2  = oCate.insertCategory('Implementar una vista',2)
        result3  = oCate.insertCategory('Implementar una regla de negocio o un método de una clase',2)
        result4  = oCate.insertCategory('Migrar la base de datos',2)
        result5  = oCate.insertCategory('Crear un diagrama UML',1)
        result6  = oCate.insertCategory('Crear datos inciales',1)
        result7  = oCate.insertCategory('Crear un criterio de aceptación',1)
        result8  = oCate.insertCategory('Crear una prueba de aceptación',2)
        result9  = oCate.insertCategory('Actualizar un elemento implementado en otra tarea',1)
        result10 = oCate.insertCategory('Escribir el manual en línea de una página',1)

        oLogin = login()
        oUser  = user()
        #Creamos usuarios con los tres posibles roles
        password         = '******'
        encriptPassword  = oLogin.encript(password)

        oActor.insertActor('Dueno','Dueño del Producto',0)
        oActor.insertActor('Maestro Scrum','Maestro Scrum',0)
        oActor.insertActor('Miembro del Equipo','Miembro del Equipo',0)

        #Corregido error de los actores por defecto, deberian ir en la tabla de Actores
        #result = oUser.insertUser('Dueno','admin',encriptPassword,'*****@*****.**',1)
        #result = oUser.insertUser('Maestro Scrum','scrum',encriptPassword,'*****@*****.**',2)
        #result = oUser.insertUser('Equipo de Trabajo','team',encriptPassword,'*****@*****.**',3)

        print('Se cargaron los datos.')

    return json.dumps(res)
示例#8
0
def AIdentificar():
    #POST/PUT parameters.
    params  = request.get_json()

    results = [{'label':'/VProductos', 'msg':['Bienvenido dueño del producto'], "actor":"duenoProducto"},
               {'label':'/VProductos', 'msg':['Bienvenido Maestro Scrum'], "actor":"maestroScrum"},
               {'label':'/VProductos', 'msg':['Bienvenido Desarrollador'], "actor":"desarrollador"},
               {'label':'/VLogin',     'msg':['Datos de identificación incorrectos']}]
    res     = results[3]

    if request.method == 'POST':
        userName     = params['usuario']
        userPassword = params['clave']

        # Buscamos el usuario en la base de datos
        oUser     = user()
        userLogin = oUser.searchUser(userName)

        if userLogin:
            encriptPassword = userLogin[0].U_password
            # Chequeamos el password
            oLogin  = login();
            isValid = oLogin.check_password(encriptPassword, userPassword)

            if isValid:
                # Mostramos el nombre en la aplicación
                fullname = userLogin[0].U_fullname
                username = userLogin[0].U_username 
                session['usuario'] = {'nombre': fullname.title(),'username': username}

                # Verificamos el rol del usuario
                rolUser = userLogin[0].U_idActor

                if rolUser == 1: res = results[0]
                if rolUser == 2: res = results[1]
                if rolUser == 3: res = results[2]

    if "actor" in res:
        if res['actor'] is None:
            session.pop("actor", None)
        else:
            session['actor'] = res['actor']
    return json.dumps(res)
示例#9
0
def ARegistrar():
    #POST/PUT parameters
    params = request.get_json()
    results = [{
        'label': '/VLogin',
        'msg': ['Felicitaciones, Ya estás registrado en la aplicación']
    }, {
        'label': '/VRegistro',
        'msg': ['Error al tratar de registrarse']
    }]
    res = results[1]

    if request.method == 'POST':

        # Extraemos los datos
        newName = params['nombre']
        newUser = params['usuario']
        newPassword = params['clave']
        newEmail = params['correo']
        newActor = params['actorScrum']

        oLogin = login()
        oUser = user()

        checkNewUser = oUser.isFound(newUser)
        checkNewEmail = oUser.findEmail(newEmail)
        checkNewPassword = oLogin.validPassword(newPassword)
        encriptPassword = oLogin.encript(newPassword)

        if (not checkNewUser) and checkNewPassword and (not checkNewEmail):
            result = oUser.insertUser(newName, newUser, encriptPassword,
                                      newEmail, newActor)
            if result:
                res = results[0]

    if "actor" in res:
        if res['actor'] is None:
            session.pop("actor", None)
        else:
            session['actor'] = res['actor']
    return json.dumps(res)
示例#10
0
def VEquipoSprint():
    #GET parameter
    res = {}

    idSprint = int(session['idSprint'])
    idPila   = int(session['idPila'])
    
    oTeam    = team()
    oUser    = user()
    oSubTeam = subEquipoClass()

    #Obtenemos los desarrolladores asociados al producto.
    teamList = oTeam.getTeamDevs(idPila)

    #Obtenemos los desarrolladores asociados al sprint.
    subteamList = oSubTeam.getSubEquipo(idSprint)

    miembros = []
    for s in subteamList:
        miembros.append(s.SEQ_username)

    members = []
    for s in subteamList:
        u = oUser.searchUser(s.SEQ_username)
        members.append({'miembro':u[0].U_fullname + " (" + s.SEQ_username + ")",'usuario':s.SEQ_username})

    res['fEquipo'] = {'miembros': miembros, 'id':idSprint}

    res['fEquipo_opcionesMiembros'] = [{'key': user['usuario'],'value': user['miembro']} for user in members]

    res['usuario']  = session['usuario']
    res['idSprint'] = idSprint
    
    if "actor" in session:
        res['actor'] = session['actor']

    if 'usuario' not in session:
        res['logout'] = '/'
        
    return json.dumps(res)
示例#11
0
def ARegistrar():
    #POST/PUT parameters
    params  = request.get_json()
    results = [{'label':'/VLogin'   , 'msg':['Felicitaciones, Ya estás registrado en la aplicación']},
               {'label':'/VRegistro', 'msg':['Error al tratar de registrarse']} ]
    res     = results[1]


    if request.method == 'POST':

        # Extraemos los datos
        newName     = params['nombre']
        newUser     = params['usuario']
        newPassword = params['clave']
        newEmail    = params['correo']
        newActor    = params['actorScrum']

        oLogin = login() 
        oUser  = user()

        checkNewUser     = oUser.isFound(newUser)
        checkNewEmail    = oUser.findEmail(newEmail)
        checkNewPassword = oLogin.validPassword(newPassword)
        encriptPassword  = oLogin.encript(newPassword)

        if (not checkNewPassword):
            res = results[1]
            res['msg'][0] = res['msg'][0] + ": Formato inválido para la contraseña"

        if (not checkNewUser) and checkNewPassword and (not checkNewEmail):
            result = oUser.insertUser(newName,newUser,encriptPassword,newEmail,newActor)
            if result:
                res = results[0]

    if "actor" in res:
        if res['actor'] is None:
            session.pop("actor", None)
        else:
            session['actor'] = res['actor']
    return json.dumps(res)
示例#12
0
def ACrearElementoMeeting():
    #POST/PUT parameters
    params = request.get_json()
    results = [
        {
            'label': '/VReunion',
            'msg': ['Detalle de la reunión creado']
        },
        {
            'label': '/VCrearElementoMeeting',
            'msg': ['Error al crear un detalle a la reunión']
        },
    ]
    res = results[1]
    #Action code goes here, res should be a list with a label and a message
    usuario = session['usuario']
    oUser = user()
    usuario = oUser.searchUserByName(usuario['nombre'])
    print(usuario)
    challenges = params['challenge']
    planed = params['planed']
    done = params['done']
    idReunion = int(session['idReunion'])
    oElementMeeting = elementMeeting()
    exito = oElementMeeting.insertElement(challenges, planed, done, idReunion,
                                          usuario.U_username)
    if exito:
        res = results[0]

    res['label'] = res['label'] + '/' + str(idReunion)

    #Action code ends here
    if "actor" in res:
        if res['actor'] is None:
            session.pop("actor", None)
        else:
            session['actor'] = res['actor']
    return json.dumps(res)
示例#13
0
def VCrearTarea():
    #GET parameter
    res = {}
    # Obtenemos el id de la historia actual
    idHistory = int(request.args.get('idHistoria'))

    if "actor" in session:
        res['actor']=session['actor']

    if 'usuario' not in session:
      res['logout'] = '/'
      return json.dumps(res)

    # Buscamos la historia actual
    oUser        = user()
    oUserHistory = userHistory()
    hist         = oUserHistory.searchIdUserHistory(idHistory)

    res['usuario']        = session['usuario']
    res['codHistoria']    = hist[0].UH_codeUserHistory

    # Obtenemos una lista con los datos asociados a las categorías
    cateList    = clsCategory.query.all()

    idTarea     = request.args.get('idTarea')
    result      = clsTask.query.filter_by(HW_idTask = idTarea).first()
    cateList    = clsCategory.query.all()
    oTeam       = team()
    found       = clsUserHistory.query.filter_by(UH_idUserHistory = idHistory).first()

    #Obtenemos los miembros del equipo
    members     = oTeam.getTeam(found.UH_idBacklog)
    miembroList = []

    #Quitamos al scrum master y al product owner
    for m in members:

        if m.EQ_rol == "Team member":
            u = oUser.searchUser(m.EQ_username)

            miembroList.append({'miembro':u[0].U_fullname + " (" + m.EQ_username + ")",'idEquipo':m.EQ_idEquipo})


    # Mostramos los datos en la vista
    ListaCompleta = []
    for i in cateList:
        ListaCompleta.append((i.C_idCategory,i.C_nameCate,i.C_weight))

    decorated = [(tup[2], tup) for tup in ListaCompleta]
    decorated.sort()

    res['fTarea_opcionesCategoria'] = [ { 'key':cat[1][0]
                                        , 'value':cat[1][1] + " (" + str(cat[1][2]) + ")"
                                        , 'peso':cat[1][2]
                                        } for cat in decorated
                                      ]

    res['fTarea_opcionesMiembro'] = [ { 'key'   : -1
                                      , 'value' : 'Sin asignacion'
                                      }
                                    ] + [ 
                                      { 'key'   : miembro['idEquipo']
                                      , 'value' : miembro['miembro']
                                      } for miembro in miembroList
                                    ]

    res['fTarea']         = {'idHistoria' : idHistory}
    res['idHistoria']     = idHistory
    session['idHistoria'] = idHistory
    

    return json.dumps(res)