{% extends "base.html" %} {% set lang = get_lang(request) %} {% block title %}{{ t('crystal.title', lang) }}{% endblock %} {% block content %} {# --- Signals Section --- #}

{{ t('crystal.signals', lang) }}

{{ t('crystal.signals_desc', lang) }}

{% if data.signals.should_crystallize %}
{{ t('crystal.recommended', lang) }} — {{ data.signals.triggered_conditions|length }} {{ t('crystal.conditions_met', lang) }}
{% endif %}
{{ t('crystal.condition', lang) }} {{ t('crystal.current', lang) }} {{ t('crystal.threshold', lang) }} {{ t('crystal.status', lang) }}
{{ t('crystal.pattern_entries', lang) }} {{ data.signals.pattern_count }} {{ data.signals.pattern_threshold }} {% if data.signals.pattern_count >= data.signals.pattern_threshold %}{{ t('crystal.ready', lang) }}{% else %}{{ t('crystal.accumulating', lang) }}{% endif %}
{{ t('crystal.error_entries', lang) }} {{ data.signals.error_count }} {{ data.signals.error_threshold }} {% if data.signals.error_count >= data.signals.error_threshold %}{{ t('crystal.ready', lang) }}{% else %}{{ t('crystal.accumulating', lang) }}{% endif %}
{{ t('crystal.log_days', lang) }} {{ data.signals.log_days }} {{ data.signals.log_days_threshold }} {% if data.signals.log_days >= data.signals.log_days_threshold %}{{ t('crystal.ready', lang) }}{% else %}{{ t('crystal.accumulating', lang) }}{% endif %}
{{ t('crystal.days_since_cp', lang) }} {{ data.signals.days_since_checkpoint }} {{ data.signals.checkpoint_interval_days }} {% if data.signals.days_since_checkpoint >= data.signals.checkpoint_interval_days %}{{ t('crystal.ready', lang) }}{% else %}{{ t('crystal.accumulating', lang) }}{% endif %}
{# --- Checkpoint Section --- #}

{{ t('crystal.checkpoint', lang) }}

{{ t('crystal.checkpoint_desc', lang) }}

{{ t('crystal.last_checkpoint', lang) }}
{{ data.checkpoint.last if data.checkpoint.last else t('crystal.never', lang) }}
{{ t('crystal.total_checkpoints', lang) }}
{{ data.checkpoint.count }}
{# --- Error Patterns Section --- #}

{{ t('crystal.error_patterns', lang) }}

{{ t('crystal.error_patterns_desc', lang) }}

{% if data.error_patterns %} {% for ep in data.error_patterns %} {% endfor %}
ID {{ t('crystal.ep_title', lang) }} {{ t('crystal.ep_date', lang) }}
{{ ep.id }} {{ ep.title }} {{ ep.date }}
{% else %}

{{ t('crystal.no_patterns', lang) }}

{% endif %}
{# --- Decay Settings Section --- #}

{{ t('decay.title', lang) }}

{{ t('decay.arousal_desc', lang) }}

{{ t('decay.recall_desc', lang) }}

{{ t('decay.recall_window_desc', lang) }}

{# --- Principles Section --- #}

{{ t('crystal.principles', lang) }}

{{ t('crystal.principles_desc', lang) }}

{% if data.principles %}
{% for p in data.principles %}

{{ p.title }}

{{ p.body_html|safe }}
{% endfor %}
{% else %}

{{ t('crystal.no_principles', lang) }}

{% endif %}
{% endblock %}