6be04e4e37
- revive/unstuck (acciones SOAP gratuitas): reutilizan CharacterPurchaseForm; se hace el precio opcional (botón sin "por X €" cuando no hay precio). El componente ya maneja la respuesta sin session_id mostrando el mensaje. - gold: variante GoldForm (personaje + cantidad de oro -> Stripe). La vista pasa ahora character_names y gold_options (serializables) por json_script. - transfer: variante TransferForm (personaje + cuenta destino + token -> Stripe). La vista pasa character_names por json_script. Verificado: check OK, plantillas renderizan las islas, las 4 páginas redirigen a login sin sesión. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
35 lines
1.5 KiB
HTML
35 lines
1.5 KiB
HTML
<div class="main-page">
|
|
<div class="middle-content">
|
|
<div class="body-content">
|
|
<div class="title-content">
|
|
<h1>Revivir personaje</h1>
|
|
</div>
|
|
<div class="box-content">
|
|
<div class="title-box-content">
|
|
<h2>Información</h2>
|
|
<a class="back-to-account" href="{% url 'my-account' %}">Regresar a mi cuenta</a>
|
|
<a class="back-to-account-responsive" href="{% url 'my-account' %}">Regresar</a>
|
|
</div>
|
|
<div class="body-box-content justified">
|
|
<br>
|
|
{% if characters %}
|
|
<p>Escoge el personaje que quieres revivir:</p>
|
|
<br>
|
|
{% load django_vite %}
|
|
<!-- Isla React (Vite): acción de personaje (SOAP, sin pago). -->
|
|
<div id="character-purchase-app"
|
|
data-csrf="{{ csrf_token }}"
|
|
data-url="{% url 'revive-character' %}"
|
|
data-label="Revivir"
|
|
data-button-class="revive-button"></div>
|
|
{{ characters|json_script:"character-purchase-data" }}
|
|
{% vite_asset 'src/entries/character_purchase.tsx' %}
|
|
{% else %}
|
|
<p>No tienes personajes para revivir.</p>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|