Ejemplo n.º 1
0
def cargar_valores(request, id_proyecto, id_fase, id_item):
    proyecto = Proyectos.objects.get(id=id_proyecto)
    fase = Fases.objects.get(id=id_fase)
    itemactual = Items.objects.get(id=id_item)
    if fase.estado == 'FD' or proyecto.estado=='Inactivo' or itemactual.estado=='En Revision' or itemactual.estado=='Bloqueado' or itemactual.estado=='Validado':
        mensaje = 'No se pueden modificar atributos. Dirijase a consultar item.'
        ctx = {'mensaje':mensaje, 'id_proyecto': id_proyecto}
        template_name = './items/itemalerta.html'
        return render_to_response(template_name, ctx, context_instance=RequestContext(request))
    if request.method=='POST': 
        idtipoitem = itemactual.tipo_item_id
        versionitem = itemactual.version + 1
        lista_atributos = ordenar_mantener(idtipoitem)
        i = 1
        posicion = 1
        for listaatributo in lista_atributos:
            nombreatributo = listaatributo.nombre
            idatributo = listaatributo.id_atributo
            iditematributo = listaatributo.id_tipoitem 
            tipoatributoobjetos = TipoAtributo.objects.filter(id=listaatributo.id_atributo)
            valoritems = ValorItem()
            for tipoatributoobjeto in tipoatributoobjetos:
                tipodatoatributo= tipoatributoobjeto.tipo
            if tipodatoatributo=='Archivo Externo':
                archivo = ArchivoExterno()
                archivo.valor = request.FILE[str(i)]
                archivo.id_item = id_item
                archivo.nombre_atributo = nombreatributo
                archivo.save()
                valoritems.item_id = id_item
                valoritems.valor_id = archivo.id
                valoritems.tabla_valor_nombre = 'tipoatributo_archivoexterno'
                valoritems.nombre_atributo = nombreatributo
                valoritems.tipo_dato = tipodatoatributo
                valoritems.version = versionitem
                valoritems.orden = posicion
                valoritems.proyecto_id = id_proyecto
                valoritems.fase_id = id_fase
                valoritems.save()
            elif tipodatoatributo=='Texto':
                archivo = Texto()
                archivo.valor = request.POST.get(str(i), '')
                archivo.id_item = id_item
                archivo.nombre_atributo = nombreatributo
                for tipoatributoobjeto in tipoatributoobjetos:
                    archivo.longitud = tipoatributoobjeto.longitud
                archivo.save()
                valoritems.item_id = id_item
                valoritems.valor_id = archivo.id
                valoritems.tabla_valor_nombre = 'tipoatributo_texto'
                valoritems.nombre_atributo = nombreatributo
                valoritems.tipo_dato = tipodatoatributo
                valoritems.version = versionitem
                valoritems.orden = posicion
                valoritems.proyecto_id = id_proyecto
                valoritems.fase_id = id_fase
                valoritems.save()
            elif tipodatoatributo=='Numerico':
                archivo = Numerico()
                archivo.valor = request.POST.get(str(i), '')
                archivo.id_item = id_item
                archivo.nombre_atributo = nombreatributo
                for tipoatributoobjeto in tipoatributoobjetos:
                    archivo.longitud = tipoatributoobjeto.longitud
                    archivo.precision = tipoatributoobjeto.precision
                archivo.save()
                valoritems.item_id = id_item
                valoritems.valor_id = archivo.id
                valoritems.tabla_valor_nombre = 'tipoatributo_numerico'
                valoritems.nombre_atributo = nombreatributo
                valoritems.tipo_dato = tipodatoatributo
                valoritems.version = versionitem
                valoritems.orden = posicion
                valoritems.proyecto_id = id_proyecto
                valoritems.fase_id = id_fase
                valoritems.save()
            elif tipodatoatributo=='Fecha':
                archivo = Fecha()
                archivo.valor = request.POST.get(str(i), '')
                archivo.id_item = id_item
                archivo.nombre_atributo = nombreatributo
                archivo.save()
                valoritems.item_id = id_item
                valoritems.valor_id = archivo.id
                valoritems.tabla_valor_nombre = 'tipoatributo_fecha'
                valoritems.nombre_atributo = nombreatributo
                valoritems.tipo_dato = tipodatoatributo
                valoritems.version = versionitem
                valoritems.orden = posicion
                valoritems.proyecto_id = id_proyecto
                valoritems.fase_id = id_fase
                valoritems.save()
            elif tipodatoatributo=='Logico':
                archivo = Logico()
                archivo.valor = request.POST.get(str(i), '')
                archivo.id_item = id_item
                archivo.nombre_atributo = nombreatributo
                archivo.save()
                valoritems.item_id = id_item
                valoritems.valor_id = archivo.id
                valoritems.tabla_valor_nombre = 'tipoatributo_logico'
                valoritems.nombre_atributo = nombreatributo
                valoritems.tipo_dato = tipodatoatributo
                valoritems.version = versionitem
                valoritems.orden = posicion
                valoritems.proyecto_id = id_proyecto
                valoritems.fase_id = id_fase
                valoritems.save()
            i = i+1
            posicion = posicion+1
        
        itemactual.version = versionitem
        itemactual.save()
        mensaje = 'Atributos modificados con extito.'
        template_name='./items/itemalerta.html'
        ctx = {'mensaje': mensaje, 'id_proyecto':id_proyecto, 'id_fase': id_fase,}
        return render_to_response(template_name, ctx, context_instance=RequestContext(request))
        
    idtipo = itemactual.tipo_item_id     
    lista_atributos = ordenar_mantener(idtipo)
    lista_valores = []
    orden = 0
    atributositem = ValorItem.objects.filter(proyecto_id=id_proyecto, fase_id=id_fase, item_id=id_item, version=itemactual.version).order_by('orden')
    if atributositem:
        for i in atributositem:
            valorfuturo = ListaValores()
            valorfuturo.nombre_atributo = i.nombre_atributo
            valorfuturo.tipo_dato = i.tipo_dato
            valorfuturo.orden = i.orden
            if i.tipo_dato=='Texto':
                textos = Texto.objects.filter(id=i.valor_id)
                if textos:
                    for texto in textos:
                        valorfuturo.valor_texto = texto.valor
                else:
                    valorfuturo.valor_texto = ""
                valorfuturo.save()
                lista_valores.append(valorfuturo)
            if i.tipo_dato=='Numerico':
                textos = Numerico.objects.filter(id=i.valor_id)
                if textos:
                    for texto in textos:
                        valorfuturo.valor_numerico = texto.valor
                else:
                    valorfuturo.valor_numerico = ""
                valorfuturo.save()
                lista_valores.append(valorfuturo)
            if i.tipo_dato=='Fecha':
                textos = Fecha.objects.filter(id=i.valor_id)
                if textos:
                    for texto in textos:
                        valorfuturo.valor_fecha = texto.valor
                else:
                    valorfuturo.valor_fecha = ""
                valorfuturo.save()
                lista_valores.append(valorfuturo)
            if i.tipo_dato=='Archivo Externo':
                textos = Texto.objects.filter(id=i.valor_id)
                if textos:
                    for texto in textos:
                        valorfuturo.valor_archivoexterno = texto.valor
                else:
                    valorfuturo.valor_archivoexterno = ""
                valorfuturo.save()
                lista_valores.append(valorfuturo)
            if i.tipo_dato=='Logico':
                textos = Logico.objects.filter(id=i.valor_id)
                if textos:
                    for texto in textos:
                        valorfuturo.valor_logico = texto.valor
                else:
                    valorfuturo.valor_logico = ""
                valorfuturo.save()
                lista_valores.append(valorfuturo)
    else:
        for atributo in lista_atributos:
            orden = orden+1
            valorfuturo = ListaValores()
            valorfuturo.nombre_atributo = atributo.nombre
            atributoobjeto = TipoAtributo.objects.get(id=atributo.id_atributo)
            valorfuturo.tipo_dato = atributoobjeto.tipo
            valorfuturo.orden = orden
            valorfuturo.valor_archivoexterno = ""
            valorfuturo.valor_texto = ""
            valorfuturo.valor_numerico = ""
            valorfuturo.valor_fecha = ""
            
            lista_valores.append(valorfuturo)
            
    template_name='./items/cargaratributos.html'
    return render(request, template_name, {'id_proyecto':id_proyecto, 'id_fase': id_fase, 'id_tipoitem': idtipo, 'lista_valores': lista_valores, 'id_item': id_item})        
