feat: integritet zatvaranja taska i putnog naloga
Dodaje status 'spreman_za_zavrsetak' i backend provjeru koja blokira zatvaranje taska kada je povezani putni nalog otvoren, uz 409 odgovor i opcionalni auto-close flow.\n\nPri zatvaranju putnog naloga taskovi u statusu 'servis' automatski prelaze u 'spreman_za_zavrsetak'. Frontend modal sada podržava potvrdu i retry s auto_close_work_order=true.\n\nUključeni su i ciljani testovi za novi behavior, te ažuriran prikaz statusa u dashboardu.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -3,6 +3,7 @@ from django.test import TestCase
|
||||
from django.contrib.auth import get_user_model
|
||||
from modules.fleet.services import VehicleService
|
||||
from modules.fleet.models import Vehicle, WorkOrder, VehicleServiceRecord
|
||||
from modules.task_management.models import Task
|
||||
|
||||
|
||||
class FleetServiceTests(TestCase):
|
||||
@@ -49,4 +50,26 @@ class FleetServiceTests(TestCase):
|
||||
|
||||
# Nalog sa završnom kilometražom
|
||||
wo.end_mileage = 1100
|
||||
assert wo.distance == 100
|
||||
assert wo.distance == 100
|
||||
|
||||
def test_closing_work_order_moves_task_to_ready_for_completion(self):
|
||||
work_order = WorkOrder.objects.create(
|
||||
vehicle=self.vehicle,
|
||||
creator=self.user,
|
||||
purpose="kontrola",
|
||||
status="open",
|
||||
start_mileage=5000,
|
||||
end_mileage=5200,
|
||||
)
|
||||
task = Task.objects.create(
|
||||
title="Servis",
|
||||
description="",
|
||||
status="servis",
|
||||
assigned_to=self.user,
|
||||
vehicle=self.vehicle,
|
||||
work_order=work_order,
|
||||
)
|
||||
|
||||
VehicleService.update_work_order(work_order, {"status": "closed"})
|
||||
task.refresh_from_db()
|
||||
self.assertEqual(task.status, "spreman_za_zavrsetak")
|
||||
Reference in New Issue
Block a user