mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-10-31 21:25:42 +00:00 
			
		
		
		
	Wrap custom filter validation in try/except blocks
This commit is contained in:
		| @@ -3,6 +3,7 @@ from __future__ import unicode_literals | ||||
|  | ||||
| from django.utils.translation import ugettext as _ | ||||
| from django.conf.urls import url, include | ||||
| from django.core.exceptions import FieldError | ||||
| from django.http import HttpResponse | ||||
|  | ||||
| from django_filters.rest_framework import DjangoFilterBackend | ||||
| @@ -114,12 +115,19 @@ class StockItemTestReportList(ReportListView, StockItemReportMixin): | ||||
|                 matches = True | ||||
|  | ||||
|                 # Filter string defined for the report object | ||||
|                 filters = InvenTree.helpers.validateFilterString(report.filters) | ||||
|                 try: | ||||
|                     filters = InvenTree.helpers.validateFilterString(report.filters) | ||||
|                 except: | ||||
|                     continue | ||||
|  | ||||
|                 for item in items: | ||||
|                     item_query = StockItem.objects.filter(pk=item.pk) | ||||
|  | ||||
|                     if not item_query.filter(**filters).exists(): | ||||
|                     try: | ||||
|                         if not item_query.filter(**filters).exists(): | ||||
|                             matches = False | ||||
|                             break | ||||
|                     except FieldError: | ||||
|                         matches = False | ||||
|                         break | ||||
|  | ||||
|   | ||||
| @@ -13,6 +13,7 @@ import datetime | ||||
|  | ||||
| from django.db import models | ||||
| from django.conf import settings | ||||
| from django.core.exceptions import ValidationError, FieldError | ||||
|  | ||||
| from django.template.loader import render_to_string | ||||
|  | ||||
| @@ -262,9 +263,11 @@ class TestReport(ReportTemplateBase): | ||||
|         Test if this report template matches a given StockItem objects | ||||
|         """ | ||||
|  | ||||
|         filters = validateFilterString(self.filters) | ||||
|  | ||||
|         items = stock.models.StockItem.objects.filter(**filters) | ||||
|         try: | ||||
|             filters = validateFilterString(self.filters) | ||||
|             items = stock.models.StockItem.objects.filter(**filters) | ||||
|         except (ValidationError, FieldError): | ||||
|             return False | ||||
|  | ||||
|         # Ensure the provided StockItem object matches the filters | ||||
|         items = items.filter(pk=item.pk) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user