Ejemplo n.º 2
0
def importar (request, id_proyecto):
    
    """ Recibe un request y el id del proyecto a ser importado, se verifica si el usuario tiene
    permisos para importar un proyecto existente, luego se lo redirige a la pagina para completar los
    datos del formulario de nuevo proyecto importado, una vez completado correctamente el formulario el
    sistema crea un nuevo proyecto con las caracteristicas del proyecto importado.
    
    @type request: django.http.HttpRequest.
    @param request: Contiene informacion sobre la solicitud web actual que llamo a esta vista importar.
     
    @type id_usuario : string.
    @param id_usuario : Contiene el id del proyecto a ser importado.
    
    @rtype: django.shortcuts.render_to_response.
    @return: crearproyectoimportado.html, donde se redirige al usuario para completar los datos del nuevo
    proyecto importado o a proyectoalerta.html donde se notifica que el proyecto fue importado correctamente.
    
    @author: Juana Maldonado.
    
    """
    
    proyectoImportado = Proyectos.objects.get(id=id_proyecto)
    if request.method == 'POST':
        form = ProyectoNuevoForm(request.POST)
        if form.is_valid():
            form.clean()
            nombre = form.cleaned_data['Nombre_del_Proyecto'] 
            fecha_inicio = form.cleaned_data['Fecha_de_Inicio']
            duracion =  form.cleaned_data['Duracion']
            
            proyecto = Proyectos()
            proyecto.nombre=nombre
            proyecto.lider=None
            proyecto.fecha_inicio=fecha_inicio
            proyecto.duracion=duracion
            proyecto.is_active='True'
            proyecto.save()
                
            fasesImportadas = Fases.objects.filter(proyecto=id_proyecto, is_active=True)     
            for faseImport in fasesImportadas:
                fase = Fases()
                fase.nombre = faseImport.nombre
                fase.estado = 'DF'
                fase.proyecto = proyecto
                fase.save()
                
            tipoitems=TipoItem.objects.filter(id_proyecto=id_proyecto, is_active=True)
            for tipoitem in tipoitems:
                TI= TipoItem()
                TI.nombre=tipoitem.nombre
                TI.descripcion=tipoitem.descripcion
                TI.id_proyecto=proyecto.id
                TI.is_active='True'
                TI.save()
                    
                elementos_existentes = ordenar_mantener(tipoitem.id)
                for elemento in elementos_existentes:
                    lista_atributo = ListaAtributo()
                    lista_atributo.id_atributo = elemento.id
                    lista_atributo.id_tipoitem = TI.id
                    lista_atributo.nombre = elemento.nombre
                    lista_atributo.is_active = True
                    
                    elementos = ordenar_mantener(TI.id)
                    if elementos:
                        lista_atributo.orden = len(elementos_existentes) + 1
                    else:
                        lista_atributo.orden = 1
                    lista_atributo.save()
                        
                    TI.listaAtributo.add(lista_atributo)
            
            mensaje="Proyecto importado exitosamente"
            ctx = {'mensaje':mensaje}
            return render_to_response('proyectos/proyectoalerta.html',ctx, context_instance=RequestContext(request))
    else:   
        form = ProyectoNuevoForm()
        
    ctx ={'form': form, 'proyecto':proyectoImportado}      
    template_name='proyectos/crearproyectoimportado.html'
    return render_to_response(template_name, ctx, context_instance=RequestContext(request))
    
