예제 #1
0
def AElimAccion():
    #GET parameter
    results = [
        {
            'label': '/VProducto',
            'msg': ['Accion eliminada']
        },
        {
            'label': '/VProducto',
            'msg': ['No se pudo eliminar esta acción']
        },
    ]
    res = results[1]

    # Obtenemos el id del producto y de la acción
    idPila = int(session['idPila'])
    idAccion = int(session['idAccion'])

    # Conseguimos la acción a eliminar
    oAccion = accions()
    found = oAccion.searchIdAccion(idAccion)

    oAccionUserHist = userHistory()
    result = oAccionUserHist.searchidUserHistoryIdAccion(idAccion)

    # Verificamos si la acción está asociado a una historia
    if (result == []):
        deleted = oAccion.deleteAccion(found[0].AC_accionDescription, idPila)

        if deleted:
            res = results[0]

    # Conseguimos la acción a eliminar
    oAccion = accions()
    found = oAccion.searchIdAccion(idAccion)

    oAccionUserHist = userHistory()
    result = oAccionUserHist.searchidUserHistoryIdAccion(idAccion)

    # Verificamos si la acción está asociado a una historia
    if (result == []):
        deleted = oAccion.deleteAccion(found[0].AC_accionDescription, 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)
예제 #2
0
def AModifAccion():
    #POST/PUT parameters
    params  = request.get_json()
    results = [{'label':'/VProducto', 'msg':['Acción actualizada']}, {'label':'/VProducto', 'msg':['Error al modificar acción']}, ]

    res     = results[1]

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

    # Extraemos los parámetros
    newDescription = params['descripcion']

    idAccion       = int(params['idAccion'])

    oAccion = accions()
    found   = oAccion.searchIdAccion(idAccion)
    result  = oAccion.updateAccion(found[0].AC_accionDescription, newDescription,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)
예제 #3
0
def VAccion():
    #GET parameter
    res = {}

    # Obtenemos el id del producto y de la acción
    idPila   = int(session['idPila'])
    idAccion = int(request.args.get('idAccion'))

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

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

    # Buscamos la accion actual.
    oAccion = accions()
    result  =  oAccion.searchIdAccion(idAccion)

    res['fAccion'] = {'idAccion':idAccion, 'descripcion':result[0].AC_accionDescription}
    res['idPila']  = idPila
    session['idAccion'] = idAccion

    return json.dumps(res)
예제 #4
0
def ACrearAccion():
    #POST/PUT parameters.
    params  = request.get_json()
    results = [{'label':'/VProducto', 'msg':['Acción creada']}, {'label':'/VCrearAccion', 'msg':['Error al crear acción']}, ]
    res     = results[1]

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


    if params != {}:
        # Extraemos los parámetros
        newDescription = params['descripcion']

        if request.method == 'POST':
            oAccion  = accions()
            inserted = oAccion.insertAccion(newDescription,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)
예제 #5
0
def VAccion():
    #GET parameter
    res = {}

    # Obtenemos el id del producto y de la acción
    idPila = int(session['idPila'])
    idAccion = int(request.args.get('idAccion'))

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

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

    # Buscamos la accion actual.
    oAccion = accions()
    result = oAccion.searchIdAccion(idAccion)

    res['fAccion'] = {
        'idAccion': idAccion,
        'descripcion': result[0].AC_accionDescription
    }
    res['idPila'] = idPila
    session['idAccion'] = idAccion

    return json.dumps(res)
예제 #6
0
파일: accion.py 프로젝트: 7Software/APMwSc
def AElimAccion():
    #GET parameter
    results = [{'label':'/VProducto', 'msg':['Accion eliminada']}, {'label':'/VProducto', 'msg':['No se pudo eliminar esta acción']}, ]
    res     = results[1]

    # Obtenemos el id del producto y de la acción
    idPila   = int(session['idPila'])
    idAccion = int(session['idAccion'])

    # Conseguimos la acción a eliminar
    oAccion = accions()
    found   = oAccion.searchIdAccion(idAccion)

    oAccionUserHist = userHistory()
    result  = oAccionUserHist.searchidUserHistoryIdAccion(idAccion)

    # Verificamos si la acción está asociado a una historia
    if (result == []):
        deleted = oAccion.deleteAccion(found[0].AC_accionDescription, 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)
예제 #7
0
def AModifAccion():
    #POST/PUT parameters
    params = request.get_json()
    results = [
        {
            'label': '/VProducto',
            'msg': ['Acción actualizada']
        },
        {
            'label': '/VProducto',
            'msg': ['Error al modificar acción']
        },
    ]

    res = results[1]

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

    # Extraemos los parámetros
    newDescription = params['descripcion']

    idAccion = int(params['idAccion'])

    oAccion = accions()
    found = oAccion.searchIdAccion(idAccion)
    result = oAccion.updateAccion(found[0].AC_accionDescription,
                                  newDescription, 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)
예제 #8
0
def ACrearAccion():
    #POST/PUT parameters.
    params = request.get_json()
    results = [
        {
            'label': '/VProducto',
            'msg': ['Acción creada']
        },
        {
            'label': '/VCrearAccion',
            'msg': ['Error al crear acción']
        },
    ]
    res = results[1]

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

    if params != {}:
        # Extraemos los parámetros
        newDescription = params['descripcion']

        if request.method == 'POST':
            oAccion = accions()
            inserted = oAccion.insertAccion(newDescription, 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)
예제 #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)
예제 #11
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)
예제 #12
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)