prije gemini provjere
This commit is contained in:
61
001.BACKEND/kalendar/models.py
Normal file
61
001.BACKEND/kalendar/models.py
Normal file
@@ -0,0 +1,61 @@
|
||||
from django.db import models
|
||||
from django.conf import settings
|
||||
|
||||
class Dogadaj(models.Model):
|
||||
TIP_DOGADAJA = [
|
||||
('servis', 'Radni Nalog / Servis'),
|
||||
('isporuka', 'Isporuka Stroja'),
|
||||
('sastanak', 'Sastanak s kupcem'),
|
||||
('biljeska', 'Interna bilješka'),
|
||||
]
|
||||
|
||||
naslov = models.CharField(max_length=200)
|
||||
opis = models.TextField(blank=True)
|
||||
tip = models.CharField(max_length=20, choices=TIP_DOGADAJA, default='biljeska')
|
||||
|
||||
pocetak = models.DateTimeField()
|
||||
kraj = models.DateTimeField()
|
||||
|
||||
# Automatsko praćenje izmjena samog događaja u kalendaru
|
||||
datum_kreiranja = models.DateTimeField(auto_now_add=True)
|
||||
datum_azuriranja = models.DateTimeField(auto_now=True)
|
||||
|
||||
# Veze
|
||||
klijent = models.ForeignKey('kupci.Kupac', on_delete=models.SET_NULL, null=True, blank=True)
|
||||
vozilo = models.ForeignKey('fleet.Vozilo', on_delete=models.SET_NULL, null=True, blank=True)
|
||||
radni_nalog = models.OneToOneField(
|
||||
'operations.RadniNalog',
|
||||
on_delete=models.CASCADE,
|
||||
null=True,
|
||||
blank=True,
|
||||
related_name='kalendar_termin'
|
||||
)
|
||||
|
||||
# Serviser koji je dodijeljen direktno u kalendaru (za sastanke/bilješke)
|
||||
# Ako postoji radni_nalog, koristit ćemo izvrsitelja s naloga
|
||||
serviser_u_kalendaru = models.ForeignKey(
|
||||
settings.AUTH_USER_MODEL,
|
||||
on_delete=models.SET_NULL,
|
||||
null=True,
|
||||
blank=True,
|
||||
related_name='dodatni_zadaci'
|
||||
)
|
||||
|
||||
class Meta:
|
||||
verbose_name = "Kalendar"
|
||||
verbose_name_plural = "Kalendar"
|
||||
ordering = ['pocetak']
|
||||
|
||||
@property
|
||||
def izvrsitelj(self):
|
||||
"""
|
||||
Pametna metoda koja vraća servisera:
|
||||
1. Ako je termin vezan za Radni Nalog, uzmi njegovog izvršitelja.
|
||||
2. Ako nije, uzmi servisera upisanog u kalendar.
|
||||
"""
|
||||
if self.radni_nalog:
|
||||
return self.radni_nalog.izvrsitelj
|
||||
return self.serviser_u_kalendaru
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.naslov} - {self.izvrsitelj}"
|
||||
Reference in New Issue
Block a user