{# Renders the full Wohnungen body; used both by the full page and by HTMX poll. #}
Alarm
{{ alert_label }}
Filter
{{ filter_summary }}
Automatisch bewerben
Final absenden
{% if not apply_allowed %}
Bewerbungs-Dienst nicht erreichbar {{ apply_block_reason }}
{% endif %} {% if circuit_open %}
Automatik pausiert {{ apply_failures }} Fehler in Folge
{% endif %}

Passende Wohnungen auf inberlinwohnen.de

{{ flats|length }} gefunden {% if next_scrape_utc %} · nächste Aktualisierung {% endif %} {% if is_admin and (enrichment_counts.pending or enrichment_counts.failed) %} ·
{% endif %}
{% for item in flats %} {% set f = item.row %}
{{ f.address or f.link }} {% if item.last and item.last.finished_at is none %} läuft… {% elif item.last and item.last.success == 1 %}beworben {% elif item.last and item.last.success == 0 %}fehlgeschlagen {% endif %} {% if f.enrichment_status == 'pending' %}analysiert… {% elif f.enrichment_status == 'failed' %}? {% endif %}
{% if f.enrichment_status == 'pending' %} Infos werden abgerufen… · {% elif f.enrichment_status == 'failed' %} {% set err = (item.enrichment or {}).get('_error') or 'unbekannt' %} Fehler beim Abrufen der Infos {% if is_admin %}
{% endif %} · {% else %} {# LLM first, scraper as fallback. The scraper data from inberlinwohnen.de is reliable; we only replace it when the LLM has a concrete value. #} {% set e = item.enrichment or {} %} {% set rooms = e.rooms if e.rooms is not none else f.rooms %} {% set size = e.size_sqm if e.size_sqm is not none else f.size %} {% set rent = e.rent_total or e.rent_cold or f.total_rent %} {% if e.wbs_required is sameas true %} {% set wbs_label = 'WBS: ' ~ (e.wbs_type or 'erforderlich') %} {% elif e.wbs_required is sameas false %} {% set wbs_label = 'ohne WBS' %} {% elif f.wbs == 'erforderlich' %} {% set wbs_label = 'WBS: erforderlich' %} {% elif f.wbs == 'nicht erforderlich' %} {% set wbs_label = 'ohne WBS' %} {% else %} {% set wbs_label = '' %} {% endif %} {% set parts = [] %} {% if rooms %}{% set _ = parts.append('%g Z'|format(rooms)) %}{% endif %} {% if size %}{% set _ = parts.append('%.0f m²'|format(size)) %}{% endif %} {% if rent %}{% set _ = parts.append('%.0f €'|format(rent)) %}{% endif %} {% if wbs_label %}{% set _ = parts.append(wbs_label) %}{% endif %} {{ parts|join(' · ') }}{% if parts %} · {% endif %} {% endif %}
{% if apply_allowed and not (item.last and item.last.success == 1) %} {% set is_running = item.last and item.last.finished_at is none %}
{% endif %}
{% else %}
{% if not has_filters %} Bitte zuerst Filter einstellen, damit passende Wohnungen angezeigt werden. {% else %} Aktuell keine Wohnung, die alle Filter erfüllt. {% endif %}
{% endfor %}
{% if rejected_flats %}
Abgelehnte Wohnungen {{ rejected_flats|length }}
{% for f in rejected_flats %}
{{ f.address or f.link }}
{% if f.rooms %}{{ "%.1f"|format(f.rooms) }} Z{% endif %} {% if f.size %} · {{ "%.0f"|format(f.size) }} m²{% endif %} {% if f.total_rent %} · {{ "%.0f"|format(f.total_rent) }} €{% endif %} · abgelehnt
{% endfor %}
{% endif %}