generated from coulomb/repo-seed
89 lines
3.2 KiB
Python
89 lines
3.2 KiB
Python
from django.db import models
|
|
|
|
from vergabe_teilnahme.apps.core.models import FlexibleModel
|
|
|
|
|
|
class Dienstleistertyp(FlexibleModel):
|
|
name = models.CharField(max_length=200)
|
|
beschreibung = models.TextField(blank=True)
|
|
typische_leistungen = models.TextField(blank=True)
|
|
typische_nachweise = models.TextField(blank=True)
|
|
relevante_standards = models.TextField(blank=True)
|
|
typische_preisbestandteile = models.TextField(blank=True)
|
|
bemerkungen = models.TextField(blank=True)
|
|
|
|
class Meta:
|
|
verbose_name = 'Dienstleistertyp'
|
|
verbose_name_plural = 'Dienstleistertypen'
|
|
ordering = ['name']
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
|
|
class Subunternehmer(FlexibleModel):
|
|
PRAEFERENZ_CHOICES = [
|
|
('bevorzugt', 'Bevorzugt'),
|
|
('zugelassen', 'Zugelassen'),
|
|
('gesperrt', 'Gesperrt'),
|
|
]
|
|
|
|
name = models.CharField(max_length=300)
|
|
kurzname = models.CharField(max_length=100, blank=True)
|
|
dienstleistertyp = models.ForeignKey(
|
|
Dienstleistertyp, on_delete=models.SET_NULL,
|
|
null=True, blank=True, related_name='subunternehmer'
|
|
)
|
|
praeferenz = models.CharField(max_length=20, choices=PRAEFERENZ_CHOICES, default='zugelassen')
|
|
strasse = models.CharField(max_length=200, blank=True)
|
|
plz = models.CharField(max_length=10, blank=True)
|
|
ort = models.CharField(max_length=100, blank=True)
|
|
land = models.CharField(max_length=100, default='Deutschland')
|
|
telefon = models.CharField(max_length=50, blank=True)
|
|
mobilnummer = models.CharField(max_length=50, blank=True)
|
|
email = models.EmailField(blank=True)
|
|
website = models.URLField(blank=True)
|
|
ansprechpartner = models.CharField(max_length=200, blank=True)
|
|
ansprechpartner_email = models.EmailField(blank=True)
|
|
ansprechpartner_telefon = models.CharField(max_length=50, blank=True)
|
|
leistungsprofil = models.TextField(blank=True)
|
|
bewertung = models.TextField(blank=True)
|
|
bisherige_ausschreibungen = models.ManyToManyField(
|
|
'ausschreibungen.Ausschreibung',
|
|
blank=True,
|
|
through='SubunternehmerZuordnung',
|
|
related_name='subunternehmer',
|
|
)
|
|
|
|
class Meta:
|
|
verbose_name = 'Subunternehmer'
|
|
verbose_name_plural = 'Subunternehmer'
|
|
ordering = ['name']
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
|
|
class SubunternehmerZuordnung(models.Model):
|
|
subunternehmer = models.ForeignKey(
|
|
Subunternehmer, on_delete=models.CASCADE, related_name='zuordnungen'
|
|
)
|
|
ausschreibung = models.ForeignKey(
|
|
'ausschreibungen.Ausschreibung', on_delete=models.CASCADE
|
|
)
|
|
los = models.ForeignKey(
|
|
'lose.Los', on_delete=models.SET_NULL, null=True, blank=True
|
|
)
|
|
konkrete_leistung = models.CharField(max_length=300, blank=True)
|
|
zusage_vorhanden = models.BooleanField(default=False)
|
|
nachweis_eingegangen = models.BooleanField(default=False)
|
|
preis_vorhanden = models.BooleanField(default=False)
|
|
kommentar = models.TextField(blank=True)
|
|
|
|
class Meta:
|
|
verbose_name = 'Subunternehmer-Zuordnung'
|
|
verbose_name_plural = 'Subunternehmer-Zuordnungen'
|
|
|
|
def __str__(self):
|
|
return f'{self.subunternehmer} → {self.ausschreibung}'
|