Beispiel #1
0
def detalle_protocolo_vista(request, id_protocolo):
    # Cargar el menu del usuario
    lista_menu = UsuarioView.crearMenu(request.user)
    usuario_parametro = Usuario.objects.get(user_id=request.user.id)

    if (request.method == "POST"):
        usuario_actual = request.user
        usuario = Usuario.objects.get(user_id=usuario_actual.id)
        comentario_nuevo = ComentarioProtocolo()
        comentario_nuevo.texto = request.POST['comentario_nuevo']
        comentario_nuevo.protocolo = Protocolo.objects.get(
            id=request.POST['id_protocolo'])
        comentario_nuevo.usuario = usuario
        comentario_nuevo.save()

    # Obtiene el objeto de referencia
    protocolo = Protocolo.objects.get(id=id_protocolo)
    # Traer los objetos relacionados
    lista_pasos = Paso.objects.filter(protocolo=id_protocolo)
    lista_insumos = protocolo.insumos.all()

    comentarios_protocolo = ComentarioProtocolo.objects.filter(
        protocolo=id_protocolo).order_by('id')

    # Subir la informacion al contexto
    context = {
        'protocolo': protocolo,
        'lista_pasos': lista_pasos,
        'lista_insumos': lista_insumos,
        'lista_menu': lista_menu,
        'usuario_parametro': usuario_parametro,
        'comentarios_protocolo': comentarios_protocolo
    }

    return render(request, 'protocolos.html', context)
Beispiel #2
0
def crear_protocolo(request):
    # Cargar el menu del usuario
    lista_menu = UsuarioView.crearMenu(request.user)
    usuario_parametro = Usuario.objects.get(user_id=request.user.id)

    if request.method == 'POST':
        form = CrearProtocoloForm(request.POST)
        # Validar formulario
        if form.is_valid():
            protocolo = form.save()
            # Guardar la protocolo
            protocolo.save()
            # Cargar mensaje de exito
            messages.add_message(request, messages.SUCCESS,
                                 'El protocolo se ha creado correctamente')
            # Retornar a la pagina crearSolicitud
            return HttpResponseRedirect(reverse('crearProtocolo'))
        else:
            # Visualizar errores presentados
            print(form.errors)
    else:
        form = CrearProtocoloForm()

    context = {
        'form': form,
        'lista_menu': lista_menu,
        'usuario_parametro': usuario_parametro,
    }

    return render(request, 'crearProtocolo.html', context)
Beispiel #3
0
def proyectos(request):
    # Inicializar variables
    usuario_actual = Usuario.objects.get(user=request.user)
    usuario_parametro = Usuario.objects.get(user_id=usuario_actual.id)
    lista_proyectos = []
    # Crear el menu del usuario
    lista_menu = UsuarioView.crearMenu(request.user)
    # Cargar el usuario activo
    usuario_parametro = Usuario.objects.get(user_id=request.user.id)

    # if usuario_actual.is_authenticated:
    # Cargar los proyectos del usuario ha iniciado sesión
    if usuario_actual.rol_usuario == "rol_asistente":

        lista_proyectos = Proyecto.objects.filter(asistentes__user__usuario=usuario_parametro.id)
    else:
        lista_proyectos = Proyecto.objects.all()

    context = {
        'lista_proyectos': lista_proyectos,
        'usuario_parametro': usuario_parametro,
        'lista_menu': lista_menu,
    }

    return render(request, 'proyectos.html', context)
Beispiel #4
0
def crear_solicitud(request):
    # Crear el menu del usuario
    lista_menu = UsuarioView.crearMenu(request.user)
    # Cargar el usuario activo
    usuario_parametro = Usuario.objects.get(user_id=request.user.id)

    if request.method == 'POST':
        form = SolicitudForm(request.POST)
        # Validar formulario
        if form.is_valid():
            solicitud = form.save(commit=False)
            # Se debe guardar el usuario creador
            solicitud.usuario_creador = Usuario.objects.get(user=request.user)
            # Guardar la solicitud
            solicitud.save()
            # Cargar mensaje de exito
            messages.add_message(request, messages.SUCCESS,
                                 'La solicitud se ha creado correctamente')
            # Retornar a la pagina crearSolicitud
            return HttpResponseRedirect(reverse('crearSolicitud'))
        else:
            # Visualizar errores presentados
            print(form.errors)
    else:
        form = SolicitudForm()

    context = {
        'form': form,
        'usuario_parametro': usuario_parametro,
        'lista_menu': lista_menu,
    }

    return render(request, 'crearSolicitud.html', context)
