{% extends "base.html" %} {% block content %} {% set default_cols = ['fav','drag','pos_nr','text','einheit','ep','aktion'] %} {% set col_labels = {'fav':'⭐','drag':'#','pos_nr':'Pos-Nr','text':'Kurztext / Langtext','einheit':'EH','ep':'EP (€)','aktion':'Aktion'} %} {% set col_sortable = {'fav':False,'drag':False,'pos_nr':True,'text':True,'einheit':True,'ep':True,'aktion':False} %}

Leistungsverzeichnis

← Dashboard
LV-Auswahl
{% if current_user.is_firmadmin() or current_user.darf_lv_verwalten %}
+ Neues LV
📥 TXT importieren
{% endif %}
🔍
+ Position hinzufügen
{{ selected_lv or 'Leistungsverzeichnis' }} {{ positionen|length }} Pos. |
{% if selected_lv %}
{% set col_order = view_config.column_order if view_config else default_cols %} {% set col_visible = view_config.column_visible if view_config else {} %} {% set col_widths = view_config.column_widths if view_config else {} %} {% for key in col_order %} {% if col_visible.get(key, True) %} {% endif %} {% endfor %} {% for pos in positionen %} {% for key in col_order %} {% if col_visible.get(key, True) %} {% endif %} {% endfor %} {% endfor %}
{% if col_sortable.get(key) %} {{ col_labels.get(key, key) }} {{ '▲' if sort_col == key and sort_dir == 'asc' else '▼' if sort_col == key else '⇅' }} {% else %} {{ col_labels.get(key, key) }} {% endif %}
{% if key == 'fav' %} {{ '⭐' if pos.favorite else '☆' }} {% elif key == 'drag' %} {% elif key == 'pos_nr' %} {{ pos.pos_nr }} {% elif key == 'text' %} {{ pos.kurztext or '' }} {% if pos.langtext %}
{{ pos.langtext[:200] }}
{% endif %} {% elif key == 'einheit' %} {{ pos.einheit }} {% elif key == 'ep' %} {% if preise_sichtbar %}{{ pos.einzelpreis|german_number }}{% else %}–{% endif %} {% elif key == 'aktion' %}
{% endif %}
{% if not positionen %}

Keine Positionen{{ ' für "' ~ search ~ '"' if search }}.

{% endif %}
{% else %}

Bitte links ein LV auswählen.

{% endif %}
{% endblock %} {% block scripts %} {% endblock %}