diff --git a/InvenTree/report/templatetags/report.py b/InvenTree/report/templatetags/report.py index 11e12f288a..810c695a36 100644 --- a/InvenTree/report/templatetags/report.py +++ b/InvenTree/report/templatetags/report.py @@ -184,3 +184,27 @@ def internal_link(link, text): return text return mark_safe(f'{text}') + + +@register.simple_tag() +def add(x, y, *args, **kwargs): + """Add two numbers together.""" + return x + y + + +@register.simple_tag() +def subtract(x, y): + """Subtract one number from another""" + return x - y + + +@register.simple_tag() +def multiply(x, y): + """Multiply two numbers together""" + return x * y + + +@register.simple_tag() +def divide(x, y): + """Divide one number by another""" + return x / y diff --git a/InvenTree/report/tests.py b/InvenTree/report/tests.py index 7b1b9759e1..a24f141c82 100644 --- a/InvenTree/report/tests.py +++ b/InvenTree/report/tests.py @@ -137,6 +137,14 @@ class ReportTagTest(TestCase): logo = report_tags.logo_image() self.assertIn('inventree.png', logo) + def test_maths_tags(self): + """Simple tests for mathematical operator tags""" + + self.assertEqual(report_tags.add(1, 2), 3) + self.assertEqual(report_tags.subtract(10, 4.2), 5.8) + self.assertEqual(report_tags.multiply(2.3, 4), 9.2) + self.assertEqual(report_tags.divide(100, 5), 20) + class BarcodeTagTest(TestCase): """Unit tests for the barcode template tags"""