Пример #1
0
def ACrearActor():
    #POST/PUT parameters
    params  = request.get_json()
    results = [{'label':'/VProducto', 'msg':['Actor creado']}, {'label':'/VCrearActor', 'msg':['Error al crear actor']}, ]
    res     = results[1]
    
    # Obtenemos el id del producto
    idPila  = int(session['idPila'])
    
    if params != {}:    
        # Extraemos los datos
        nameActor = params['nombre']
        descActor = params['descripcion'] 
        
        # Insertamos el actor
        oActor   = role()
        inserted = oActor.insertActor(nameActor,descActor,idPila)
        if inserted:
            res = results[0]
    
    res['label'] = res['label'] + '/' + str(idPila)

    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 AElimActor():
    #GET parameter
    results = [{'label':'/VProducto', 'msg':['Actor eliminado']}, {'label':'/VProducto', 'msg':['No se pudo eliminar este actor']}, ]
    res     = results[1]
    
    # Obtenemos el id del producto y de la acción
    idPila  = int(session['idPila'])
    idActor = int(session['idActor'])
    
    # Conseguimos el actor a eliminar 
    oActor = role()
    found  = oActor.findIdActor(idActor)
    
    oActorUserHistory = actorsUserHistory()
    result            = oActorUserHistory.searchidUserHistoryIdActors(idActor)

    # Verificamos si el actor está asociado a una historia
    if (result == []):
        deleted = oActor.deleteActor(found[0].A_nameActor,idPila)
    
        if deleted:
            res = results[0]

    res['label'] = res['label'] + '/' + str(idPila)
    
    if "actor" in res:
        if res['actor'] is None:
            session.pop("actor", None)
        else:
            session['actor'] = res['actor']
    return json.dumps(res)
Пример #3
0
def VActor():
    #GET parameter
    res = {}
    
    # Obtenemos el id del producto y de la acción
    idPila  = int(session['idPila'])
    idActor = int(request.args.get('idActor'))

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

    # Buscamos el actor actual
    oActor = role()
    result = oActor.findIdActor(idActor) 
    
    res['fActor'] = {'idActor':idActor, 'nombre':result[0].A_nameActor, 'descripcion':result[0].A_actorDescription}    
    res['idPila'] = idPila
    session['idActor'] = idActor
   
    return json.dumps(res)
Пример #4
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)
Пример #5
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)
Пример #6
0
def AModifActor():
    #POST/PUT parameters
    params  = request.get_json()
    results = [{'label':'/VProducto', 'msg':['Actor actualizado']}, {'label':'/VProducto', 'msg':['Error al modificar actor']}, ]
    res     = results[1]
    
    if 'usuario' not in session:
      res['logout'] = '/'
      return json.dumps(res)    

    # Obtenemos el id del Producto.
    idPila  = int(session['idPila'])

    # Extraemos los parámetros
    idActor      = params['idActor'] 
    newNameActor = params['nombre']
    newDescActor = params['descripcion'] 
    
    # Conseguimos el actor a modificar  
    oActor = role()
    found  = oActor.findIdActor(idActor)

    # Modificamos el actor deseado
    result = oActor.updateActor(found[0].A_nameActor , newNameActor, newDescActor,idPila)    
    
    if result:
        res = results[0]
    
    res['label'] = res['label'] + '/' + str(idPila)

    if "actor" in res:
        if res['actor'] is None:
            session.pop("actor", None)
        else:
            session['actor'] = res['actor']
    
    return json.dumps(res)
