export lots
This commit is contained in:
parent
cdf180cf38
commit
ec47bfaec6
|
@ -33,6 +33,7 @@ from ereuse_devicehub.parser.models import SnapshotsLog
|
|||
from ereuse_devicehub.resources.action.models import Trade
|
||||
from ereuse_devicehub.resources.device.models import Computer, DataStorage, Device
|
||||
from ereuse_devicehub.resources.documents.device_row import ActionRow, DeviceRow
|
||||
from ereuse_devicehub.resources.enums import SnapshotSoftware
|
||||
from ereuse_devicehub.resources.hash_reports import insert_hash
|
||||
from ereuse_devicehub.resources.lot.models import Lot
|
||||
from ereuse_devicehub.resources.tag.model import Tag
|
||||
|
@ -476,6 +477,7 @@ class ExportsView(View):
|
|||
'metrics': self.metrics,
|
||||
'devices': self.devices_list,
|
||||
'certificates': self.erasure,
|
||||
'lots': self.lots_export,
|
||||
}
|
||||
|
||||
if export_id not in export_ids:
|
||||
|
@ -577,6 +579,84 @@ class ExportsView(View):
|
|||
}
|
||||
return flask.render_template('inventory/erasure.html', **params)
|
||||
|
||||
def lots_export(self):
|
||||
data = StringIO()
|
||||
cw = csv.writer(data, delimiter=';', lineterminator="\n", quotechar='"')
|
||||
|
||||
cw.writerow(
|
||||
[
|
||||
'Lot Id',
|
||||
'Lot Name',
|
||||
'Lot Type',
|
||||
'Transfer Status',
|
||||
'Transfer Code',
|
||||
'Transfer Date',
|
||||
'Transfer Creation Date',
|
||||
'Transfer Update Date',
|
||||
'Transfer Description',
|
||||
'Devices Number',
|
||||
'Devices Snapshots',
|
||||
'Devices Placeholders',
|
||||
'Delivery Note Number',
|
||||
'Delivery Note Date',
|
||||
'Delivery Note Units',
|
||||
'Delivery Note Weight',
|
||||
'Receiver Note Number',
|
||||
'Receiver Note Date',
|
||||
'Receiver Note Units',
|
||||
'Receiver Note Weight',
|
||||
]
|
||||
)
|
||||
|
||||
for lot in Lot.query.filter_by(owner=g.user):
|
||||
delivery_note = lot.transfer and lot.transfer.delivery_note or ''
|
||||
receiver_note = lot.transfer and lot.transfer.receiver_note or ''
|
||||
wb_devs = 0
|
||||
placeholders = 0
|
||||
type_transfer = ''
|
||||
if lot.transfer:
|
||||
if lot.transfer.user_from == g.user:
|
||||
type_transfer = 'Outgoing'
|
||||
if lot.transfer.user_to == g.user:
|
||||
type_transfer = 'Incoming'
|
||||
else:
|
||||
type_transfer = 'Temporary'
|
||||
|
||||
for dev in lot.devices:
|
||||
snapshots = [e for e in dev.actions if e.type == 'Snapshot']
|
||||
if not snapshots or snapshots[-1].software not in [
|
||||
SnapshotSoftware.Workbench
|
||||
]:
|
||||
placeholders += 1
|
||||
elif snapshots[-1].software in [SnapshotSoftware.Workbench]:
|
||||
wb_devs += 1
|
||||
|
||||
row = [
|
||||
lot.id,
|
||||
lot.name,
|
||||
type_transfer,
|
||||
lot.transfer and (lot.transfer.closed and 'Closed' or 'Open') or '',
|
||||
lot.transfer and lot.transfer.code or '',
|
||||
lot.transfer and lot.transfer.date or '',
|
||||
lot.transfer and lot.transfer.created or '',
|
||||
lot.transfer and lot.transfer.updated or '',
|
||||
lot.transfer and lot.transfer.description or '',
|
||||
len(lot.devices),
|
||||
wb_devs,
|
||||
placeholders,
|
||||
delivery_note and delivery_note.number or '',
|
||||
delivery_note and delivery_note.date or '',
|
||||
delivery_note and delivery_note.units or '',
|
||||
delivery_note and delivery_note.weight or '',
|
||||
receiver_note and receiver_note.number or '',
|
||||
receiver_note and receiver_note.date or '',
|
||||
receiver_note and receiver_note.units or '',
|
||||
receiver_note and receiver_note.weight or '',
|
||||
]
|
||||
cw.writerow(row)
|
||||
|
||||
return self.response_csv(data, "lots_export.csv")
|
||||
|
||||
|
||||
class SnapshotListView(GenericMixin):
|
||||
template_name = 'inventory/snapshots_list.html'
|
||||
|
|
Reference in New Issue