Rijen aanvinken (shift-klik voor een reeks, of alles op de pagina) en in de balk onderin een actie kiezen (templates/_bulk.html, static/bulk.js). Contacten: status wijzigen, toewijzen, omzetten naar klant, exporteren, verwijderen; relaties: type wijzigen, exporteren, verwijderen; producten: actief/inactief, exporteren, verwijderen (in offertes gebruikt → inactief); offertes: status wijzigen (met de gevolgen voor het contact), exporteren, verwijderen. Exporteer CSV neemt de filters van de lijst mee en levert alle velden; bij contacten ook labels, toegewezen gebruiker, relatie, model, portaaltoegang en de extra formuliervelden als eigen kolom. Nieuwe leadstatus Vervallen (telt als afgesloten). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
41 lines
2.3 KiB
HTML
41 lines
2.3 KiB
HTML
{% extends 'base.html' %}
|
|
{% from '_bulk.html' import bulk_head, bulk_cell, bulk_bar with context %}
|
|
{% block title %}Offertes{% endblock %}
|
|
{% block content %}
|
|
<div class="head">
|
|
<div><div class="kicker">Verkoop</div><h1>Offertes</h1></div>
|
|
<div class="actions">
|
|
<a class="btn btn-outline-primary" href="{{ url_for('quotes_export', **request.args) }}" title="Alle velden van de offertes in deze lijst">Exporteer CSV</a>
|
|
<form method="post" action="{{ url_for('quote_new') }}" class="inline"><button class="btn btn-primary">Nieuwe offerte</button></form>
|
|
</div>
|
|
</div>
|
|
<div class="filters">
|
|
<a href="{{ url_for('quotes') }}" class="{{ 'on' if not status }}">Alle</a>
|
|
{% for k, l in QUOTE_STATUSES %}<a href="{{ url_for('quotes', status=k) }}" class="{{ 'on' if status == k }}">{{ l }}</a>{% endfor %}
|
|
</div>
|
|
<div class="card"><div class="card-body">
|
|
{% if rows %}
|
|
<div class="table-responsive"><table class="table table-hover table-stack">
|
|
<thead><tr>{{ bulk_head() }}<th>Nummer</th><th>Klant</th><th>Onderwerp</th><th>Datum</th><th>Status</th><th class="num">Totaal incl.</th></tr></thead>
|
|
<tbody>
|
|
{% for qt in rows %}
|
|
<tr class="link" onclick="location='{{ url_for('quote_edit', qid=qt.id) }}'">
|
|
{{ bulk_cell(qt.id, qt.number) }}
|
|
<td class="stack-title"><a href="{{ url_for('quote_edit', qid=qt.id) }}">{{ qt.number }}</a></td>
|
|
<td data-label="Klant">{{ qt.contact_name or '—' }}</td>
|
|
<td data-label="Onderwerp">{{ qt.title }}</td>
|
|
<td data-label="Datum">{{ qt.date|dt('%d-%m-%Y') }}</td>
|
|
<td data-label="Status"><span class="chip {{ qt.status }}">{{ QSTATUS.get(qt.status, qt.status) }}</span></td>
|
|
<td data-label="Totaal incl." class="num">{{ qt.total|euro }}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table></div>
|
|
{% else %}<p class="empty">Nog geen offertes.</p>{% endif %}
|
|
</div></div>
|
|
{% call bulk_bar(url_for('quotes_bulk'), [('status', 'Status wijzigen'), ('export', 'Exporteren als CSV'),
|
|
('delete', 'Verwijderen', '{n} offerte(s) verwijderen, met hun regels? Dit kan niet ongedaan worden gemaakt.')]) %}
|
|
<select class="form-select form-select-sm" name="status" data-show="status" aria-label="Nieuwe status">{% for k, l in QUOTE_STATUSES %}<option value="{{ k }}">{{ l }}</option>{% endfor %}</select>
|
|
{% endcall %}
|
|
{% endblock %}
|