Пример #7
0
def VPrioridades():
    #GET parameter
    res = {}

    # Obtenemos el id del producto.
    idPila = int(session['idPila'])

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

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

    oActor = role()
    oAccion = accions()
    oObjective = objective()
    oBacklog = backlog()
    oUserHistory = userHistory()
    oActUserHist = actorsUserHistory()
    oObjUserHIst = objectivesUserHistory()

    # Obtenemos las historias de usuario asociadas al producto.
    userHistoriesList = oBacklog.userHistoryAsociatedToProduct(idPila)

    userHistories = []
    options = {1: 'podría ', 2: 'puede '}
    scale = {1: 'Alta', 2: 'Media', 3: 'Baja'}

    # Obtenemos el tipo de escala asociada al producto.
    typeScale = oBacklog.scaleType(idPila)

    # Obtenemos el tipo de escala asociado al producto (id,valor) y elvalor maximo de la escala
    if typeScale == 1:
        iterations = 3
        resultScale = [(i, scale[i]) for i in range(1, 3 + 1)]
    elif typeScale == 2:
        iterations = 20
        resultScale = [(i, i) for i in range(1, 20 + 1)]

    # Obtenemos los valores de cada historia en un diccionario y almacenamos esos
    # diccionarios en un arreglo.
    for hist in userHistoriesList:
        epic = oUserHistory.isEpic(hist.UH_idUserHistory)
        if not epic:
            result = oUserHistory.transformUserHistory(hist.UH_idUserHistory)
            userHistories.append(result)

    historiesSortedByPriority = []
    # Ordenamos las tuplas por prioridad
    for i in range(iterations + 1):
        for hist in userHistories:
            if hist['priority'] == i:
                historiesSortedByPriority.append(hist)
                userHistories.remove(hist)

    #Escala dependiente del proyecto
    res['fPrioridades_opcionesPrioridad'] = [{
        'key': scale[0],
        'value': scale[1]
    } for scale in resultScale]
    res['fPrioridades'] = {
        'idPila':
        idPila,
        'lista': [{
            'idHistoria':
            hist['idHistory'],
            'prioridad':
            hist['priority'],
            'enunciado':
            'En tanto ' + hist['actors'] + hist['accions'] + ' para ' +
            hist['objectives']
        } for hist in historiesSortedByPriority]
    }
    res['idPila'] = idPila

    return json.dumps(res)
Пример #8
0
def VHistorias():
    #GET parameter
    res = {}

    # Obtenemos el id del producto y de la historia.
    idPila = int(request.args.get('idPila', 1))

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

    oTask = task()
    oActor = role()
    oAccion = accions()
    oObjective = objective()
    oBacklog = backlog()
    oUserHistory = userHistory()
    oActUserHist = actorsUserHistory()
    oObjUserHIst = objectivesUserHistory()

    # Obtenemos las historias asociadas al producto idPila.
    userHistoriesList = oBacklog.userHistoryAsociatedToProduct(idPila)

    pesos = []
    userHistories = []
    options = {1: 'podria ', 2: 'puede '}
    priorities = {0: 'Epica', 1: 'Alta', 2: 'Media', 3: 'Baja'}
    priorities2 = {i: str(i) for i in range(1, 20 + 1)}
    priorities2[0] = 'Epica'

    # Obtenemos el tipo de escala seleccionada en el producto asociado a la historia.
    typeScale = oBacklog.scaleType(idPila)

    # Obtenemos los valores de cada historia en un diccionario y almacenamos esos
    # diccionarios en un arreglo.
    for hist in userHistoriesList:
        result = oUserHistory.transformUserHistory(hist.UH_idUserHistory)
        userHistories.append(result)
        tupla = (hist.UH_idUserHistory,
                 oTask.historyWeight(hist.UH_idUserHistory))
        pesos.append(tupla)

    # Obtenemos el maximo de la escala
    if typeScale == 1:
        iterations = 3
    elif typeScale == 2:
        iterations = 20

    historiesSortedByPriority = []
    # Ordenamos las tuplas por prioridad
    for i in range(iterations + 1):
        idsHistories = []
        for hist in userHistories:

            if hist['priority'] == i:
                # Convertimos a escala Alta, Media, Baja si es necesario
                if typeScale == 1:
                    hist['priority'] = priorities[i]
                elif typeScale == 2:
                    hist['priority'] = priorities2[i]
                historiesSortedByPriority.append(hist)
                # Almacenamos los ids de las historias ordenadas
                idsHistories.append(hist['idHistory'])

        # Eliminamos de userHistories las historias ordenadas.
        for id in idsHistories:
            for hist in userHistories:
                if hist['idHistory'] == id:
                    userHistories.remove(hist)
                    break

    res['data0'] = [{
        'idHistoria':
        hist['idHistory'],
        'prioridad':
        hist['priority'],
        'peso':
        oTask.lookup(pesos, hist['idHistory']),
        'enunciado':
        'En tanto ' + hist['actors'] + hist['accions'] + ' para ' +
        hist['objectives']
    } for hist in historiesSortedByPriority]
    session['idPila'] = idPila
    res['idPila'] = idPila

    return json.dumps(res)
