diff --git a/src/backend/InvenTree/InvenTree/conversion.py b/src/backend/InvenTree/InvenTree/conversion.py index 8db0eb8330..3b6fda27b8 100644 --- a/src/backend/InvenTree/InvenTree/conversion.py +++ b/src/backend/InvenTree/InvenTree/conversion.py @@ -114,6 +114,9 @@ def reload_unit_registry(): reg.define('@alias degF = Fahrenheit') reg.define('@alias degK = Kelvin') + # Override R as ohm (pint defines R as an SI prefix by default) + reg.define('R = ohm') + # Define some "standard" additional units reg.define('piece = 1') reg.define('each = 1 = ea') diff --git a/src/backend/InvenTree/InvenTree/tests.py b/src/backend/InvenTree/InvenTree/tests.py index e0977075d5..38062926d5 100644 --- a/src/backend/InvenTree/InvenTree/tests.py +++ b/src/backend/InvenTree/InvenTree/tests.py @@ -293,6 +293,16 @@ class ConversionTest(TestCase): ) self.assertAlmostEqual(output, expected, 12) + # Test that 'R' is interpreted as ohms + # Ref: https://github.com/inventree/InvenTree/issues/12063 + r_tests = [('8R6', 8.6), ('10R', 10), ('4R7', 4.7), ('100R', 100)] + + for val, expected in r_tests: + output = InvenTree.conversion.convert_physical_value( + val, 'ohm', strip_units=True + ) + self.assertAlmostEqual(output, expected, 6) + def test_scientific_notation(self): """Test that scientific notation is handled correctly.""" tests = [