mirror of
https://github.com/inventree/InvenTree.git
synced 2025-07-02 03:30:54 +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