diff --git a/InvenTree/report/models.py b/InvenTree/report/models.py index 7b7f01f7a1..b3725cadc0 100644 --- a/InvenTree/report/models.py +++ b/InvenTree/report/models.py @@ -193,6 +193,9 @@ class TestReport(ReportTemplateBase): items = StockItem.objects.filter(**filters) + # Ensure the provided StockItem object matches the filters + items = items.filter(pk=item.pk) + return items.exists() def get_context_data(self, request): diff --git a/InvenTree/stock/views.py b/InvenTree/stock/views.py index 18c05f100b..3a29b66ee3 100644 --- a/InvenTree/stock/views.py +++ b/InvenTree/stock/views.py @@ -510,7 +510,22 @@ class StockItemTestReportSelect(AjaxView): def get_form(self): stock_item = StockItem.objects.get(pk=self.kwargs['pk']) - return StockForms.TestReportFormatForm(stock_item) + form = StockForms.TestReportFormatForm(stock_item) + + return form + + def get_initial(self): + + initials = super().get_initial() + + form = self.get_form() + options = form.fields['template'].queryset + + # If only a single template is available, pre-select it + if options.count() == 1: + initials['template'] = options[0] + + return initials def post(self, request, *args, **kwargs):