# backend/modules/task_management/models.py from django.db import models from django.conf import settings from django.core.exceptions import ValidationError from django.utils.translation import gettext_lazy as _ from core.base_models import BaseModel # Uvozimo naš Base class Task(BaseModel): """ Modularni Task model nasljeđuje sva polja iz BaseModel. """ STATUS_CHOICES = [ ('aktivan', 'Aktivan'), ('servis', 'U tijeku'), ('neaktivan', 'Otkazano'), ] title = models.CharField(max_length=255) description = models.TextField(blank=True) status = models.CharField( max_length=20, choices=STATUS_CHOICES, default='aktivan' ) assigned_to = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.SET_NULL, null=True, related_name='tasks' ) vehicle = models.ForeignKey( 'fleet.Vehicle', on_delete=models.SET_NULL, null=True, blank=True, related_name='tasks', verbose_name=_("Dizalica"), ) work_order = models.ForeignKey( 'fleet.WorkOrder', on_delete=models.SET_NULL, null=True, blank=True, related_name='work_order_tasks', verbose_name=_("Putni nalog"), ) class Meta: ordering = ['-created_at'] def __str__(self): return f"{self.title} ({self.status})" def clean(self): super().clean() if self.status == 'neaktivan' and not self.work_order_id: raise ValidationError({ 'work_order': "Putni nalog je obavezan prije zatvaranja zadatka." })