From 0ec880290b3858b26014fcb71f5c71d7b85face5 Mon Sep 17 00:00:00 2001
From: Oliver Walters <oliver.henry.walters@gmail.com>
Date: Fri, 22 May 2020 21:29:58 +1000
Subject: [PATCH] Functionality for retrieving test templates associated with a
 given part

---
 InvenTree/part/models.py   | 15 +++++++++++++++
 InvenTree/report/models.py |  4 ++--
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/InvenTree/part/models.py b/InvenTree/part/models.py
index 4ca77739ac..58eeaef82a 100644
--- a/InvenTree/part/models.py
+++ b/InvenTree/part/models.py
@@ -41,6 +41,7 @@ from InvenTree.helpers import decimal2string, normalize
 
 from InvenTree.status_codes import BuildStatus, PurchaseOrderStatus
 
+from report import models as ReportModels
 from build import models as BuildModels
 from order import models as OrderModels
 from company.models import SupplierPart
@@ -358,6 +359,20 @@ class Part(MPTTModel):
         self.category = category
         self.save()
 
+    def get_test_report_templates(self):
+        """
+        Return all the TestReport template objects which map to this Part.
+        """
+
+        templates = []
+
+        for report in ReportModels.TestReport.objects.all():
+            if report.matches_part(self):
+                templates.append(report)
+
+        return templates
+
+
     def get_absolute_url(self):
         """ Return the web URL for viewing this part """
         return reverse('part-detail', kwargs={'pk': self.id})
diff --git a/InvenTree/report/models.py b/InvenTree/report/models.py
index ffd77a09b1..1c363059e7 100644
--- a/InvenTree/report/models.py
+++ b/InvenTree/report/models.py
@@ -13,7 +13,7 @@ from django.core.exceptions import ValidationError
 
 from django.utils.translation import gettext_lazy as _
 
-from part.models import Part
+from part import models as PartModels
 
 from django_tex.shortcuts import render_to_pdf
 from django_weasyprint import WeasyTemplateResponseMixin
@@ -186,7 +186,7 @@ class PartFilterMixin(models.Model):
 
         filters = self.get_part_filters()
 
-        parts = Part.objects.filter(**filters)
+        parts = PartModels.Part.objects.filter(**filters)
 
         parts = parts.filter(pk=part.pk)