diff --git a/backend/modules/fleet/tests/test_work_order_images_endpoint.py b/backend/modules/fleet/tests/test_work_order_images_endpoint.py index 8f311db..37e00e5 100644 --- a/backend/modules/fleet/tests/test_work_order_images_endpoint.py +++ b/backend/modules/fleet/tests/test_work_order_images_endpoint.py @@ -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'), diff --git a/backend/modules/fleet/views.py b/backend/modules/fleet/views.py index b8c6f06..aa782d6 100644 --- a/backend/modules/fleet/views.py +++ b/backend/modules/fleet/views.py @@ -155,6 +155,7 @@ def _work_order_related_tasks_queryset(work_order): vehicle_id=work_order.vehicle_id, task_id__isnull=False, task__is_active=True, + task__work_order=work_order, ).values_list('task_id', flat=True) ) task_ids = list({*direct_task_ids, *inferred_task_ids})