Loading trapper/trapper-project/trapper/apps/media_classification/serializers.py +5 −29 Original line number Diff line number Diff line Loading @@ -231,7 +231,6 @@ class ClassificationSerializer(BasePKSerializer): "is_setup", "static_attrs", "dynamic_attrs", "dynamic_attrs_with_confidence", "status", "status_ai", "classified", Loading @@ -248,7 +247,6 @@ class ClassificationSerializer(BasePKSerializer): resource = ResourceNestedSerializer() collection = serializers.ReadOnlyField(source="collection_id") dynamic_attrs = serializers.SerializerMethodField() dynamic_attrs_with_confidence = serializers.SerializerMethodField() classified = serializers.SerializerMethodField() classified_ai = serializers.SerializerMethodField() classification_project = serializers.SerializerMethodField() Loading @@ -259,32 +257,6 @@ class ClassificationSerializer(BasePKSerializer): bboxes = serializers.SerializerMethodField() def get_dynamic_attrs(self, item): """Custom method for retrieving dynamic attributes connected to given classification""" if not self.active_standard: if item.classificator: self.active_standard = item.classificator.active_standard_attrs( "DYNAMIC" ) else: self.active_standard = ( ClassificatorSettings.STANDARD_ATTRS_REQUIRED_DYNAMIC ) dynamic_attrs = item.dynamic_attrs.all() return_list = [] for row in dynamic_attrs: attr_confidence = getattr(row, "attr_confidence", None) or {} row_attrs = {} for attr in self.active_standard: value = str(getattr(row, attr)) if attr in attr_confidence: value = f"{value} ({attr_confidence[attr]:.2f})" row_attrs[attr] = value row_attrs.update(row.attrs) return_list.append(row_attrs) return return_list def get_dynamic_attrs_with_confidence(self, item): if not self.active_standard: if item.classificator: self.active_standard = item.classificator.active_standard_attrs( Loading @@ -305,7 +277,11 @@ class ClassificationSerializer(BasePKSerializer): if attr in attr_confidence: value["confidence"] = attr_confidence[attr] * 100 row_attrs[attr] = value row_attrs.update(row.attrs) # convert custom attrs to dict with value only custom_attrs = {k: {"value": str(v)} for k, v in row.attrs.items()} row_attrs.update(custom_attrs) return_list.append(row_attrs) return return_list Loading trapper/trapper-project/trapper/apps/media_classification/templates/media_classification/classifications/grid.html +1 −1 Original line number Diff line number Diff line Loading @@ -334,7 +334,7 @@ <td data-title="'Attributes'"> <!-- ng-show="showTags" --> <div class="tags-list"> <div ng-repeat="dynamic_attr in record.dynamic_attrs_with_confidence" style="display: flex;flex-wrap: wrap;gap: 2px;"> <div ng-repeat="dynamic_attr in record.dynamic_attrs" style="display: flex;flex-wrap: wrap;gap: 2px;"> <div ng-repeat="(label, tag) in dynamic_attr" style="display: inline;"> <span class="label label-success" title="{[{ tag.value }]}" style="white-space: normal; text-align: left; overflow: auto; margin: 0;" Loading trapper/trapper-project/trapper/apps/storage/metadata.py +2 −2 Original line number Diff line number Diff line Loading @@ -341,11 +341,11 @@ class ResourceMetadataExtractor: make = metadata.get("Make") model = metadata.get("Model") if make: make = make.strip().lower() make = str(make).strip().lower() if not model: model = "(unknown)" else: model = model.strip().lower() model = str(model).strip().lower() # Remove redundant make from model if present if model.startswith(make): camera_model = model Loading Loading
trapper/trapper-project/trapper/apps/media_classification/serializers.py +5 −29 Original line number Diff line number Diff line Loading @@ -231,7 +231,6 @@ class ClassificationSerializer(BasePKSerializer): "is_setup", "static_attrs", "dynamic_attrs", "dynamic_attrs_with_confidence", "status", "status_ai", "classified", Loading @@ -248,7 +247,6 @@ class ClassificationSerializer(BasePKSerializer): resource = ResourceNestedSerializer() collection = serializers.ReadOnlyField(source="collection_id") dynamic_attrs = serializers.SerializerMethodField() dynamic_attrs_with_confidence = serializers.SerializerMethodField() classified = serializers.SerializerMethodField() classified_ai = serializers.SerializerMethodField() classification_project = serializers.SerializerMethodField() Loading @@ -259,32 +257,6 @@ class ClassificationSerializer(BasePKSerializer): bboxes = serializers.SerializerMethodField() def get_dynamic_attrs(self, item): """Custom method for retrieving dynamic attributes connected to given classification""" if not self.active_standard: if item.classificator: self.active_standard = item.classificator.active_standard_attrs( "DYNAMIC" ) else: self.active_standard = ( ClassificatorSettings.STANDARD_ATTRS_REQUIRED_DYNAMIC ) dynamic_attrs = item.dynamic_attrs.all() return_list = [] for row in dynamic_attrs: attr_confidence = getattr(row, "attr_confidence", None) or {} row_attrs = {} for attr in self.active_standard: value = str(getattr(row, attr)) if attr in attr_confidence: value = f"{value} ({attr_confidence[attr]:.2f})" row_attrs[attr] = value row_attrs.update(row.attrs) return_list.append(row_attrs) return return_list def get_dynamic_attrs_with_confidence(self, item): if not self.active_standard: if item.classificator: self.active_standard = item.classificator.active_standard_attrs( Loading @@ -305,7 +277,11 @@ class ClassificationSerializer(BasePKSerializer): if attr in attr_confidence: value["confidence"] = attr_confidence[attr] * 100 row_attrs[attr] = value row_attrs.update(row.attrs) # convert custom attrs to dict with value only custom_attrs = {k: {"value": str(v)} for k, v in row.attrs.items()} row_attrs.update(custom_attrs) return_list.append(row_attrs) return return_list Loading
trapper/trapper-project/trapper/apps/media_classification/templates/media_classification/classifications/grid.html +1 −1 Original line number Diff line number Diff line Loading @@ -334,7 +334,7 @@ <td data-title="'Attributes'"> <!-- ng-show="showTags" --> <div class="tags-list"> <div ng-repeat="dynamic_attr in record.dynamic_attrs_with_confidence" style="display: flex;flex-wrap: wrap;gap: 2px;"> <div ng-repeat="dynamic_attr in record.dynamic_attrs" style="display: flex;flex-wrap: wrap;gap: 2px;"> <div ng-repeat="(label, tag) in dynamic_attr" style="display: inline;"> <span class="label label-success" title="{[{ tag.value }]}" style="white-space: normal; text-align: left; overflow: auto; margin: 0;" Loading
trapper/trapper-project/trapper/apps/storage/metadata.py +2 −2 Original line number Diff line number Diff line Loading @@ -341,11 +341,11 @@ class ResourceMetadataExtractor: make = metadata.get("Make") model = metadata.get("Model") if make: make = make.strip().lower() make = str(make).strip().lower() if not model: model = "(unknown)" else: model = model.strip().lower() model = str(model).strip().lower() # Remove redundant make from model if present if model.startswith(make): camera_model = model Loading