Files
2026-05-20 21:24:00 +02:00

52 lines
1.8 KiB
Python

from django.utils import timezone
from datetime import timedelta
from .models import Dogadaj
def kreiraj_kalendarski_unos(radni_nalog):
"""
Kreira termin u kalendaru na temelju novog radnog naloga.
"""
pocetak = timezone.now()
kraj = pocetak + timedelta(hours=2)
# DOHVAĆANJE VOZILA: Budući da vozilo više nije na Radnom nalogu,
# moramo ga izvući iz povezanog Putnog naloga (ako postoji).
vozilo_obj = None
vozilo_str = "Nije definirano"
if radni_nalog.putni_nalog and radni_nalog.putni_nalog.vozilo:
vozilo_obj = radni_nalog.putni_nalog.vozilo
vozilo_str = str(vozilo_obj)
# Kreiramo Dogadaj
dogadaj = Dogadaj.objects.create(
naslov=f"RN: {radni_nalog.broj_naloga} | {radni_nalog.klijent.naziv}",
opis=f"Vozilo: {vozilo_str}\nOpis kvara: {radni_nalog.opis_kvara}",
tip='servis',
pocetak=pocetak,
kraj=kraj,
klijent=radni_nalog.klijent,
# Ovdje spremamo instancu vozila u polje modela Dogadaj
vozilo=vozilo_obj,
radni_nalog=radni_nalog,
serviser_u_kalendaru=radni_nalog.izvrsitelj
)
return dogadaj
def azuriraj_kalendarski_unos(radni_nalog):
"""
Sinkronizira podatke u kalendaru koristeći metodu modela.
"""
try:
# Pokušaj pronaći postojeći događaj preko related_name 'kalendar_termin'
dogadaj = radni_nalog.kalendar_termin
dogadaj.sync_with_radni_nalog()
except Exception:
# Ako ne postoji (npr. nalog je stariji od uvođenja kalendara), kreiraj ga
from .services import kreiraj_kalendarski_unos
kreiraj_kalendarski_unos(radni_nalog)
def obrisi_kalendarski_unos(radni_nalog):
if hasattr(radni_nalog, 'kalendar_termin'):
radni_nalog.kalendar_termin.delete()