{% extends "basis.html" %}{% block weich %} data-weich{% endblock %}{% block inhalt %}{% from "schalter.html" import schalter, wahl %}{% from "unterseiten.html" import konto_zeilen, zurueck with context %} {# Weiche Navigation (23.10.2026): Konto wechselt weich wie Library & Co. – alle Skripte mit data-seite, kein Inline-Skript (CSP). konto.js leitet alte Anker weiter (#speicher nach /quellen, #analysen nach /analysen) und steht deshalb vorn. #} {% set ks = t.kontoseite.sicherheit %}{% set tb = t.kontoseite.benachrichtigung %} {# Handy schlank, Phase 3c (07.11.2026): am Handy zuerst die Liste der Bereiche (Name + Zustand), Tipp öffnet den Bereich als Unterseite (static/unterseiten.js schaltet über Anker und Verlauf: data-ut nennt die Unterseite eines Abschnitts, data-ut-teil Teile des Formulars „Erscheinungsbild“, die nur unter „Mein Mixer“ stehen). Breit und ohne Skript bleibt die lange Seite wie bisher. #}
{{ fehler }}
{% endif %} {# Konto und Sicherheit (23.10.2026): große Karte ganz oben, nur im Ory-Modus. Drei Blöcke: Schutz-Stufe · Anmeldewege · Geräte und Adresse, darunter drei Knöpfe. Kratos nicht erreichbar: ehrlicher Hinweis statt Fehler. #} {% if sicherheit %}{{ ks.nicht_erreichbar }}
{% else %}{{ ks.streng_an if sicherheit.schutz_an else ks.streng_aus }}
{{ ks.namen_mit_faktor }}
{% endif %}{% if sicherheit.sitzungen is none %}{{ ks.sitzungen_unbekannt }}{% elif sicherheit.sitzungen == 1 %}{{ ks.sitzungen_eins }}{% else %}{{ ks.sitzungen.replace("{n}", sicherheit.sitzungen | zahl(sprache)) }}{% endif %}
{{ ks.adresse }}
{{ sicherheit.adresse }} · {{ ks.adresse_aendern }}
{{ t.earlybird.mitglied }}: {{ t.earlybird.name }}
{{ t.earlybird.mitglied_unter }}
{{ t.kontingent_satz.replace("{g}", k.genutzt | zahl(sprache)).replace("{n}", k.grenze | zahl(sprache)).replace("{f}", k.frei | zahl(sprache)) }}
{{ t.kontingent_regel }}
{% if k.frei <= 0 %}{% if store_app %}{{ t.earlybird.kontingent_leer }}{% elif earlybird and nutzer.get('kontingent_grenze') is not none %}{{ t.earlybird.kontingent_voll_web | replace("{n}", k.grenze | zahl(sprache)) }}{% else %}{{ t.kontingent_leer }}{% endif %}
{% endif %} {# Der Hinweis verspricht die höhere Vorgabe – mit eigener Grenze des Kontos (kontingent_grenze) stimmte er nicht. Einen Knopf „Mail neu senden“ gibt es nicht: Dafür hat Timbre keinen Weg, der Text nennt den Support. #} {% if not nutzer.email_bestaetigt and nutzer.get('kontingent_grenze') is none %}{{ t.email_hinweis.replace("{b}", vorgabe_bestaetigt | zahl(sprache)).replace("{u}", vorgabe_unbestaetigt | zahl(sprache)) }}
{% endif %}{{ bp.zeile.replace("{b}", beta.belegt | gb(sprache)).replace("{k}", beta.kontingent | gb(sprache)).replace("{f}", beta.frei | gb(sprache)) }}
{{ bp.voll }}
{% elif beta.prozent >= 80 %}{{ bp.fast_voll.replace("{f}", beta.frei | gb(sprache)) }}
{% endif %}{{ t.quellen.konto_hinweis }} {{ t.quellen.konto_link }}.
{# Rekordbox-Import (23.10.2026): Löschen steht unter Quellen (Karte „Rekordbox“, geht ohne JavaScript) #}{{ t.rekordbox.konto.hinweis }} {{ t.rekordbox.konto.link }}
{# Musikordner (bis 25.10.2026 hier): steht seit 25.10. unter Quellen → Rekordbox – dort, wo die Rekordbox-XML eingelesen wird und Timbre den Ordner aus der XML vorschlagen kann. Kein Verweis hier: das Konto trägt nur, was auf dem Server liegt, der Ordner ist eine Angabe über das Gerät. Alte Links /konto#musikordner-h leitet static/konto.js nach /quellen#rk-ordner. #} {# Handy (3c): Überschrift der Unterseite „Konto und Sicherheit“ über Datenexport und Löschen – breit verborgen (wie bisher ohne) #}