Contexto:
Tengo una aplicación web en Django. Esta aplicación es un panel de control donde los usuarios pueden verificar y validar el reconocimiento realizado por una IA de cada parte de una factura (precios, impuestos...).
El usuario puede revisar manualmente este reconocimiento y en consecuencia validar si todo está correcto.
Situación:
Cuando un usuario hace clic en el botón de verificación, lo redirigirá a otra vista. Esta nueva vista es una plantilla de Django con un iframe. Esta vista de Django ejecuta una función que actualiza el estado del elemento a '31.Verificando usuario' en la base de datos.
urls.py:
path('verification/<int:id>/', views.VerificationPage, name="fci-verification" )
vistas.py:
def VerificationPage (request, id): invoice= Invoice.objects.get(id=id) url= invoice.verification_url invoice_id = invoice.id status = '31.Verificando usuario' message = _('Invoice in web verification') try: change_invoice_status(invoice_id, status, message) except Exception as e: capture_exception(e) return render(request, "fci_verification.html", {'verification_url': url,'invoice_id': id})
Cuando este usuario hace clic en "verificado" en iframe, capturo este evento con window.addEventListener("message", receiveMessage, false);
y actualizar a un nuevo estado.
Problema:
Si el usuario cierra la pestaña o el navegador, el estado del artículo permanece como "31.Verificando usuario" y otro usuario no puede revisar esta factura.
¿Cómo puedo capturar un evento de "cerrar ventanas o pestañas" y cambiar el estado al estado anterior?
REANUDAR: