Resuelto conflicto en X

This commit is contained in:
jlimolina 2025-06-09 11:48:00 +02:00
parent 758da0ad4c
commit e9264bc6ce
9 changed files with 348 additions and 96 deletions

View file

@ -1,33 +1,37 @@
{% extends "base.html" %}
{% block title %}Restaurar Feeds RSS{% endblock %}
{% block content %}
<h1>Restaurar feeds desde backup CSV</h1>
<div class="card" style="max-width:500px;margin:auto;">
<form method="post" enctype="multipart/form-data" autocomplete="off">
<label for="file"><strong>Selecciona el archivo CSV exportado de feeds:</strong></label>
<input type="file" name="file" id="file" accept=".csv" required style="margin:10px 0;">
<button class="btn" type="submit">Restaurar</button>
</form>
{% if msg %}
<div style="margin:15px 0;">
{% if "Error" in msg or "Error en fila" in msg %}
<div style="color:#c00; font-weight:bold;">{{ msg|safe }}</div>
{% else %}
<div style="color:#198754; font-weight:bold;">{{ msg|safe }}</div>
{% endif %}
</div>
{% endif %}
<p style="font-size:0.92em;color:#64748b;">
El archivo debe contener las columnas:<br>
<code>id, nombre, [descripcion,] url, categoria_id, categoria, pais_id, pais, idioma, activo, fallos</code><br>
<small>
Las columnas <b>descripcion</b> e <b>idioma</b> son opcionales.<br>
<b>activo</b> puede ser: <code>True</code>, <code>False</code>, <code>1</code> o <code>0</code>.<br>
<b>idioma</b> debe ser el código ISO 639-1 de dos letras (<i>ej:</i> <code>es</code>, <code>en</code>, <code>fr</code>...).<br>
Si falta alguna columna, la restauración puede fallar o ignorar ese campo.
</small>
</p>
</div>
<a href="/feeds" class="top-link">← Volver a feeds</a>
{% endblock %}
{% block title %}Restaurar Feeds desde Backup{% endblock %}
{% block content %}
<header>
<h1>Restaurar Feeds</h1>
<p class="subtitle">Importa todos tus feeds desde un único archivo de backup en formato CSV.</p>
<a href="{{ url_for('dashboard') }}" class="top-link" style="margin-top:15px;">← Volver al Dashboard</a>
</header>
<div class="form-section">
<h2>Subir Archivo de Backup</h2>
<form method="post" enctype="multipart/form-data" action="{{ url_for('restore_feeds') }}" autocomplete="off">
<label for="file"><strong>Selecciona el archivo <code>feeds_backup.csv</code>:</strong></label>
<input type="file" name="file" id="file" accept=".csv" required style="margin-top:10px;">
<button class="btn" type="submit" style="margin-top:20px; width: 100%;">Iniciar Restauración</button>
</form>
</div>
<div class="card">
<h2>Formato del Archivo CSV</h2>
<p style="color: var(--text-color-light);">
El archivo debe ser de tipo CSV y contener las siguientes columnas para que la importación funcione correctamente:
</p>
<code>id,nombre,descripcion,url,categoria_id,categoria,pais_id,pais,idioma,activo,fallos</code>
<br><br>
<small>
<ul>
<li>La columna `id` debe ser única para cada feed.</li>
<li>La columna `url` también debe ser única.</li>
<li><b>activo</b> puede ser: <code>True</code>, <code>False</code>, <code>1</code> o <code>0</code>.</li>
<li><b>idioma</b> debe ser el código ISO 639-1 de dos letras (ej: <code>es</code>, <code>en</code>).</li>
</ul>
</small>
</div>
{% endblock %}