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