feat: dozvoli dijeljenje putnog naloga izmedju razlicitih dizalica
Problem: serviser nije mogao odabrati putni nalog kreiran za drugu dizalicu jer je frontend filtrirao naloge po aktivnom crane kontekstu, a backend serializer je bacao ValidationError ako WO.vehicle != task.vehicle. Promjene: - TaskSerializer: uklonjena cross-crane validacija - WO moze pripadati drugoj dizalici od one na tasku (cross-crane sharing) - FleetDashboardShell: serviceRecordWorkOrders i selectedTaskWorkOrders vise ne filtriraju po vehicle ID-u, prikazuju sve otvorene naloge - TaskServiceRecordsModal: gumb i modal za izmjenu podataka dizalice (radni sati, kilometraza) premjesten iz WorkOrderDetailModal - WorkOrderDetailModal: uklonjen gumb 'Izmijeni podatke dizalice' - Dodana 3 nova backend testa za cross-crane WO dodjelu (15/15 prolaze) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -146,13 +146,12 @@ class TaskSerializer(serializers.ModelSerializer):
|
||||
'title': "Naslov zadatka je obavezan ako se task ne kreira iz templatea."
|
||||
})
|
||||
|
||||
# If task has no crane yet, auto-derive it from the work order's crane (backward compat).
|
||||
# Cross-crane assignment is intentionally allowed: a servicer can share one work order
|
||||
# across tasks for multiple cranes on the same day.
|
||||
if work_order and not vehicle:
|
||||
vehicle = work_order.vehicle
|
||||
attrs['vehicle'] = vehicle
|
||||
if work_order and vehicle and work_order.vehicle_id != vehicle.id:
|
||||
raise serializers.ValidationError({
|
||||
'work_order': "Putni nalog mora pripadati istoj dizalici kao task."
|
||||
})
|
||||
|
||||
if status_value in {'neaktivan', 'zavrsen'} and not work_order:
|
||||
raise serializers.ValidationError({
|
||||
|
||||
Reference in New Issue
Block a user