From bf42a79ef7584f3d5bcab2dd522825fc0dc839d6 Mon Sep 17 00:00:00 2001 From: Cayo Puigdefabregas Date: Wed, 27 Apr 2022 18:55:27 +0200 Subject: [PATCH 1/4] change devices for tags in printlabels --- ereuse_devicehub/labels/forms.py | 7 ++----- ereuse_devicehub/labels/views.py | 2 +- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/ereuse_devicehub/labels/forms.py b/ereuse_devicehub/labels/forms.py index cd4b5bec..98427215 100644 --- a/ereuse_devicehub/labels/forms.py +++ b/ereuse_devicehub/labels/forms.py @@ -64,10 +64,7 @@ class PrintLabelsForm(FlaskForm): .all() ) - # print only tags that are DHID - dhids = [x.devicehub_id for x in self._devices] - self._tags = ( - Tag.query.filter(Tag.owner_id == g.user.id).filter(Tag.id.in_(dhids)).all() - ) + if not self._devices: + return False return is_valid diff --git a/ereuse_devicehub/labels/views.py b/ereuse_devicehub/labels/views.py index 445a4eb8..3f4fbf5d 100644 --- a/ereuse_devicehub/labels/views.py +++ b/ereuse_devicehub/labels/views.py @@ -102,7 +102,7 @@ class PrintLabelsView(View): form = PrintLabelsForm() if form.validate_on_submit(): context['form'] = form - context['tags'] = form._tags + context['devices'] = form._devices return flask.render_template(self.template_name, **context) else: messages.error('Error you need select one or more devices') From e378fef1a6499c1b247415927594067a5146e6cd Mon Sep 17 00:00:00 2001 From: Cayo Puigdefabregas Date: Wed, 27 Apr 2022 18:56:15 +0200 Subject: [PATCH 2/4] add customize options in print html and pdf --- ereuse_devicehub/static/js/print.pdf.js | 110 ++++++++++++++++-- .../templates/labels/print_labels.html | 86 ++++++++++---- 2 files changed, 165 insertions(+), 31 deletions(-) diff --git a/ereuse_devicehub/static/js/print.pdf.js b/ereuse_devicehub/static/js/print.pdf.js index 0d6fe6d5..f0b1817c 100644 --- a/ereuse_devicehub/static/js/print.pdf.js +++ b/ereuse_devicehub/static/js/print.pdf.js @@ -1,8 +1,10 @@ $(document).ready(function() { STORAGE_KEY = 'tag-spec-key'; $("#printerType").on("change", change_size); + $(".form-check-input").on("change", change_check); change_size(); - load_size(); + load_settings(); + change_check(); }) function qr_draw(url, id) { @@ -16,27 +18,43 @@ function qr_draw(url, id) { }); } -function save_size() { +function save_settings() { var height = $("#height-tag").val(); var width = $("#width-tag").val(); var sizePreset = $("#printerType").val(); var data = {"height": height, "width": width, "sizePreset": sizePreset}; + data['dhid'] = $("#dhidCheck").prop('checked'); + data['qr'] = $("#qrCheck").prop('checked'); + data['serial_number'] = $("#serialNumberCheck").prop('checked'); + data['manufacturer'] = $("#manufacturerCheck").prop('checked'); + data['model'] = $("#modelCheck").prop('checked'); localStorage.setItem(STORAGE_KEY, JSON.stringify(data)); } -function load_size() { +function load_settings() { var data = JSON.parse(localStorage.getItem(STORAGE_KEY)); if (data){ $("#height-tag").val(data.height); $("#width-tag").val(data.width); $("#printerType").val(data.sizePreset); + $("#qrCheck").prop('checked', data.qr); + $("#dhidCheck").prop('checked', data.dhid); + $("#serialNumberCheck").prop('checked', data.serial_number); + $("#manufacturerCheck").prop('checked', data.manufacturer); + $("#modelCheck").prop('checked', data.model); }; } -function reset_size() { +function reset_settings() { localStorage.removeItem(STORAGE_KEY); $("#printerType").val('brotherSmall'); + $("#qrCheck").prop('checked', true); + $("#dhidCheck").prop('checked', true); + $("#serialNumberCheck").prop('checked', false); + $("#manufacturerCheck").prop('checked', false); + $("#modelCheck").prop('checked', false); change_size(); + change_check(); } function change_size() { @@ -50,29 +68,101 @@ function change_size() { } } +function change_check() { + if ($("#dhidCheck").prop('checked')) { + $(".dhid").show(); + } else { + $(".dhid").hide(); + } + if ($("#serialNumberCheck").prop('checked')) { + $(".serial_number").show(); + } else { + $(".serial_number").hide(); + } + if ($("#manufacturerCheck").prop('checked')) { + $(".manufacturer").show(); + } else { + $(".manufacturer").hide(); + } + if ($("#modelCheck").prop('checked')) { + $(".model").show(); + } else { + $(".model").hide(); + } + if ($("#qrCheck").prop('checked')) { + $(".qr").show(); + } else { + $(".qr").hide(); + } +} + function printpdf() { var border = 2; + var line = 5; var height = parseInt($("#height-tag").val()); var width = parseInt($("#width-tag").val()); - img_side = Math.min(height, width) - 2*border; + var img_side = Math.min(height, width) - 2*border; max_tag_side = (Math.max(height, width)/2) + border; if (max_tag_side < img_side) { - max_tag_side = img_side+ 2*border; + max_tag_side = img_side + 2*border; }; min_tag_side = (Math.min(height, width)/2) + border; var last_tag_code = ''; + if ($("#serialNumberCheck").prop('checked')) { + height += line; + }; + if ($("#manufacturerCheck").prop('checked')) { + height += line; + }; + if ($("#modelCheck").prop('checked')) { + height += line; + }; + var pdf = new jsPDF('l', 'mm', [width, height]); $(".tag").map(function(x, y) { if (x != 0){ pdf.addPage(); - console.log(x) }; + var space = line + border; + if ($("#qrCheck").prop('checked')) { + space += img_side; + } var tag = $(y).text(); last_tag_code = tag; - var imgData = $('#'+tag+' img').attr("src"); - pdf.addImage(imgData, 'PNG', border, border, img_side, img_side); - pdf.text(tag, max_tag_side, min_tag_side); + if ($("#qrCheck").prop('checked')) { + var imgData = $('#'+tag+' img').attr("src"); + pdf.addImage(imgData, 'PNG', border, border, img_side, img_side); + }; + + if ($("#dhidCheck").prop('checked')) { + if ($("#qrCheck").prop('checked')) { + pdf.setFontSize(15); + pdf.text(tag, max_tag_side, min_tag_side); + } else { + pdf.setFontSize(15); + pdf.text(tag, border, space); + space += line; + } + }; + if ($("#serialNumberCheck").prop('checked')) { + var sn = $(y).data('serial-number'); + pdf.setFontSize(12); + pdf.text(sn, border, space); + space += line; + }; + if ($("#manufacturerCheck").prop('checked')) { + var sn = $(y).data('manufacturer'); + pdf.setFontSize(12); + pdf.text(sn, border, space); + space += line; + }; + if ($("#modelCheck").prop('checked')) { + var sn = $(y).data('model'); + pdf.setFontSize(8); + pdf.text(sn, border, space); + space += line; + }; }); pdf.save('Tag_'+last_tag_code+'.pdf'); diff --git a/ereuse_devicehub/templates/labels/print_labels.html b/ereuse_devicehub/templates/labels/print_labels.html index 306b32f9..55d35111 100644 --- a/ereuse_devicehub/templates/labels/print_labels.html +++ b/ereuse_devicehub/templates/labels/print_labels.html @@ -24,16 +24,39 @@
- {% for tag in tags %} -
-
+ {% for dev in devices %} +
+
-
-
+
+
-
+
- {{ tag.id }} + {{ dev.devicehub_id }} +
+
+
+ + + @@ -71,20 +94,41 @@ mm
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
-
-
- Print -
-
- Save -
-
- Reset -
-
-
@@ -96,8 +140,8 @@ {% endblock main %} From ad11521b640c4687bca9c06ea4b5352eb049cfb9 Mon Sep 17 00:00:00 2001 From: Cayo Puigdefabregas Date: Thu, 28 Apr 2022 10:14:10 +0200 Subject: [PATCH 3/4] fix label details for new architecture --- .../templates/labels/label_detail.html | 88 +++++++++++++++---- 1 file changed, 72 insertions(+), 16 deletions(-) diff --git a/ereuse_devicehub/templates/labels/label_detail.html b/ereuse_devicehub/templates/labels/label_detail.html index 75ff3efb..24c8a535 100644 --- a/ereuse_devicehub/templates/labels/label_detail.html +++ b/ereuse_devicehub/templates/labels/label_detail.html @@ -43,16 +43,49 @@
Print Label
-
+
-
+
-
-
{{ tag.id }}
+
+
+ {% if tag.device %} + {{ tag.id }} + {% else %} + {{ tag.id }} + {% endif %} +
+ {% if tag.device %} + + + + {% endif %}
@@ -84,20 +117,43 @@ mm
+ {% if tag.device %} +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ {% endif %} +
-
-
- Print -
-
- Save -
-
- Reset -
-
-
From c2e431352144865693e60302cfbf43f739f77938 Mon Sep 17 00:00:00 2001 From: Cayo Puigdefabregas Date: Thu, 28 Apr 2022 11:16:12 +0200 Subject: [PATCH 4/4] change tag for Unique identifier in label_details --- ereuse_devicehub/templates/labels/label_detail.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ereuse_devicehub/templates/labels/label_detail.html b/ereuse_devicehub/templates/labels/label_detail.html index 24c8a535..c378c6f3 100644 --- a/ereuse_devicehub/templates/labels/label_detail.html +++ b/ereuse_devicehub/templates/labels/label_detail.html @@ -5,8 +5,8 @@

Inventory

@@ -26,7 +26,7 @@
Type
-
{% if tag.provider %}UnNamed Tag{% else %}Named{% endif %}
+
{% if tag.provider %}UnNamed Unique Identifier{% else %}Named{% endif %}
@@ -125,7 +125,7 @@
- +