Expose part parameters to Part label templates

This commit is contained in:
Oliver 2021-07-21 22:05:52 +10:00
parent 20a30f317f
commit afde997cf9
3 changed files with 19 additions and 0 deletions

View File

@ -398,4 +398,5 @@ class PartLabel(LabelTemplate):
'revision': part.revision,
'qr_data': part.format_barcode(brief=True),
'qr_url': part.format_barcode(url=True, request=request),
'parameters': part.parameters_map(),
}

View File

@ -1904,6 +1904,23 @@ class Part(MPTTModel):
return self.parameters.order_by('template__name')
def parameters_map(self):
"""
Return a map (dict) of parameter values assocaited with this Part instance,
of the form:
{
"name_1": "value_1",
"name_2": "value_2",
}
"""
params = {}
for parameter in self.parameters.all():
params[parameter.template.name] = parameter.data
return params
@property
def has_variants(self):
""" Check if this Part object has variants underneath it. """

View File

@ -356,6 +356,7 @@ class TestReport(ReportTemplateBase):
'stock_item': stock_item,
'serial': stock_item.serial,
'part': stock_item.part,
'parameters': stock_item.part.parameters_map(),
'results': stock_item.testResultMap(include_installed=self.include_installed),
'result_list': stock_item.testResultList(include_installed=self.include_installed),
'installed_items': stock_item.get_installed_items(cascade=True),