Beispiel #5
0
def menu_solicitud(request):
    # Crear el menu del usuario
    lista_menu = UsuarioView.crearMenu(request.user)
    # Cargar el usuario activo
    usuario_parametro = Usuario.objects.get(user_id=request.user.id)
    context = {
        'lista_menu': lista_menu,
        'usuario_parametro': usuario_parametro,
    }
    return render(request, 'menuSolicitud.html', context)
Beispiel #6
0
def ver_Solicitud(request, id):
    # Crear el menu del usuario
    lista_menu = UsuarioView.crearMenu(request.user)
    # Cargar el usuario activo
    usuario_parametro = Usuario.objects.get(user_id=request.user.id)

    if (request.method == "POST" and 'btn_aprobarSol' in request.POST):
        form = OrdenForm(request.POST)
        # Validar formulario
        if form.is_valid():
            orden = form.save(commit=False)
            # Se debe guardar la solicitud referente a la orden de compra
            orden.solicitud = Solicitud.objects.get(id=id)
            # Guardar la orden de compra
            orden.save()
            # Actualizar el estado de la solicitud a aprobado
            solicitud = Solicitud.objects.get(id=id)
            solicitud.estado = "Aprobado"
            solicitud.respuesta = request.POST['respuestaAprobado']
            solicitud.save()
            # Retornar a la pagina crearSolicitud
            return HttpResponseRedirect(reverse('solicitudes'))
        else:
            # Visualizar errores presentados
            print(form.errors)

    # #Actualizar el estado de la solicitud a rechazado
    elif (request.method == "POST" and 'btn_rechazarSol' in request.POST):
        solicitud = Solicitud.objects.get(id=id)
        solicitud.estado = "Rechazado"
        solicitud.respuesta = request.POST['respuesta']
        solicitud.save()
        return HttpResponseRedirect(reverse('solicitudes'))

    # Mostrar estado formulario de la solicitud consultada
    else:
        usuario = Usuario.objects.get(user=request.user)
        solicitud = Solicitud.objects.get(id=id)
        if usuario.rol_usuario.rol != "rol_asistente" and solicitud.estado == "Pendiente":
            form = OrdenForm()
            context = {
                'solicitud': solicitud,
                'form': form,
                'lista_menu': lista_menu,
                'usuario_parametro': usuario_parametro,
            }
        else:
            context = {
                'solicitud': solicitud,
                'lista_menu': lista_menu,
                'usuario_parametro': usuario_parametro,
            }

    return render(request, 'verSolicitud.html', context)
Beispiel #7
0
def registrarResultado(request, id):
    # Crear el menu del usuario
    lista_menu = UsuarioView.crearMenu(request.user)
    # Cargar el usuario activo
    usuario_parametro = Usuario.objects.get(user_id=request.user.id)

    if (request.method == "POST"):

        resultados = request.POST['resultados']
        satisfactorio = request.POST['satisfactorio']
        observaciones = request.POST['observaciones']
        fecha = datetime.strptime(request.POST['fecha'], "%m/%d/%Y")
        proyecto = request.POST['proyecto']
        experimento = request.POST['experimento']
        protocolo = request.POST['protocolo']

        resultado = Resultado()
        resultado.detalle_resultado = resultados
        resultado.satisfactorio = satisfactorio
        resultado.observaciones = observaciones
        resultado.fecha_resultado = fecha
        resultado.proyecto = Proyecto.objects.get(id=proyecto)
        resultado.experimento = Experimento.objects.get(id=experimento)
        resultado.protocolo = Protocolo.objects.get(id=protocolo)
        resultado.save()
        messages.success(request,
                         "Resultado guardado",
                         extra_tags="alert-success")

    experimento = Experimento.objects.get(id=id)
    resultados = Resultado.objects.filter(experimento=experimento)
    proyectos = Proyecto.objects.all()
    sqlProtocolos = "SELECT * FROM public.protocolo_protocolo pro2 INNER JOIN(SELECT MAX(pro.version) as version, pro.nombre as nombre FROM public.protocolo_protocolo pro GROUP BY pro.nombre)  sq ON (pro2.nombre = sq.nombre AND pro2.version = sq.version)"
    protocolos = Protocolo.objects.raw(
        sqlProtocolos
    )  # Protocolo.objects.all().values('nombre', 'version').annotate(Max('version'))

    context = {
        'experimento': experimento,
        'proyectos': proyectos,
        'protocolos': protocolos,
        'resultados': resultados,
        'usuario_parametro': usuario_parametro,
        'lista_menu': lista_menu,
    }

    return render(request, 'registrar_resultado.html', context)