Ejemplo n.º 3
0
def cargar_valores(request, id_proyecto, id_fase, id_item):
    proyecto = Proyectos.objects.get(id=id_proyecto)
    fase = Fases.objects.get(id=id_fase)
    itemactual = Items.objects.get(id=id_item)
    if fase.estado == 'FD' or proyecto.estado == 'Inactivo' or itemactual.estado == 'En Revision' or itemactual.estado == 'Bloqueado' or itemactual.estado == 'Validado':
        mensaje = 'No se pueden modificar atributos. Dirijase a consultar item.'
        ctx = {'mensaje': mensaje, 'id_proyecto': id_proyecto}
        template_name = './items/itemalerta.html'
        return render_to_response(template_name,
                                  ctx,
                                  context_instance=RequestContext(request))
    if request.method == 'POST':
        idtipoitem = itemactual.tipo_item_id
        versionitem = itemactual.version + 1
        lista_atributos = ordenar_mantener(idtipoitem)
        i = 1
        posicion = 1
        for listaatributo in lista_atributos:
            nombreatributo = listaatributo.nombre
            idatributo = listaatributo.id_atributo
            iditematributo = listaatributo.id_tipoitem
            tipoatributoobjetos = TipoAtributo.objects.filter(
                id=listaatributo.id_atributo)
            valoritems = ValorItem()
            for tipoatributoobjeto in tipoatributoobjetos:
                tipodatoatributo = tipoatributoobjeto.tipo
            if tipodatoatributo == 'Archivo Externo':
                archivo = ArchivoExterno()
                archivo.valor = request.FILE[str(i)]
                archivo.id_item = id_item
                archivo.nombre_atributo = nombreatributo
                archivo.save()
                valoritems.item_id = id_item
                valoritems.valor_id = archivo.id
                valoritems.tabla_valor_nombre = 'tipoatributo_archivoexterno'
                valoritems.nombre_atributo = nombreatributo
                valoritems.tipo_dato = tipodatoatributo
                valoritems.version = versionitem
                valoritems.orden = posicion
                valoritems.proyecto_id = id_proyecto
                valoritems.fase_id = id_fase
                valoritems.save()
            elif tipodatoatributo == 'Texto':
                archivo = Texto()
                archivo.valor = request.POST.get(str(i), '')
                archivo.id_item = id_item
                archivo.nombre_atributo = nombreatributo
                for tipoatributoobjeto in tipoatributoobjetos:
                    archivo.longitud = tipoatributoobjeto.longitud
                archivo.save()
                valoritems.item_id = id_item
                valoritems.valor_id = archivo.id
                valoritems.tabla_valor_nombre = 'tipoatributo_texto'
                valoritems.nombre_atributo = nombreatributo
                valoritems.tipo_dato = tipodatoatributo
                valoritems.version = versionitem
                valoritems.orden = posicion
                valoritems.proyecto_id = id_proyecto
                valoritems.fase_id = id_fase
                valoritems.save()
            elif tipodatoatributo == 'Numerico':
                archivo = Numerico()
                archivo.valor = request.POST.get(str(i), '')
                archivo.id_item = id_item
                archivo.nombre_atributo = nombreatributo
                for tipoatributoobjeto in tipoatributoobjetos:
                    archivo.longitud = tipoatributoobjeto.longitud
                    archivo.precision = tipoatributoobjeto.precision
                archivo.save()
                valoritems.item_id = id_item
                valoritems.valor_id = archivo.id
                valoritems.tabla_valor_nombre = 'tipoatributo_numerico'
                valoritems.nombre_atributo = nombreatributo
                valoritems.tipo_dato = tipodatoatributo
                valoritems.version = versionitem
                valoritems.orden = posicion
                valoritems.proyecto_id = id_proyecto
                valoritems.fase_id = id_fase
                valoritems.save()
            elif tipodatoatributo == 'Fecha':
                archivo = Fecha()
                archivo.valor = request.POST.get(str(i), '')
                archivo.id_item = id_item
                archivo.nombre_atributo = nombreatributo
                archivo.save()
                valoritems.item_id = id_item
                valoritems.valor_id = archivo.id
                valoritems.tabla_valor_nombre = 'tipoatributo_fecha'
                valoritems.nombre_atributo = nombreatributo
                valoritems.tipo_dato = tipodatoatributo
                valoritems.version = versionitem
                valoritems.orden = posicion
                valoritems.proyecto_id = id_proyecto
                valoritems.fase_id = id_fase
                valoritems.save()
            elif tipodatoatributo == 'Logico':
                archivo = Logico()
                archivo.valor = request.POST.get(str(i), '')
                archivo.id_item = id_item
                archivo.nombre_atributo = nombreatributo
                archivo.save()
                valoritems.item_id = id_item
                valoritems.valor_id = archivo.id
                valoritems.tabla_valor_nombre = 'tipoatributo_logico'
                valoritems.nombre_atributo = nombreatributo
                valoritems.tipo_dato = tipodatoatributo
                valoritems.version = versionitem
                valoritems.orden = posicion
                valoritems.proyecto_id = id_proyecto
                valoritems.fase_id = id_fase
                valoritems.save()
            i = i + 1
            posicion = posicion + 1

        itemactual.version = versionitem
        itemactual.save()
        mensaje = 'Atributos modificados con extito.'
        template_name = './items/itemalerta.html'
        ctx = {
            'mensaje': mensaje,
            'id_proyecto': id_proyecto,
            'id_fase': id_fase,
        }
        return render_to_response(template_name,
                                  ctx,
                                  context_instance=RequestContext(request))

    idtipo = itemactual.tipo_item_id
    lista_atributos = ordenar_mantener(idtipo)
    lista_valores = []
    orden = 0
    atributositem = ValorItem.objects.filter(
        proyecto_id=id_proyecto,
        fase_id=id_fase,
        item_id=id_item,
        version=itemactual.version).order_by('orden')
    if atributositem:
        for i in atributositem:
            valorfuturo = ListaValores()
            valorfuturo.nombre_atributo = i.nombre_atributo
            valorfuturo.tipo_dato = i.tipo_dato
            valorfuturo.orden = i.orden
            if i.tipo_dato == 'Texto':
                textos = Texto.objects.filter(id=i.valor_id)
                if textos:
                    for texto in textos:
                        valorfuturo.valor_texto = texto.valor
                else:
                    valorfuturo.valor_texto = ""
                valorfuturo.save()
                lista_valores.append(valorfuturo)
            if i.tipo_dato == 'Numerico':
                textos = Numerico.objects.filter(id=i.valor_id)
                if textos:
                    for texto in textos:
                        valorfuturo.valor_numerico = texto.valor
                else:
                    valorfuturo.valor_numerico = ""
                valorfuturo.save()
                lista_valores.append(valorfuturo)
            if i.tipo_dato == 'Fecha':
                textos = Fecha.objects.filter(id=i.valor_id)
                if textos:
                    for texto in textos:
                        valorfuturo.valor_fecha = texto.valor
                else:
                    valorfuturo.valor_fecha = ""
                valorfuturo.save()
                lista_valores.append(valorfuturo)
            if i.tipo_dato == 'Archivo Externo':
                textos = Texto.objects.filter(id=i.valor_id)
                if textos:
                    for texto in textos:
                        valorfuturo.valor_archivoexterno = texto.valor
                else:
                    valorfuturo.valor_archivoexterno = ""
                valorfuturo.save()
                lista_valores.append(valorfuturo)
            if i.tipo_dato == 'Logico':
                textos = Logico.objects.filter(id=i.valor_id)
                if textos:
                    for texto in textos:
                        valorfuturo.valor_logico = texto.valor
                else:
                    valorfuturo.valor_logico = ""
                valorfuturo.save()
                lista_valores.append(valorfuturo)
    else:
        for atributo in lista_atributos:
            orden = orden + 1
            valorfuturo = ListaValores()
            valorfuturo.nombre_atributo = atributo.nombre
            atributoobjeto = TipoAtributo.objects.get(id=atributo.id_atributo)
            valorfuturo.tipo_dato = atributoobjeto.tipo
            valorfuturo.orden = orden
            valorfuturo.valor_archivoexterno = ""
            valorfuturo.valor_texto = ""
            valorfuturo.valor_numerico = ""
            valorfuturo.valor_fecha = ""

            lista_valores.append(valorfuturo)

    template_name = './items/cargaratributos.html'
    return render(
        request, template_name, {
            'id_proyecto': id_proyecto,
            'id_fase': id_fase,
            'id_tipoitem': idtipo,
            'lista_valores': lista_valores,
            'id_item': id_item
        })
