feat: serve isolated companies below a fixed product path
All checks were successful
All checks were successful
Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a07ff8-19d0-7820-b4d0-1353833cb7fc
This commit is contained in:
parent
09e2239bc6
commit
9345a1bb1a
28 changed files with 350 additions and 117 deletions
|
|
@ -1,12 +1,12 @@
|
|||
from datetime import date, timedelta
|
||||
|
||||
from django.http import HttpResponse
|
||||
from django.shortcuts import get_object_or_404, redirect, render
|
||||
from django.urls import reverse
|
||||
from django.utils import timezone
|
||||
|
||||
from vergabe_teilnahme.apps.ausschreibungen.models import Ausschreibung
|
||||
|
||||
from django.http import HttpResponse
|
||||
|
||||
from .issue_backends import gitea_configured as _gitea_configured
|
||||
from .models import Aufgabe, AufgabenVerknuepfung, Bieterfrage, ExternalIssue
|
||||
|
||||
|
|
@ -65,8 +65,8 @@ def aufgaben_liste(request, ausschreibung_id=None):
|
|||
|
||||
if ausschreibung:
|
||||
breadcrumbs = [
|
||||
{'label': 'Ausschreibungen', 'url': '/ausschreibungen/'},
|
||||
{'label': ausschreibung.titel, 'url': f'/ausschreibungen/{ausschreibung_id}/'},
|
||||
{'label': 'Ausschreibungen', 'url': reverse('ausschreibungen:liste')},
|
||||
{'label': ausschreibung.titel, 'url': reverse('ausschreibungen:detail', kwargs={'pk': ausschreibung_id})},
|
||||
{'label': 'Aufgaben', 'url': None},
|
||||
]
|
||||
else:
|
||||
|
|
@ -119,9 +119,9 @@ def aufgabe_neu(request, ausschreibung_id):
|
|||
'ausschreibung': ausschreibung,
|
||||
'titel': 'Aufgabe anlegen',
|
||||
'breadcrumbs': [
|
||||
{'label': 'Ausschreibungen', 'url': '/ausschreibungen/'},
|
||||
{'label': ausschreibung.titel, 'url': f'/ausschreibungen/{ausschreibung_id}/'},
|
||||
{'label': 'Aufgaben', 'url': f'/ausschreibungen/{ausschreibung_id}/aufgaben/'},
|
||||
{'label': 'Ausschreibungen', 'url': reverse('ausschreibungen:liste')},
|
||||
{'label': ausschreibung.titel, 'url': reverse('ausschreibungen:detail', kwargs={'pk': ausschreibung_id})},
|
||||
{'label': 'Aufgaben', 'url': reverse('ausschreibungen:aufgaben:liste', kwargs={'ausschreibung_id': ausschreibung_id})},
|
||||
{'label': 'Neu', 'url': None},
|
||||
],
|
||||
})
|
||||
|
|
@ -142,9 +142,9 @@ def aufgabe_bearbeiten(request, ausschreibung_id, pk):
|
|||
'aufgabe': aufgabe,
|
||||
'titel': 'Aufgabe bearbeiten',
|
||||
'breadcrumbs': [
|
||||
{'label': 'Ausschreibungen', 'url': '/ausschreibungen/'},
|
||||
{'label': ausschreibung.titel, 'url': f'/ausschreibungen/{ausschreibung_id}/'},
|
||||
{'label': 'Aufgaben', 'url': f'/ausschreibungen/{ausschreibung_id}/aufgaben/'},
|
||||
{'label': 'Ausschreibungen', 'url': reverse('ausschreibungen:liste')},
|
||||
{'label': ausschreibung.titel, 'url': reverse('ausschreibungen:detail', kwargs={'pk': ausschreibung_id})},
|
||||
{'label': 'Aufgaben', 'url': reverse('ausschreibungen:aufgaben:liste', kwargs={'ausschreibung_id': ausschreibung_id})},
|
||||
{'label': aufgabe.titel[:50], 'url': None},
|
||||
],
|
||||
})
|
||||
|
|
@ -161,9 +161,9 @@ def aufgabe_loeschen(request, ausschreibung_id, pk):
|
|||
'aufgabe': aufgabe,
|
||||
'ausschreibung': ausschreibung,
|
||||
'breadcrumbs': [
|
||||
{'label': 'Ausschreibungen', 'url': '/ausschreibungen/'},
|
||||
{'label': ausschreibung.titel, 'url': f'/ausschreibungen/{ausschreibung_id}/'},
|
||||
{'label': 'Aufgaben', 'url': f'/ausschreibungen/{ausschreibung_id}/aufgaben/'},
|
||||
{'label': 'Ausschreibungen', 'url': reverse('ausschreibungen:liste')},
|
||||
{'label': ausschreibung.titel, 'url': reverse('ausschreibungen:detail', kwargs={'pk': ausschreibung_id})},
|
||||
{'label': 'Aufgaben', 'url': reverse('ausschreibungen:aufgaben:liste', kwargs={'ausschreibung_id': ausschreibung_id})},
|
||||
{'label': 'Löschen', 'url': None},
|
||||
],
|
||||
})
|
||||
|
|
@ -176,9 +176,9 @@ def aufgabe_detail(request, ausschreibung_id, pk):
|
|||
'aufgabe': aufgabe,
|
||||
'ausschreibung': ausschreibung,
|
||||
'breadcrumbs': [
|
||||
{'label': 'Ausschreibungen', 'url': '/ausschreibungen/'},
|
||||
{'label': ausschreibung.titel, 'url': f'/ausschreibungen/{ausschreibung_id}/'},
|
||||
{'label': 'Aufgaben', 'url': f'/ausschreibungen/{ausschreibung_id}/aufgaben/'},
|
||||
{'label': 'Ausschreibungen', 'url': reverse('ausschreibungen:liste')},
|
||||
{'label': ausschreibung.titel, 'url': reverse('ausschreibungen:detail', kwargs={'pk': ausschreibung_id})},
|
||||
{'label': 'Aufgaben', 'url': reverse('ausschreibungen:aufgaben:liste', kwargs={'ausschreibung_id': ausschreibung_id})},
|
||||
{'label': aufgabe.titel[:50], 'url': None},
|
||||
],
|
||||
})
|
||||
|
|
@ -237,17 +237,18 @@ def bieterfragen_liste(request, ausschreibung_id):
|
|||
'mitarbeiter': Mitarbeiter.objects.all(),
|
||||
'current_status': status_filter or '',
|
||||
'breadcrumbs': [
|
||||
{'label': 'Ausschreibungen', 'url': '/ausschreibungen/'},
|
||||
{'label': ausschreibung.titel, 'url': f'/ausschreibungen/{ausschreibung_id}/'},
|
||||
{'label': 'Ausschreibungen', 'url': reverse('ausschreibungen:liste')},
|
||||
{'label': ausschreibung.titel, 'url': reverse('ausschreibungen:detail', kwargs={'pk': ausschreibung_id})},
|
||||
{'label': 'Bieterfragen', 'url': None},
|
||||
],
|
||||
})
|
||||
|
||||
|
||||
def bieterfrage_neu(request, ausschreibung_id):
|
||||
from .forms import BieterfragenForm
|
||||
from vergabe_teilnahme.apps.lose.models import Anforderung
|
||||
|
||||
from .forms import BieterfragenForm
|
||||
|
||||
ausschreibung = get_object_or_404(Ausschreibung, pk=ausschreibung_id)
|
||||
|
||||
initial = {}
|
||||
|
|
@ -275,9 +276,9 @@ def bieterfrage_neu(request, ausschreibung_id):
|
|||
'ausschreibung': ausschreibung,
|
||||
'titel': 'Bieterfrage anlegen',
|
||||
'breadcrumbs': [
|
||||
{'label': 'Ausschreibungen', 'url': '/ausschreibungen/'},
|
||||
{'label': ausschreibung.titel, 'url': f'/ausschreibungen/{ausschreibung_id}/'},
|
||||
{'label': 'Bieterfragen', 'url': f'/ausschreibungen/{ausschreibung_id}/bieterfragen/'},
|
||||
{'label': 'Ausschreibungen', 'url': reverse('ausschreibungen:liste')},
|
||||
{'label': ausschreibung.titel, 'url': reverse('ausschreibungen:detail', kwargs={'pk': ausschreibung_id})},
|
||||
{'label': 'Bieterfragen', 'url': reverse('ausschreibungen:bieterfragen:liste', kwargs={'ausschreibung_id': ausschreibung_id})},
|
||||
{'label': 'Neu', 'url': None},
|
||||
],
|
||||
})
|
||||
|
|
@ -290,9 +291,9 @@ def bieterfrage_detail(request, ausschreibung_id, pk):
|
|||
'bieterfrage': bieterfrage,
|
||||
'ausschreibung': ausschreibung,
|
||||
'breadcrumbs': [
|
||||
{'label': 'Ausschreibungen', 'url': '/ausschreibungen/'},
|
||||
{'label': ausschreibung.titel, 'url': f'/ausschreibungen/{ausschreibung_id}/'},
|
||||
{'label': 'Bieterfragen', 'url': f'/ausschreibungen/{ausschreibung_id}/bieterfragen/'},
|
||||
{'label': 'Ausschreibungen', 'url': reverse('ausschreibungen:liste')},
|
||||
{'label': ausschreibung.titel, 'url': reverse('ausschreibungen:detail', kwargs={'pk': ausschreibung_id})},
|
||||
{'label': 'Bieterfragen', 'url': reverse('ausschreibungen:bieterfragen:liste', kwargs={'ausschreibung_id': ausschreibung_id})},
|
||||
{'label': str(bieterfrage)[:50], 'url': None},
|
||||
],
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue