From cdf180cf385adea88a11487a7fc922d16a68a747 Mon Sep 17 00:00:00 2001 From: Cayo Puigdefabregas Date: Fri, 17 Jun 2022 12:16:01 +0200 Subject: [PATCH 01/23] drop metrics of devices list --- ereuse_devicehub/templates/inventory/device_list.html | 6 ------ 1 file changed, 6 deletions(-) diff --git a/ereuse_devicehub/templates/inventory/device_list.html b/ereuse_devicehub/templates/inventory/device_list.html index d2e42091..b9d44d25 100644 --- a/ereuse_devicehub/templates/inventory/device_list.html +++ b/ereuse_devicehub/templates/inventory/device_list.html @@ -246,12 +246,6 @@ Devices Spreadsheet -
  • - - - Metrics Spreadsheet - -
  • From ec47bfaec6e230f9e930a389f22a575b8b81b7fc Mon Sep 17 00:00:00 2001 From: Cayo Puigdefabregas Date: Fri, 17 Jun 2022 14:14:32 +0200 Subject: [PATCH 02/23] export lots --- ereuse_devicehub/inventory/views.py | 80 +++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/ereuse_devicehub/inventory/views.py b/ereuse_devicehub/inventory/views.py index b7a8298b..646f5a63 100644 --- a/ereuse_devicehub/inventory/views.py +++ b/ereuse_devicehub/inventory/views.py @@ -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' From 740178f57bc1177a84626f709162cb3e9756aa2b Mon Sep 17 00:00:00 2001 From: Cayo Puigdefabregas Date: Mon, 20 Jun 2022 09:24:48 +0200 Subject: [PATCH 03/23] add link for report lots --- ereuse_devicehub/templates/ereuse_devicehub/base_site.html | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ereuse_devicehub/templates/ereuse_devicehub/base_site.html b/ereuse_devicehub/templates/ereuse_devicehub/base_site.html index f86e31ae..ef600a39 100644 --- a/ereuse_devicehub/templates/ereuse_devicehub/base_site.html +++ b/ereuse_devicehub/templates/ereuse_devicehub/base_site.html @@ -44,6 +44,12 @@
  • + + +
  • + + + Devices Incoming and Outgoing Lots Spreadsheet + +
  • From 49062d99440cfc5baf6e6f297258173c2a297cf3 Mon Sep 17 00:00:00 2001 From: Cayo Puigdefabregas Date: Mon, 20 Jun 2022 10:40:00 +0200 Subject: [PATCH 05/23] add export devices lots --- ereuse_devicehub/inventory/views.py | 48 +++++++++++++++++++----- ereuse_devicehub/resources/lot/models.py | 10 +++++ 2 files changed, 49 insertions(+), 9 deletions(-) diff --git a/ereuse_devicehub/inventory/views.py b/ereuse_devicehub/inventory/views.py index 646f5a63..a1ed20fa 100644 --- a/ereuse_devicehub/inventory/views.py +++ b/ereuse_devicehub/inventory/views.py @@ -478,6 +478,7 @@ class ExportsView(View): 'devices': self.devices_list, 'certificates': self.erasure, 'lots': self.lots_export, + 'devices_lots': self.devices_lots_export, } if export_id not in export_ids: @@ -613,14 +614,6 @@ class ExportsView(View): 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'] @@ -634,7 +627,7 @@ class ExportsView(View): row = [ lot.id, lot.name, - type_transfer, + lot.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 '', @@ -657,6 +650,43 @@ class ExportsView(View): return self.response_csv(data, "lots_export.csv") + def devices_lots_export(self): + data = StringIO() + cw = csv.writer(data, delimiter=';', lineterminator="\n", quotechar='"') + head = [ + 'DHID', + 'Lot Id', + 'Lot Name', + 'Lot Type', + 'Transfer Status', + 'Transfer Code', + 'Transfer Date', + 'Transfer Creation Date', + 'Transfer Update Date' + ] + cw.writerow(head) + + for dev in self.find_devices(): + for lot in dev.lots: + type_transfer = lot.type_transfer() + if type_transfer in ['Temporary', '']: + continue + + row = [ + dev.devicehub_id, + 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 '', + ] + cw.writerow(row) + + return self.response_csv(data, "Devices_Incoming_and_Outgoing_Lots_Spreadsheet.csv") + class SnapshotListView(GenericMixin): template_name = 'inventory/snapshots_list.html' diff --git a/ereuse_devicehub/resources/lot/models.py b/ereuse_devicehub/resources/lot/models.py index ef6577a8..c2309224 100644 --- a/ereuse_devicehub/resources/lot/models.py +++ b/ereuse_devicehub/resources/lot/models.py @@ -151,6 +151,16 @@ class Lot(Thing): """Gets the lots that are not under any other lot.""" return cls.query.join(cls.paths).filter(db.func.nlevel(Path.path) == 1) + def type_transfer(self): + # Used in reports lots_export.csv + if not self.transfer: + return 'Temporary' + if self.transfer.user_from == g.user: + return 'Outgoing' + if self.transfer.user_to == g.user: + return 'Incoming' + return '' + def add_children(self, *children): """Add children lots to this lot. From 8e11aff88b6f85397e3912cb4c4ac569b37182da Mon Sep 17 00:00:00 2001 From: Cayo Puigdefabregas Date: Mon, 20 Jun 2022 10:51:32 +0200 Subject: [PATCH 06/23] add export devices lots --- ereuse_devicehub/inventory/views.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ereuse_devicehub/inventory/views.py b/ereuse_devicehub/inventory/views.py index a1ed20fa..876ce1b3 100644 --- a/ereuse_devicehub/inventory/views.py +++ b/ereuse_devicehub/inventory/views.py @@ -662,7 +662,7 @@ class ExportsView(View): 'Transfer Code', 'Transfer Date', 'Transfer Creation Date', - 'Transfer Update Date' + 'Transfer Update Date', ] cw.writerow(head) @@ -685,7 +685,9 @@ class ExportsView(View): ] cw.writerow(row) - return self.response_csv(data, "Devices_Incoming_and_Outgoing_Lots_Spreadsheet.csv") + return self.response_csv( + data, "Devices_Incoming_and_Outgoing_Lots_Spreadsheet.csv" + ) class SnapshotListView(GenericMixin): From c6c443899a3be9d50dfb2660fe806b64f01db1df Mon Sep 17 00:00:00 2001 From: Cayo Puigdefabregas Date: Mon, 20 Jun 2022 14:35:57 +0200 Subject: [PATCH 07/23] add temporary lots too in reports --- ereuse_devicehub/inventory/views.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/ereuse_devicehub/inventory/views.py b/ereuse_devicehub/inventory/views.py index 876ce1b3..83b78343 100644 --- a/ereuse_devicehub/inventory/views.py +++ b/ereuse_devicehub/inventory/views.py @@ -668,15 +668,11 @@ class ExportsView(View): for dev in self.find_devices(): for lot in dev.lots: - type_transfer = lot.type_transfer() - if type_transfer in ['Temporary', '']: - continue - row = [ dev.devicehub_id, lot.id, lot.name, - type_transfer, + lot.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 '', From 3ecf4c4a899be120e320af65c2181762fcc51086 Mon Sep 17 00:00:00 2001 From: Cayo Puigdefabregas Date: Mon, 20 Jun 2022 14:36:34 +0200 Subject: [PATCH 08/23] add dropdown menu in reports lots --- .../templates/ereuse_devicehub/base_site.html | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/ereuse_devicehub/templates/ereuse_devicehub/base_site.html b/ereuse_devicehub/templates/ereuse_devicehub/base_site.html index ef600a39..658c2345 100644 --- a/ereuse_devicehub/templates/ereuse_devicehub/base_site.html +++ b/ereuse_devicehub/templates/ereuse_devicehub/base_site.html @@ -45,9 +45,26 @@
  • Error feching devices and lots
    (see console for more details)
  • "); } } + +function appendMenu(lots, listHTML, templateLot, selectedDevices, actions, title) { + let lotsList = []; + lotsList.push(lots.filter(lot => lot.state == "true").sort((a, b) => a.name.localeCompare(b.name))); + lotsList.push(lots.filter(lot => lot.state == "indetermined").sort((a, b) => a.name.localeCompare(b.name))); + lotsList.push(lots.filter(lot => lot.state == "false").sort((a, b) => a.name.localeCompare(b.name))); + lotsList = lotsList.flat(); // flat array + + listHTML.append("
  • " + title + "
  • "); + lotsList.forEach(lot => templateLot(lot, selectedDevices, listHTML, actions)); +} diff --git a/ereuse_devicehub/static/js/main_inventory.js b/ereuse_devicehub/static/js/main_inventory.js index fd693d44..46b2f61f 100644 --- a/ereuse_devicehub/static/js/main_inventory.js +++ b/ereuse_devicehub/static/js/main_inventory.js @@ -646,17 +646,30 @@ async function processSelectedDevices() { return lot; }) - let lotsList = []; - lotsList.push(lots.filter(lot => lot.state == "true").sort((a, b) => a.name.localeCompare(b.name))); - lotsList.push(lots.filter(lot => lot.state == "indetermined").sort((a, b) => a.name.localeCompare(b.name))); - lotsList.push(lots.filter(lot => lot.state == "false").sort((a, b) => a.name.localeCompare(b.name))); - lotsList = lotsList.flat(); // flat array - listHTML.html(""); - lotsList.forEach(lot => templateLot(lot, selectedDevices, listHTML, actions)); + let lot_temporary = lots.filter(lot => !lot.transfer); + appendMenu(lot_temporary, listHTML, templateLot, selectedDevices, actions, 'Temporary'); + + let lot_incoming = lots.filter(lot => lot.transfer && lot.transfer == 'Incoming'); + appendMenu(lot_incoming, listHTML, templateLot, selectedDevices, actions, 'Incoming'); + + let lot_outgoing = lots.filter(lot => lot.transfer && lot.transfer == 'Outgoing'); + appendMenu(lot_outgoing, listHTML, templateLot, selectedDevices, actions, 'Outgoing'); + lotsSearcher.enable(); } catch (error) { console.log(error); listHTML.html("
  • Error feching devices and lots
    (see console for more details)
  • "); } } + +function appendMenu(lots, listHTML, templateLot, selectedDevices, actions, title) { + let lotsList = []; + lotsList.push(lots.filter(lot => lot.state == "true").sort((a, b) => a.name.localeCompare(b.name))); + lotsList.push(lots.filter(lot => lot.state == "indetermined").sort((a, b) => a.name.localeCompare(b.name))); + lotsList.push(lots.filter(lot => lot.state == "false").sort((a, b) => a.name.localeCompare(b.name))); + lotsList = lotsList.flat(); // flat array + + listHTML.append("
  • " + title + "
  • "); + lotsList.forEach(lot => templateLot(lot, selectedDevices, listHTML, actions)); +} From db53905cf1e35c2c5d19125b7f457a52a4fc1ae4 Mon Sep 17 00:00:00 2001 From: Lint Action Date: Tue, 21 Jun 2022 15:53:23 +0000 Subject: [PATCH 15/23] Fix code style issues with ESLint --- ereuse_devicehub/static/js/main_inventory.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/ereuse_devicehub/static/js/main_inventory.js b/ereuse_devicehub/static/js/main_inventory.js index 46b2f61f..9c9b8d0a 100644 --- a/ereuse_devicehub/static/js/main_inventory.js +++ b/ereuse_devicehub/static/js/main_inventory.js @@ -647,14 +647,14 @@ async function processSelectedDevices() { }) listHTML.html(""); - let lot_temporary = lots.filter(lot => !lot.transfer); - appendMenu(lot_temporary, listHTML, templateLot, selectedDevices, actions, 'Temporary'); + const lot_temporary = lots.filter(lot => !lot.transfer); + appendMenu(lot_temporary, listHTML, templateLot, selectedDevices, actions, "Temporary"); - let lot_incoming = lots.filter(lot => lot.transfer && lot.transfer == 'Incoming'); - appendMenu(lot_incoming, listHTML, templateLot, selectedDevices, actions, 'Incoming'); + const lot_incoming = lots.filter(lot => lot.transfer && lot.transfer == "Incoming"); + appendMenu(lot_incoming, listHTML, templateLot, selectedDevices, actions, "Incoming"); - let lot_outgoing = lots.filter(lot => lot.transfer && lot.transfer == 'Outgoing'); - appendMenu(lot_outgoing, listHTML, templateLot, selectedDevices, actions, 'Outgoing'); + const lot_outgoing = lots.filter(lot => lot.transfer && lot.transfer == "Outgoing"); + appendMenu(lot_outgoing, listHTML, templateLot, selectedDevices, actions, "Outgoing"); lotsSearcher.enable(); } catch (error) { @@ -670,6 +670,6 @@ function appendMenu(lots, listHTML, templateLot, selectedDevices, actions, title lotsList.push(lots.filter(lot => lot.state == "false").sort((a, b) => a.name.localeCompare(b.name))); lotsList = lotsList.flat(); // flat array - listHTML.append("
  • " + title + "
  • "); + listHTML.append(`
  • ${ title }
  • `); lotsList.forEach(lot => templateLot(lot, selectedDevices, listHTML, actions)); } From b00e602150453b031e65c6dad46f71ea544e8410 Mon Sep 17 00:00:00 2001 From: Cayo Puigdefabregas Date: Tue, 21 Jun 2022 18:15:44 +0200 Subject: [PATCH 16/23] add files for test --- tests/files/devices_lots.csv | 2 ++ tests/files/lots.csv | 2 ++ 2 files changed, 4 insertions(+) create mode 100644 tests/files/devices_lots.csv create mode 100644 tests/files/lots.csv diff --git a/tests/files/devices_lots.csv b/tests/files/devices_lots.csv new file mode 100644 index 00000000..5de2cc9f --- /dev/null +++ b/tests/files/devices_lots.csv @@ -0,0 +1,2 @@ +DHID;Lot Id;Lot Name;Lot Type;Transfer Status;Transfer Code;Transfer Date;Transfer Creation Date;Transfer Update Date +O48N2;c43a0d06-0c77-4a74-9c95-086645fbc534;lot1;Temporary;;;;; diff --git a/tests/files/lots.csv b/tests/files/lots.csv new file mode 100644 index 00000000..9c2d7c5b --- /dev/null +++ b/tests/files/lots.csv @@ -0,0 +1,2 @@ +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 +cca691c4-b221-4882-924c-30cd545c0182;lot1;Temporary;;;;;;;1;1;0;;;;;;;; From b47cc84859e7a84d3c9ccef33cabdd8ee0868d73 Mon Sep 17 00:00:00 2001 From: Cayo Puigdefabregas Date: Tue, 21 Jun 2022 18:27:55 +0200 Subject: [PATCH 17/23] run babel --- ereuse_devicehub/static/js/main_inventory.build.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ereuse_devicehub/static/js/main_inventory.build.js b/ereuse_devicehub/static/js/main_inventory.build.js index c6bbbfe9..86f66e7a 100644 --- a/ereuse_devicehub/static/js/main_inventory.build.js +++ b/ereuse_devicehub/static/js/main_inventory.build.js @@ -707,6 +707,6 @@ function appendMenu(lots, listHTML, templateLot, selectedDevices, actions, title lotsList.push(lots.filter(lot => lot.state == "false").sort((a, b) => a.name.localeCompare(b.name))); lotsList = lotsList.flat(); // flat array - listHTML.append("
  • " + title + "
  • "); + listHTML.append(`
  • ${ title }
  • `); lotsList.forEach(lot => templateLot(lot, selectedDevices, listHTML, actions)); } From bc446e7dbf51d158375e241d5097a2d443dc3071 Mon Sep 17 00:00:00 2001 From: Cayo Puigdefabregas Date: Wed, 22 Jun 2022 09:03:12 +0200 Subject: [PATCH 18/23] run babel --- ereuse_devicehub/static/js/main_inventory.build.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ereuse_devicehub/static/js/main_inventory.build.js b/ereuse_devicehub/static/js/main_inventory.build.js index 86f66e7a..1e1b21fd 100644 --- a/ereuse_devicehub/static/js/main_inventory.build.js +++ b/ereuse_devicehub/static/js/main_inventory.build.js @@ -683,14 +683,14 @@ async function processSelectedDevices() { }); listHTML.html(""); - let lot_temporary = lots.filter(lot => !lot.transfer); - appendMenu(lot_temporary, listHTML, templateLot, selectedDevices, actions, 'Temporary'); + const lot_temporary = lots.filter(lot => !lot.transfer); + appendMenu(lot_temporary, listHTML, templateLot, selectedDevices, actions, "Temporary"); - let lot_incoming = lots.filter(lot => lot.transfer && lot.transfer == 'Incoming'); - appendMenu(lot_incoming, listHTML, templateLot, selectedDevices, actions, 'Incoming'); + const lot_incoming = lots.filter(lot => lot.transfer && lot.transfer == "Incoming"); + appendMenu(lot_incoming, listHTML, templateLot, selectedDevices, actions, "Incoming"); - let lot_outgoing = lots.filter(lot => lot.transfer && lot.transfer == 'Outgoing'); - appendMenu(lot_outgoing, listHTML, templateLot, selectedDevices, actions, 'Outgoing'); + const lot_outgoing = lots.filter(lot => lot.transfer && lot.transfer == "Outgoing"); + appendMenu(lot_outgoing, listHTML, templateLot, selectedDevices, actions, "Outgoing"); lotsSearcher.enable(); From 02ab084dc1672cd82228f37df35215160b8695bf Mon Sep 17 00:00:00 2001 From: Cayo Puigdefabregas Date: Wed, 22 Jun 2022 09:13:53 +0200 Subject: [PATCH 19/23] changelog --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c6392e99..9bcbc503 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,9 @@ ml). ## master ## testing +- [added] #303 Add export Lots. +- [added] #303 Add export relating lots with devices. +- [added] #303 To do possible add and remove one device in one lot transfer. ## [2.2.0 rc1] - 2022-06-07 - [added] #212 Server side render parser Workbench Snapshots. From 436e796234f10544a1ed0c0aef223f958f553512 Mon Sep 17 00:00:00 2001 From: Cayo Puigdefabregas Date: Wed, 22 Jun 2022 09:45:02 +0200 Subject: [PATCH 20/23] changelog --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9bcbc503..36a8853a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,9 @@ ml). ## master ## testing +- [added] #299 Multy select with Shift. +- [added] #300 Add Sid in label. +- [added] #301 Add logo in label. - [added] #303 Add export Lots. - [added] #303 Add export relating lots with devices. - [added] #303 To do possible add and remove one device in one lot transfer. From eb8dec51735bb85923d2c646a8213d3649e914c0 Mon Sep 17 00:00:00 2001 From: Cayo Puigdefabregas Date: Wed, 22 Jun 2022 14:57:57 +0200 Subject: [PATCH 21/23] changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 36a8853a..950848a5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ ml). ## master ## testing + +## [2.2.0 rc2] - 2022-06-22 - [added] #299 Multy select with Shift. - [added] #300 Add Sid in label. - [added] #301 Add logo in label. From e55c1d4cabd92429b7f9b996df78eb6a67bcf24b Mon Sep 17 00:00:00 2001 From: Cayo Puigdefabregas Date: Thu, 23 Jun 2022 15:52:23 +0200 Subject: [PATCH 22/23] change link of export devices lots --- ereuse_devicehub/templates/inventory/device_list.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ereuse_devicehub/templates/inventory/device_list.html b/ereuse_devicehub/templates/inventory/device_list.html index 61ede7ee..f7f53add 100644 --- a/ereuse_devicehub/templates/inventory/device_list.html +++ b/ereuse_devicehub/templates/inventory/device_list.html @@ -249,7 +249,7 @@
  • - Devices Incoming and Outgoing Lots Spreadsheet + Devices Lots Spreadsheet
  • From 7ca91cbb35261bc1b15f8338521589db2dd7a838 Mon Sep 17 00:00:00 2001 From: Cayo Puigdefabregas Date: Thu, 23 Jun 2022 16:09:58 +0200 Subject: [PATCH 23/23] changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 950848a5..05bc0e27 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ ml). ## master ## testing +- [changed] #304 change anchor of link devices lots. ## [2.2.0 rc2] - 2022-06-22 - [added] #299 Multy select with Shift.