Files

142 lines
6.5 KiB
HTML
Executable File

{% extends "admin/base.html" %}
{% block title %}CSV Export/Import{% endblock %}
{% block content %}
<div class="d-flex justify-content-between align-items-start mb-4">
<div>
<h1><i class="bi bi-filetype-csv me-2"></i>CSV Export/Import</h1>
<p class="text-muted">Konfigurieren Sie, welche Felder exportiert und importiert werden</p>
</div>
<div class="btn-group">
<a href="{{ url_for('admin.customers_export') }}" class="btn btn-success">
<i class="bi bi-download me-1"></i>Export testen
</a>
</div>
</div>
<form method="POST" action="{{ url_for('admin.settings_csv') }}">
<!-- Export Fields -->
<div class="card mb-4">
<div class="card-header">
<i class="bi bi-list-check me-2"></i>
Export-Felder
</div>
<div class="card-body">
<p class="text-muted small mb-3">
Waehlen Sie aus, welche Felder in der CSV-Datei enthalten sein sollen.
Spaltenreihenfolge entspricht der Reihenfolge in dieser Liste.
</p>
<div class="table-responsive">
<table class="table table-dark table-hover mb-0">
<thead>
<tr>
<th class="text-center" style="width: 80px;">Aktiv</th>
<th>Feld</th>
<th style="width: 250px;">Spaltenname (CSV)</th>
</tr>
</thead>
<tbody>
{% for field in config.export_fields %}
<tr>
<td class="text-center">
<div class="form-check form-switch d-inline-block">
<input class="form-check-input" type="checkbox"
name="enabled_{{ field.key }}"
id="enabled_{{ field.key }}"
{% if field.enabled %}checked{% endif %}
{% if field.key == 'email' %}disabled title="E-Mail ist Pflichtfeld"{% endif %}>
</div>
{% if field.key == 'email' %}
<input type="hidden" name="enabled_{{ field.key }}" value="on">
{% endif %}
</td>
<td>
<code class="text-info">{{ field.key }}</code>
{% if field.key == 'email' %}
<span class="badge bg-danger ms-2">Pflicht</span>
{% endif %}
{% if field.key in ['created_at', 'updated_at'] %}
<span class="badge bg-secondary ms-2">System</span>
{% endif %}
</td>
<td>
<input type="text" class="form-control form-control-sm"
name="label_{{ field.key }}"
value="{{ field.label }}"
placeholder="{{ field.label }}">
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
<!-- Advanced Options -->
<div class="card mb-4">
<div class="card-header">
<i class="bi bi-gear me-2"></i>
Erweiterte Optionen
</div>
<div class="card-body">
<div class="row">
<div class="col-md-6">
<div class="mb-3">
<label for="delimiter" class="form-label">Trennzeichen</label>
<select class="form-select" name="delimiter" id="delimiter">
<option value=";" {% if config.delimiter == ';' %}selected{% endif %}>Semikolon (;) - Excel-kompatibel</option>
<option value="," {% if config.delimiter == ',' %}selected{% endif %}>Komma (,) - Standard CSV</option>
<option value="\t" {% if config.delimiter == '\t' %}selected{% endif %}>Tabulator - TSV</option>
</select>
<div class="form-text">Semikolon wird fuer deutsche Excel-Versionen empfohlen.</div>
</div>
</div>
<div class="col-md-6">
<div class="form-check form-switch mt-4">
<input class="form-check-input" type="checkbox"
name="include_custom_fields"
id="include_custom_fields"
{% if config.include_custom_fields %}checked{% endif %}>
<label class="form-check-label" for="include_custom_fields">
<strong>Zusatzfelder exportieren</strong>
</label>
<p class="text-muted small mb-0 mt-1">
Fuegt eine JSON-Spalte mit MEC/WordPress Zusatzfeldern hinzu.
</p>
</div>
</div>
</div>
</div>
</div>
<!-- Import Info -->
<div class="card mb-4 border-info">
<div class="card-header bg-info bg-opacity-10">
<i class="bi bi-info-circle me-2"></i>
Import-Hinweise
</div>
<div class="card-body">
<ul class="mb-0">
<li>Der Import erkennt Spalten automatisch anhand der <strong>Spaltennamen</strong> (erste Zeile)</li>
<li><strong>E-Mail</strong> ist das Schluesselfeld - bestehende Kunden werden aktualisiert</li>
<li>Werte fuer Ja/Nein-Felder: <code>Ja</code>, <code>1</code>, <code>true</code> = aktiviert</li>
<li>Leere Zellen werden beim Import uebersprungen (bestehende Werte bleiben)</li>
<li>Die <strong>ID</strong>-Spalte wird beim Import ignoriert</li>
</ul>
</div>
</div>
<!-- Submit -->
<div class="d-flex gap-2">
<button type="submit" class="btn btn-danger">
<i class="bi bi-check-lg me-1"></i>
Speichern
</button>
<a href="{{ url_for('admin.customers') }}" class="btn btn-outline-secondary">
Zurueck zur Kundenliste
</a>
</div>
</form>
{% endblock %}