Пример #9
0
def VPrioridades():
    #GET parameter
    res = {}

    # Obtenemos el id del producto.
    idPila    = int(session['idPila'])

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

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

    oActor            = role()
    oAccion           = accions()
    oObjective        = objective()
    oBacklog          = backlog()
    oUserHistory      = userHistory()
    oActUserHist      = actorsUserHistory()
    oObjUserHIst      = objectivesUserHistory()

    # Obtenemos las historias de usuario asociadas al producto.
    userHistoriesList = oBacklog.userHistoryAsociatedToProduct(idPila)

    userHistories = []
    options       = {1:'podría ',2:'puede '}
    scale         = {1:'Alta',2:'Media',3:'Baja'}

    # Obtenemos el tipo de escala asociada al producto.
    typeScale = oBacklog.scaleType(idPila)

    # Obtenemos el tipo de escala asociado al producto (id,valor) y elvalor maximo de la escala
    if typeScale == 1:
        iterations  = 3
        resultScale = [(i,scale[i]) for i in range(1,3+1)]
    elif typeScale == 2:
        iterations  = 20
        resultScale = [(i,i) for i in range(1,20+1)]

    # Obtenemos los valores de cada historia en un diccionario y almacenamos esos
    # diccionarios en un arreglo.
    for hist in userHistoriesList:
        epic = oUserHistory.isEpic(hist.UH_idUserHistory)
        if not epic:
            result = oUserHistory.transformUserHistory(hist.UH_idUserHistory)
            userHistories.append(result)

    historiesSortedByPriority = []
    # Ordenamos las tuplas por prioridad
    for i in range(iterations + 1):
        for hist in userHistories:
            if hist['priority'] == i:
                historiesSortedByPriority.append(hist)
                userHistories.remove(hist)

    #Escala dependiente del proyecto
    res['fPrioridades_opcionesPrioridad'] = [{'key':scale[0], 'value':scale[1]}for scale in resultScale]
    res['fPrioridades'] = {'idPila':idPila,'lista':[{'idHistoria':hist['idHistory'],'prioridad':hist['priority'], 'enunciado':'En tanto ' + hist['actors'] + hist['accions'] + ' para ' + hist['objectives']}for hist in historiesSortedByPriority]}
    res['idPila']       = idPila

    return json.dumps(res)
Пример #10
0
def VHistorias():
    #GET parameter
    res = {}

    # Obtenemos el id del producto y de la historia.
    idPila = int(request.args.get('idPila',1))

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

    oTask             = task()
    oActor            = role()
    oAccion           = accions()
    oObjective        = objective()
    oBacklog          = backlog()
    oUserHistory      = userHistory()
    oActUserHist      = actorsUserHistory()
    oObjUserHIst      = objectivesUserHistory()

    # Obtenemos las historias asociadas al producto idPila.
    userHistoriesList = oBacklog.userHistoryAsociatedToProduct(idPila)

    pesos          = []
    userHistories  = []
    options        = {1:'podria ',2:'puede '}
    priorities     = {0:'Epica',1:'Alta',2:'Media',3:'Baja'}
    priorities2    = {i:str(i)for i in range(1,20+1)}
    priorities2[0] = 'Epica'

    # Obtenemos el tipo de escala seleccionada en el producto asociado a la historia.
    typeScale = oBacklog.scaleType(idPila)

    # Obtenemos los valores de cada historia en un diccionario y almacenamos esos
    # diccionarios en un arreglo.
    for hist in userHistoriesList:
        result = oUserHistory.transformUserHistory(hist.UH_idUserHistory)
        userHistories.append(result)
        tupla = (hist.UH_idUserHistory,oTask.historyWeight(hist.UH_idUserHistory))
        pesos.append(tupla)

    # Obtenemos el maximo de la escala
    if typeScale == 1:
        iterations = 3
    elif typeScale == 2:
        iterations = 20

    historiesSortedByPriority = []
    # Ordenamos las tuplas por prioridad
    for i in range(iterations + 1):
        idsHistories = []
        for hist in userHistories:

            if hist['priority'] == i:
                # Convertimos a escala Alta, Media, Baja si es necesario
                if typeScale == 1:
                    hist['priority'] = priorities[i]
                elif typeScale == 2:
                    hist['priority'] = priorities2[i]
                historiesSortedByPriority.append(hist)
                # Almacenamos los ids de las historias ordenadas
                idsHistories.append(hist['idHistory'])

        # Eliminamos de userHistories las historias ordenadas.
        for id in idsHistories:
            for hist in userHistories:
                if hist['idHistory'] == id:
                    userHistories.remove(hist)
                    break


    res['data0']      = [{'idHistoria':hist['idHistory'],
                          'prioridad' :hist['priority'],
                          'peso'      :oTask.lookup(pesos,hist['idHistory']),
                          'enunciado' :'En tanto ' + hist['actors'] + hist['accions'] + ' para ' + hist['objectives']}for hist in historiesSortedByPriority]
    session['idPila'] = idPila
    res['idPila']     = idPila

    return json.dumps(res)