from django.db import models from vergabe_teilnahme.apps.core.models import FlexibleModel class Los(FlexibleModel): ausschreibung = models.ForeignKey( 'ausschreibungen.Ausschreibung', on_delete=models.CASCADE, related_name='lose' ) losnummer = models.CharField(max_length=50) lostitel = models.CharField(max_length=300) beschreibung = models.TextField(blank=True) abgrenzung = models.TextField(blank=True) zustaendiger = models.ForeignKey( 'accounts.Mitarbeiter', on_delete=models.SET_NULL, null=True, blank=True ) teilnahme = models.BooleanField(null=True) status = models.CharField(max_length=50, blank=True) class Meta: ordering = ['losnummer'] verbose_name = 'Los' verbose_name_plural = 'Lose' def __str__(self): return f'Los {self.losnummer}: {self.lostitel}' class Anforderung(FlexibleModel): VERBINDLICHKEIT_CHOICES = [ ('muss', 'Muss-Kriterium'), ('soll', 'Soll-Kriterium'), ('kann', 'Kann-Kriterium'), ('info', 'Information'), ] KATEGORIE_CHOICES = [ ('fachlich', 'Fachlich'), ('rechtlich', 'Rechtlich'), ('kaufmaennisch', 'Kaufmännisch'), ('technisch', 'Technisch'), ('zertifizierung', 'Zertifizierung'), ('referenz', 'Referenz'), ('sonstiges', 'Sonstiges'), ] ERFUELLUNG_CHOICES = [ ('offen', 'Offen'), ('erfuellt', 'Erfüllt'), ('teilweise', 'Teilweise erfüllt'), ('nicht_erfuellt', 'Nicht erfüllt'), ('entfaellt', 'Entfällt'), ] ausschreibung = models.ForeignKey( 'ausschreibungen.Ausschreibung', on_delete=models.CASCADE, related_name='anforderungen' ) los = models.ForeignKey( Los, on_delete=models.SET_NULL, null=True, blank=True, related_name='anforderungen' ) titel = models.CharField(max_length=400) beschreibung = models.TextField(blank=True) quelle_im_dokument = models.CharField(max_length=300, blank=True) kategorie = models.CharField(max_length=30, choices=KATEGORIE_CHOICES, blank=True) verbindlichkeit = models.CharField(max_length=10, choices=VERBINDLICHKEIT_CHOICES, default='muss') ausschlusskriterium = models.BooleanField(default=False) bewertungskriterium = models.BooleanField(default=False) zustaendiger = models.ForeignKey( 'accounts.Mitarbeiter', on_delete=models.SET_NULL, null=True, blank=True ) erfuellungsstatus = models.CharField( max_length=20, choices=ERFUELLUNG_CHOICES, default='offen' ) nachweis_erforderlich = models.BooleanField(default=False) dokumente = models.ManyToManyField('dokumente.Dokument', blank=True) nachweise = models.ManyToManyField('bibliothek.Nachweis', blank=True) class Meta: verbose_name = 'Anforderung' verbose_name_plural = 'Anforderungen' def __str__(self): return self.titel