AbelMRobra / App-web-Django-LinkP

App-web realizado en Django para una empresa inmobiliaria. Tiene el propósito de generar una interfaz para recolectar y procesar datos
1 stars 0 forks source link

Panel de autorización de OC/Check #43

Closed AbelMRobra closed 3 years ago

AbelMRobra commented 3 years ago

Integrantes

@joseent @florm2496 @AbelMRobra

Explicación

Este panel tiene que tener un mejor diseño y funcionalidad para la autorización. En este panel debe haber 2 flujos distintos:

Tareas

Para esto se debe realizar:

Ubicación

Por template -> COMPRAS -> CHECK DE OC Por VScode -> Compras -> def panelvisto

Otros

Dentro del código, tendríamos que ver de sacar mi filtro artesanal. Lo paso para recordarlo


def panelvisto(request, estado):

    if request.method == 'POST':

        datos_post = request.POST.items()

        id_selec = 0

        for d in datos_post:

            if d[0] == 'APROBADA':
                id_selec = d[1]

                comparativa = Comparativas.objects.get(id = id_selec)

                comparativa.visto = "VISTO"

                comparativa.save()

            if d[0] == 'ADJAPROB':

                id_selec = d[1]

                comparativa = Comparativas.objects.get(id = id_selec)

                comparativa.visto = "VISTO NO CONFORME"

                comparativa.save()

    datos = 0

    if estado == "0":

        datos_base = Comparativas.objects.filter(estado = "AUTORIZADA", fecha_c__gte = "2021-02-01").order_by("-fecha_c")

        datos = []

        for d in datos_base:

            mensajes = ComparativasMensaje.objects.filter(comparativa = d)

            if d.creador:
                usuario = datosusuario.objects.get(identificacion = d.creador)

            else:
                usuario = 0

            datos.append((usuario, mensajes, d))

    if estado == "3":

        datos_base = Comparativas.objects.filter(estado = "AUTORIZADA", fecha_c__gte = "2021-02-01", visto="NO_VISTO").order_by("-fecha_c")

        datos = []

        for d in datos_base:

            mensajes = ComparativasMensaje.objects.filter(comparativa = d)

            if d.creador:
                usuario = datosusuario.objects.get(identificacion = d.creador)

            else:
                usuario = 0

            datos.append((usuario, mensajes, d))

    if estado == "2":

        datos_base = Comparativas.objects.filter(estado = "AUTORIZADA", fecha_c__gte = "2021-02-01", visto="VISTO NO CONFORME").order_by("-fecha_c")

        datos = []

        for d in datos_base:

            mensajes = ComparativasMensaje.objects.filter(comparativa = d)

            if d.creador:
                usuario = datosusuario.objects.get(identificacion = d.creador)

            else:
                usuario = 0

            datos.append((usuario, mensajes, d))

    if estado == "4":

        datos_base = Comparativas.objects.filter(estado = "AUTORIZADA", fecha_c__gte = "2021-02-01", visto="VISTO").order_by("-fecha_c")

        datos = []

        for d in datos_base:

            mensajes = ComparativasMensaje.objects.filter(comparativa = d)

            if d.creador:
                usuario = datosusuario.objects.get(identificacion = d.creador)

            else:
                usuario = 0

            datos.append((usuario, mensajes, d))
    #Aqui empieza el filtro

    if request.method == 'POST':

        datos_post = request.POST.items()

        for d in datos_post:

            if d[0] == 'palabra':

                datos_viejos = datos

                datos = []  

                palabra_buscar = request.POST["palabra"]

                if str(palabra_buscar) == "":

                    datos = datos_viejos

                else:

                    for i in datos_viejos:

                        palabra =(str(palabra_buscar))

                        lista_palabra = palabra.split()

                        buscar = (str(i[2].proyecto)+str(i[2].numero)+str(i[2].o_c)+str(i[2].creador)+str(i[2].proveedor.name))

                        contador = 0

                        for palabra in lista_palabra:

                            contador2 = 0

                            if palabra.lower() in buscar.lower():

                                contador += 1

                        if contador == len(lista_palabra):

                            datos.append(i)

    return render(request, 'ocautorizadas.html', {'datos':datos})
florm2496 commented 3 years ago

Este search debería solo sacarse o ser reemplazo por otro componente que cumpla la misma función?

AbelMRobra commented 3 years ago

Este search debería solo sacarse o ser reemplazo por otro componente que cumpla la misma función?

No recuerdo bien si funciona el search por JS, habria que probar