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)
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)
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)
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)
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)
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)
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)
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)
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)
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)