Files
NightSpire/home/templates/partials/security_history.html
T
Inna 230d401c75 Fase 3 (islas): historiales de seguridad y transacciones en React/TSX
Tabla genérica reutilizable HistoryTable (columnas por data-columns, filas por
json_script) + entry history_table:
- security_history: intentos de conexión (username/status/ip/fecha). Se elimina la
  caja "actividad" duplicada. Las vistas pasan login_attempts_data serializable.
- trans_history: historial de transacciones (StripeLog) con transactions_data.

Datos embebidos con json_script (sin endpoint extra). Verificado: check OK, ambas
plantillas renderizan la isla con datos.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-12 21:52:20 +00:00

29 lines
1.6 KiB
HTML

<div class="main-page">
<div class="middle-content">
<div class="body-content">
<div class="title-content"><h1>Historial de seguridad</h1></div>
<div class="box-content">
<div class="title-box-content"><h2>Información</h2><a class="back-to-account" href="my-account">Regresar a mi cuenta</a><a class="back-to-account-responsive" href="my-account">Regresar</a></div>
<div class="body-box-content justified">
<br>
<p>Aquí verás la actividad de la cuenta y los últimos 20 intentos de conexión de tu cuenta a la página web.</p>
<p>Si observas alguna actividad sospechosa puedes cambiar la contraseña o contactar con el equipo de {{ NOMBRE_SERVIDOR }}.</p>
</div>
</div>
<div class="box-content">
<div class="title-box-content"><h2>Historial de conexiones</h2></div>
<div class="body-box-content centered">
{% load django_vite %}
<!-- Isla React (Vite): tabla de intentos de conexión (últimos 20). -->
<div id="history-table-app"
data-columns='[{"key":"username","label":"Usuario"},{"key":"status","label":"Estado"},{"key":"ip_address","label":"IP"},{"key":"timestamp","label":"Fecha"}]'
data-empty-text="No hay actividad"></div>
{{ login_attempts_data|json_script:"history-table-data" }}
{% vite_asset 'src/entries/history_table.tsx' %}
</div>
</div>
</div>
</div>
</div>