Beispiel #8
0
def index(request):
    inicializarDatos()
    form_login = LoginForm()
    lista_menu = []
    usuario_parametro = ''

    if request.user.is_authenticated:
        lista_menu = UsuarioView.crearMenu(request.user)
        # Cargar el usuario activo
        usuario_parametro = Usuario.objects.get(user_id=request.user.id)

    context = {
        'form_login': form_login,
        'lista_menu': lista_menu,
        'usuario_parametro': usuario_parametro
    }
    return render(request, 'index.html', context)
Beispiel #9
0
def buscar_protocolo_vista(request):
    # Inicializa listado de protocolos
    lista_protocolos = Protocolo.objects.all()
    # Bandera para mostrar/ocultar los resultados
    mostrar_resultados = False
    # Cargar el menu del usuario
    lista_menu = UsuarioView.crearMenu(request.user)
    usuario_parametro = Usuario.objects.get(user_id=request.user.id)

    if request.method == 'POST':
        # Envia el formulario con los datos diligenciados por el usuario
        protocolo_form = ProtocoloForm(data=request.POST)

        # Validar si el formulario es correcto
        if protocolo_form.is_valid():
            mostrar_resultados = True
            # Aplicar criterios de busqueda

            lista_protocolos = Protocolo.objects.all()
            # Se aplican los filtros que el usuario digita
            if len(request.POST.get('codigo')) > 0:
                lista_protocolos = lista_protocolos.filter(
                    codigo__contains=request.POST.get('codigo'))
            if request.POST.get('clasificacion') != '':
                lista_protocolos = lista_protocolos.filter(
                    clasificacion__nombre_clasificacion__contains=request.POST.
                    get('clasificacion'))
            if request.POST.get('nombre') != '':
                lista_protocolos = lista_protocolos.filter(
                    nombre__contains=request.POST.get('nombre'))

    else:  # Si el request es de tipo get
        # Inicializa formulario vacio
        protocolo_form = ProtocoloForm()

    context = {
        'lista_menu': lista_menu,
        'formProtocolo': protocolo_form,
        'lista_protocolos': lista_protocolos,
        'mostrar_resultados': mostrar_resultados,
        'usuario_parametro': usuario_parametro,
    }

    return render(request, 'buscarProtocolos.html', context)
Beispiel #10
0
def actualizar_protocolo(request, id_protocolo):
    # Cargar el menu del usuario
    lista_menu = UsuarioView.crearMenu(request.user)
    usuario_parametro = Usuario.objects.get(user_id=request.user.id)
    # Obtiene el objeto de referencia
    protocolo = Protocolo.objects.get(id=id_protocolo)
    # Inicializar el formulario
    form_actualizar_protocolo = ActualizarProtocoloForm()

    if (request.method == "POST"):
        # Cargar datos del formulario
        form_actualizar_protocolo = ActualizarProtocoloForm(request.POST)
        # Validar formulario
        if form_actualizar_protocolo.is_valid():
            # Actualizar informacion del protocolo
            protocolo_actualizado = form_actualizar_protocolo.save()
            # Aumentar la version del protocolo
            protocolo_actualizado.version = protocolo.version + 0.1
            # Mantener informacion estatica
            protocolo_actualizado.nombre = protocolo.nombre
            protocolo_actualizado.codigo = protocolo.codigo
            # Guardar la protocolo
            protocolo_actualizado.save()
            # Cargar mensaje de exito
            messages.add_message(
                request, messages.SUCCESS,
                'El protocolo se ha actualizado correctamente')
            # Retornar a la pagina crearSolicitud
            return HttpResponseRedirect(reverse('actualizarProtocolo'))
        else:
            # Visualizar errores presentados
            print(form_actualizar_protocolo.errors)
    else:
        form_actualizar_protocolo = CrearProtocoloForm()

    # Subir la informacion al contexto
    context = {
        'protocolo': protocolo,
        'lista_menu': lista_menu,
        'usuario_parametro': usuario_parametro,
        'form_actualizar_protocolo': form_actualizar_protocolo,
    }

    return render(request, 'actualizarProtocolo.html', context)
Beispiel #11
0
def detalleProyecto(request, id):
    # Inicializar variables
    lista_menu = UsuarioView.crearMenu(request.user)
    # Cargar el usuario activo
    usuario_parametro = Usuario.objects.get(user_id=request.user.id)

    if (request.method == "POST"):
        resultado = request.POST['resultado']
        id = request.POST['experimento_id']
        experimento = Experimento.objects.get(id=id)
        experimento.resultado = resultado
        experimento.save()

    proyecto = Proyecto.objects.get(id=id)

    context = {
        'proyecto': proyecto,
        'lista_menu': lista_menu,
        'usuario_parametro': usuario_parametro,
    }
    return render(request, 'detalle_proyecto.html', context)
Beispiel #12
0
def listar_solicitudes(request):
    # Crear el menu del usuario
    lista_menu = UsuarioView.crearMenu(request.user)
    # Cargar el usuario activo
    usuario_parametro = Usuario.objects.get(user_id=request.user.id)
    usuario = Usuario.objects.get(user=request.user)

    if usuario.rol_usuario.rol == "rol_asistente":
        # Se filtran las solicitudes por usuario creador
        lista_solicitudes = Solicitud.objects.filter(
            usuario_creador=usuario).order_by('-fecha_creacion')
    else:
        # Se filtran las solicitudes por usuario destino
        lista_solicitudes = Solicitud.objects.filter(
            usuario_destino=usuario).order_by('-fecha_creacion')

    context = {
        'lista_solicitudes': lista_solicitudes,
        'lista_menu': lista_menu,
        'usuario_parametro': usuario_parametro,
    }
    return render(request, 'solicitudes.html', context)
Beispiel #13
0
def index(request):
    inicializarDatos()
    form_login = LoginForm()
    lista_menu = []
    usuario_parametro = ''
    usuario_proyectos = ''
    usuario_experimentos = ''
    usuario_solicitudes = ''
    usuario_maquinas = ''

    if request.user.is_authenticated:
        # Crear el menu del usuario
        lista_menu = UsuarioView.crearMenu(request.user)
        # Cargar el usuario activo
        usuario_parametro = Usuario.objects.get(user_id=request.user.id)

        # Cargar informacion del dashboard
        usuario_proyectos = len(
            Proyecto.objects.filter(asistentes__user=request.user.id))
        usuario_experimentos = len(
            Experimento.objects.filter(
                experimento__proyecto_id__in=Proyecto.objects.filter(
                    asistentes__user=request.user.id)))
        usuario_solicitudes = len(
            Solicitud.objects.filter(usuario_creador=request.user.id))
        usuario_maquinas = len(
            PrestamoMaquina.objects.filter(usuario=request.user.id))

    context = {
        'form_login': form_login,
        'lista_menu': lista_menu,
        'usuario_parametro': usuario_parametro,
        'usuario_proyectos': usuario_proyectos,
        'usuario_experimentos': usuario_experimentos,
        'usuario_solicitudes': usuario_solicitudes,
        'usuario_maquinas': usuario_maquinas
    }

    return render(request, 'index.html', context)
Beispiel #14
0
def registrarMezcla(request, id):
    # Crear el menu del usuario
    lista_menu = UsuarioView.crearMenu(request.user)
    # Cargar el usuario activo
    usuario_parametro = Usuario.objects.get(user_id=request.user.id)

    if (request.method == "POST"):
        resultado = request.POST['resultado']
        insumo = request.POST['insumo']
        descripcion = request.POST['descripcion']
        maquina = request.POST['maquina']

        mezcla = Mezcla()
        mezcla.descripcion = descripcion
        mezcla.resultado = Resultado.objects.get(id=resultado)
        mezcla.maquina = Maquina.objects.get(id=maquina)
        mezcla.save()
        mezcla.insumos.add(Insumo.objects.get(id=insumo))
        mezcla.save()

        messages.success(request,
                         "Resultado guardado",
                         extra_tags="alert-success")

    resultado = Resultado.objects.get(id=id)
    insumos = Insumo.objects.all()
    maquinas = Maquina.objects.all()

    context = {
        'resultado': resultado,
        'insumos': insumos,
        'maquinas': maquinas,
        'lista_menu': lista_menu,
        'usuario_parametro': usuario_parametro,
    }

    return render(request, 'registrar_mezcla.html', context)
Beispiel #15
0
def crear_experimento(request, id):
    # Crear el menu del usuario
    lista_menu = UsuarioView.crearMenu(request.user)
    # Cargar el usuario activo
    usuario_parametro = Usuario.objects.get(user_id=request.user.id)
    if request.method == 'POST':
        form = ExperimentoForm(request.POST)
        # Validar formulario
        if form.is_valid():
            experimento = form.save()
            # Guardar la solicitud
            experimento.save()

            proyecto = Proyecto.objects.get(id=id)
            proyecto.experimentos.add(experimento)
            proyecto.save()

            # Cargar mensaje de exito
            messages.add_message(request, messages.SUCCESS,
                                 'El experimento se ha creado correctamente')
            # Retornar a la pagina crearSolicitud

            return HttpResponseRedirect(reverse('proyectos', args=(id)))
        else:
            # Visualizar errores presentados
            print(form.errors)
    else:
        form = ExperimentoForm()

    context = {
        'form': form,
        'lista_menu': lista_menu,
        'usuario_parametro': usuario_parametro,
    }

    return render(request, 'crearExperimento.html', context)