Guard against materials not having a definition

The empty container has no definition.

Contributes to issue CURA-4243.
This commit is contained in:
Ghostkeeper 2017-11-28 15:33:21 +01:00
parent eb3981b4e0
commit 56d6664c8c
No known key found for this signature in database
GPG key ID: 5252B696FB5E7C7A

View file

@ -202,16 +202,20 @@ class QualityManager:
# \return \type{List[Dict[str, Any]]} A list of the metadata of basic
# materials, or an empty list if none could be found.
def _getBasicMaterialMetadatas(self, material_container: Dict[str, Any]) -> List[Dict[str, Any]]:
base_material = material_container.get("material")
if "definition" not in material_container:
definition_id = "fdmprinter"
else:
material_container_definition = ContainerRegistry.getInstance().findDefinitionContainersMetadata(id = material_container["definition"])
if material_container_definition:
if not material_container_definition:
definition_id = "fdmprinter"
else:
material_container_definition = material_container_definition[0]
if "has_machine_quality" in material_container_definition:
if "has_machine_quality" not in material_container_definition:
definition_id = "fdmprinter"
else:
definition_id = material_container_definition.get("quality_definition", material_container_definition["id"])
else:
definition_id = "fdmprinter"
else:
definition_id = "fdmprinter"
base_material = material_container.get("material")
if base_material:
# There is a basic material specified
criteria = {