Files
fleet-template.008/001.BACKEND/kalendar/models.py
2026-05-31 19:21:25 +02:00

61 lines
2.0 KiB
Python

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}"