50 lines
1.7 KiB
HTML
50 lines
1.7 KiB
HTML
{% extends "base.html" %}
|
|
{% block content %}
|
|
<div class="page-heading">
|
|
<div>
|
|
<h1>Aprobación técnica de contextos</h1>
|
|
<p>Producción ya explicó qué ocurrió. Esta cola valida si la respuesta puede convertirse en contexto canónico sin crear solapamientos.</p>
|
|
</div>
|
|
<div class="summary-badge">{{ proposals|length }} propuestas</div>
|
|
</div>
|
|
|
|
{% if message %}
|
|
<div class="alert success">{{ message }}</div>
|
|
{% endif %}
|
|
|
|
{% if not proposals %}
|
|
<div class="empty-state">
|
|
<h2>No hay propuestas pendientes</h2>
|
|
<p>Las respuestas de Producción que no necesitan contexto no aparecen aquí.</p>
|
|
</div>
|
|
{% endif %}
|
|
|
|
<div class="card-grid">
|
|
{% for proposal in proposals %}
|
|
<article class="decision-card">
|
|
<div class="card-head">
|
|
<div>
|
|
<span class="machine">{{ proposal.machine_id }}</span>
|
|
<span class="status">{{ proposal.proposal_status|label }}</span>
|
|
</div>
|
|
</div>
|
|
<h2>{{ proposal.proposed_source_type|label }}</h2>
|
|
<p><strong>Respuesta de Producción:</strong> {{ proposal.answer_code|label }}</p>
|
|
<dl class="facts">
|
|
<div><dt>Inicio</dt><dd>{{ proposal.first_seen_at|datetime_es }}</dd></div>
|
|
<div><dt>Fin</dt><dd>{{ proposal.ended_at|datetime_es }}</dd></div>
|
|
<div><dt>Propuesto por</dt><dd>{{ proposal.proposed_by_display_name }}</dd></div>
|
|
<div><dt>Caso</dt><dd>{{ proposal.case_id }}</dd></div>
|
|
</dl>
|
|
{% if proposal.last_action_notes %}
|
|
<div class="consultation-box">
|
|
<strong>Último intercambio</strong>
|
|
<p>{{ proposal.last_action_notes }}</p>
|
|
</div>
|
|
{% endif %}
|
|
<a class="primary button" href="/approvals/{{ proposal.proposal_id }}">Revisar propuesta</a>
|
|
</article>
|
|
{% endfor %}
|
|
</div>
|
|
{% endblock %}
|