diff --git a/ereuse_devicehub/resources/documents/device_row.py b/ereuse_devicehub/resources/documents/device_row.py index 31867a64..82347d44 100644 --- a/ereuse_devicehub/resources/documents/device_row.py +++ b/ereuse_devicehub/resources/documents/device_row.py @@ -422,30 +422,37 @@ class DeviceRow(BaseDeviceRow): self['{} {} Speed (MHz)'.format(ctype, i)] = none2str(component.speed) def get_erasure_datawipe_mobile(self, device): + if isinstance(device, d.DataStorage): + if device.placeholder and device.placeholder.binding: + binding = device.placeholder.binding + return self.get_datastorage('DataStorage', 1, binding) + return self.get_datastorage('DataStorage', 1, device) + + if not isinstance(device, d.Mobile): + return + actions = sorted(device.actions) erasures = [a for a in actions if a.type == 'EraseDataWipe'] erasure = erasures[-1] if erasures else None - if erasure: - self['Erasure DataStorage 1'] = none2str(device.chid) - if isinstance(device, d.Mobile): - serial_number = none2str(device.imei) - size = device.data_storage_size - size = size * 1000 if size else 0 - storage_size = none2str(size) - if isinstance(device, d.DataStorage): - serial_number = none2str(device.serial_number) - storage_size = none2str(device.size) + if not erasure: + return - self['Erasure DataStorage 1 Serial Number'] = serial_number - self['Erasure DataStorage 1 Size (MB)'] = storage_size - self['Erasure DataStorage 1 Software'] = erasure.document.software - self['Erasure DataStorage 1 Result'] = get_result(erasure) - self['Erasure DataStorage 1 Type'] = erasure.type - self['Erasure DataStorage 1 Date'] = format(erasure.document.date or '') - self['Erasure DataStorage 1 Certificate URL'] = ( - erasure.document.url and erasure.document.url.to_text() or '' - ) + self['Erasure DataStorage 1'] = none2str(device.chid) + serial_number = none2str(device.imei) + size = device.data_storage_size + size = size * 1000 if size else 0 + storage_size = none2str(size) + + self['Erasure DataStorage 1 Serial Number'] = serial_number + self['Erasure DataStorage 1 Size (MB)'] = storage_size + self['Erasure DataStorage 1 Result'] = get_result(erasure) + self['Erasure DataStorage 1 Type'] = erasure.type + self['Erasure DataStorage 1 Software'] = erasure.document.software + self['Erasure DataStorage 1 Date'] = format(erasure.document.date or '') + self['Erasure DataStorage 1 Certificate URL'] = ( + erasure.document.url and erasure.document.url.to_text() or '' + ) def get_datastorage(self, ctype, i, component): """Particular fields for component DataStorage.