Ejemplo n.º 4
0
def importar(request, id_proyecto):
    """ Recibe un request y el id del proyecto a ser importado, se verifica si el usuario tiene
    permisos para importar un proyecto existente, luego se lo redirige a la pagina para completar los
    datos del formulario de nuevo proyecto importado, una vez completado correctamente el formulario el
    sistema crea un nuevo proyecto con las caracteristicas del proyecto importado.
    
    @type request: django.http.HttpRequest.
    @param request: Contiene informacion sobre la solicitud web actual que llamo a esta vista importar.
     
    @type id_usuario : string.
    @param id_usuario : Contiene el id del proyecto a ser importado.
    
    @rtype: django.shortcuts.render_to_response.
    @return: crearproyectoimportado.html, donde se redirige al usuario para completar los datos del nuevo
    proyecto importado o a proyectoalerta.html donde se notifica que el proyecto fue importado correctamente.
    
    @author: Juana Maldonado.
    
    """

    proyectoImportado = Proyectos.objects.get(id=id_proyecto)
    if request.method == 'POST':
        form = ProyectoNuevoForm(request.POST)
        if form.is_valid():
            form.clean()
            nombre = form.cleaned_data['Nombre_del_Proyecto']
            fecha_inicio = form.cleaned_data['Fecha_de_Inicio']
            duracion = form.cleaned_data['Duracion']

            proyecto = Proyectos()
            proyecto.nombre = nombre
            proyecto.lider = None
            proyecto.fecha_inicio = fecha_inicio
            proyecto.duracion = duracion
            proyecto.is_active = 'True'
            proyecto.save()

            fasesImportadas = Fases.objects.filter(proyecto=id_proyecto,
                                                   is_active=True)
            for faseImport in fasesImportadas:
                fase = Fases()
                fase.nombre = faseImport.nombre
                fase.estado = 'DF'
                fase.proyecto = proyecto
                fase.save()

            tipoitems = TipoItem.objects.filter(id_proyecto=id_proyecto,
                                                is_active=True)
            for tipoitem in tipoitems:
                TI = TipoItem()
                TI.nombre = tipoitem.nombre
                TI.descripcion = tipoitem.descripcion
                TI.id_proyecto = proyecto.id
                TI.is_active = 'True'
                TI.save()

                elementos_existentes = ordenar_mantener(tipoitem.id)
                for elemento in elementos_existentes:
                    lista_atributo = ListaAtributo()
                    lista_atributo.id_atributo = elemento.id
                    lista_atributo.id_tipoitem = TI.id
                    lista_atributo.nombre = elemento.nombre
                    lista_atributo.is_active = True

                    elementos = ordenar_mantener(TI.id)
                    if elementos:
                        lista_atributo.orden = len(elementos_existentes) + 1
                    else:
                        lista_atributo.orden = 1
                    lista_atributo.save()

                    TI.listaAtributo.add(lista_atributo)

            mensaje = "Proyecto importado exitosamente"
            ctx = {'mensaje': mensaje}
            return render_to_response('proyectos/proyectoalerta.html',
                                      ctx,
                                      context_instance=RequestContext(request))
    else:
        form = ProyectoNuevoForm()

    ctx = {'form': form, 'proyecto': proyectoImportado}
    template_name = 'proyectos/crearproyectoimportado.html'
    return render_to_response(template_name,
                              ctx,
                              context_instance=RequestContext(request))