Adds a report template tag for dict access (#3905)

* Adds a report template tag for dict access

(cherry picked from commit 7df2f0f878e312a6f94a2c24304643cde91012de)

* Add unit test for new template tag
This commit is contained in:
Oliver 2022-11-07 21:24:25 +11:00 committed by GitHub
parent 0d04008998
commit 0c0e61432d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 0 deletions

View File

@ -18,6 +18,20 @@ register = template.Library()
logger = logging.getLogger('inventree')
@register.simple_tag()
def getkey(value: dict, arg):
"""Perform key lookup in the provided dict object.
This function is provided to get around template rendering limitations.
Ref: https://stackoverflow.com/questions/1906129/dict-keys-with-spaces-in-django-templates
Arguments:
value: A python dict object
arg: The 'key' to be found within the dict
"""
return value[arg]
@register.simple_tag()
def asset(filename):
"""Return fully-qualified path for an upload report asset file.

View File

@ -29,6 +29,19 @@ class ReportTagTest(TestCase):
"""Enable or disable debug mode for reports"""
InvenTreeSetting.set_setting('REPORT_DEBUG_MODE', value, change_user=None)
def test_getkey(self):
"""Tests for the 'getkey' template tag"""
data = {
'hello': 'world',
'foo': 'bar',
'with spaces': 'withoutspaces',
1: 2,
}
for k, v in data.items():
self.assertEqual(report_tags.getkey(data, k), v)
def test_asset(self):
"""Tests for asset files"""