Complete dashboard loose ends and reconcile blocked pilot work
All checks were successful
Application acceptance / application-tests (push) Successful in 1m26s
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Build and Publish Container Image / build-and-push (push) Successful in 34s

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a0e394-2a69-7df0-8980-22a0ebe55216
This commit is contained in:
tegwick 2026-09-27 18:34:48 +02:00
parent 387b7e9782
commit 35df9bb772
13 changed files with 325 additions and 55 deletions

View file

@ -200,23 +200,35 @@ def suche(request):
q = request.GET.get('q', '').strip()
if not q or len(q) < 2:
return HttpResponse('')
from django.db.models import Q
from vergabe_teilnahme.apps.aufgaben.models import Aufgabe
from vergabe_teilnahme.apps.ausschreibungen.models import Ausschreibung
from vergabe_teilnahme.apps.bibliothek.models import Nachweis, Referenz
from vergabe_teilnahme.apps.dokumente.models import Dokument
from vergabe_teilnahme.apps.marktbegleiter.models import Marktbegleiter
from vergabe_teilnahme.apps.partner.models import Subunternehmer
ausschreibungen = Ausschreibung.objects.filter(titel__icontains=q)[:5]
ausschreibungen = Ausschreibung.objects.filter(
Q(titel__icontains=q) | Q(ausschreiber__icontains=q)
)[:5]
aufgaben = Aufgabe.objects.filter(titel__icontains=q)[:5]
subunternehmer = Subunternehmer.objects.filter(name__icontains=q)[:5]
dokumente = Dokument.objects.filter(dateiname__icontains=q).select_related('ausschreibung')[:5]
nachweise = Nachweis.objects.filter(titel__icontains=q)[:5]
referenzen = Referenz.objects.filter(referenztitel__icontains=q)[:5]
marktbegleiter = Marktbegleiter.objects.filter(name__icontains=q)[:5]
has_results = any([ausschreibungen, dokumente, nachweise, referenzen, marktbegleiter])
has_results = any([
ausschreibungen, aufgaben, subunternehmer, dokumente, nachweise, referenzen, marktbegleiter,
])
if not has_results:
return render(request, 'partials/search_results.html', {'q': q, 'empty': True})
return render(request, 'partials/search_results.html', {
'q': q,
'aufgaben': aufgaben,
'subunternehmer': subunternehmer,
'ausschreibungen': ausschreibungen,
'dokumente': dokumente,
'nachweise': nachweise,