1234567891011121314151617181920212223242526272829303132333435363738 |
- # Copyright (c) 2021 Ultimaker B.V.
- # Cura is released under the terms of the LGPLv3 or higher.
- from UM.Settings.SQLQueryFactory import SQLQueryFactory, metadata_type
- from UM.Settings.DatabaseContainerMetadataController import DatabaseMetadataContainerController
- from UM.Settings.InstanceContainer import InstanceContainer
- class QualityDatabaseHandler(DatabaseMetadataContainerController):
- """The Database handler for Quality containers"""
- def __init__(self):
- super().__init__(SQLQueryFactory(table = "quality",
- fields = {
- "id": "text",
- "name": "text",
- "quality_type": "text",
- "material": "text",
- "variant": "text",
- "global_quality": "bool",
- "definition": "text",
- "version": "text",
- "setting_version": "text"
- }))
- self._container_type = InstanceContainer
- def groomMetadata(self, metadata: metadata_type) -> metadata_type:
- """
- Ensures that the metadata is in the order of the field keys and has the right size.
- if the metadata doesn't contains a key which is stored in the DB it will add it as
- an empty string. Key, value pairs that are not stored in the DB are dropped.
- If the `global_quality` isn't set it well default to 'False'
- :param metadata: The container metadata
- """
- if "global_quality" not in metadata:
- metadata["global_quality"] = "False"
- return super().groomMetadata(metadata)
|