fix: scope inferred work-order tasks to the current work order
Prevent service-record inference from pulling tasks from other work orders that share the same vehicle. This keeps task-service-context, service reports, and related work-order widgets isolated to the selected nalog. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -26,7 +26,11 @@ from modules.fleet.models import (
|
||||
)
|
||||
from modules.task_management.models import Task, TaskWorkHoursTable
|
||||
from modules.fleet.tasks import build_monthly_archive_cached_task
|
||||
from modules.fleet.views import _build_monthly_servicer_report_rows, _calculate_daily_quantity_from_hours
|
||||
from modules.fleet.views import (
|
||||
_build_monthly_servicer_report_rows,
|
||||
_calculate_daily_quantity_from_hours,
|
||||
_work_order_related_tasks_queryset,
|
||||
)
|
||||
|
||||
|
||||
def create_test_image(filename='test.jpg', size=(40, 40), color='red'):
|
||||
@@ -236,6 +240,33 @@ class WorkOrderImagesEndpointTests(TestCase):
|
||||
self.assertIn('additional_costs_table', payload)
|
||||
self.assertEqual(payload['additional_costs_table']['total_for_payout'], '5.00')
|
||||
|
||||
def test_work_order_related_tasks_queryset_excludes_other_work_orders_for_same_vehicle(self):
|
||||
other_work_order = WorkOrder.objects.create(
|
||||
vehicle=self.vehicle,
|
||||
creator=self.user,
|
||||
display_code='MT160726',
|
||||
purpose='kontrola',
|
||||
)
|
||||
other_task = Task.objects.create(
|
||||
title='Drugi nalog isti stroj',
|
||||
assigned_to=self.user,
|
||||
vehicle=self.vehicle,
|
||||
work_order=other_work_order,
|
||||
scheduled_date=date(2033, 12, 25),
|
||||
)
|
||||
VehicleServiceRecord.objects.create(
|
||||
vehicle=self.vehicle,
|
||||
task=other_task,
|
||||
performed_by=self.user,
|
||||
description='Ne smije se pojaviti u prvom nalogu.',
|
||||
service_title='Krivi nalog',
|
||||
)
|
||||
|
||||
resolved_ids = list(_work_order_related_tasks_queryset(self.work_order).values_list('id', flat=True))
|
||||
|
||||
self.assertIn(self.task.pk, resolved_ids)
|
||||
self.assertNotIn(other_task.pk, resolved_ids)
|
||||
|
||||
def test_invoice_upload_immediately_appears_in_additional_costs_table(self):
|
||||
create_response = self.client.post(
|
||||
reverse('work-order-invoice-list'),
|
||||
|
||||
Reference in New Issue
Block a user