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()