From e6f308458894d549e1dfc2d2583dc6f8fbde72f0 Mon Sep 17 00:00:00 2001 From: Nicolas Margulies Date: Wed, 11 Oct 2023 18:01:04 +0200 Subject: [PATCH] Added a first pass for automatically entering an activity with a qrcode --- .../templates/activity/activity_entry.html | 34 ++++++++++++++++++- apps/member/templates/member/qr_code.html | 2 +- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/apps/activity/templates/activity/activity_entry.html b/apps/activity/templates/activity/activity_entry.html index 0286bdb7..c5368c2d 100644 --- a/apps/activity/templates/activity/activity_entry.html +++ b/apps/activity/templates/activity/activity_entry.html @@ -38,6 +38,7 @@ SPDX-License-Identifier: GPL-3.0-or-later +
@@ -63,15 +64,46 @@ SPDX-License-Identifier: GPL-3.0-or-later refreshBalance(); } + function process_qrcode() { + let name = alias_obj.val(); + $.get("/api/note/note?search=" + name + "&format=json").done( + function (res) { + let note = res.results[0]; + $.post("/api/activity/entry/?format=json", { + csrfmiddlewaretoken: CSRF_TOKEN, + activity: {{ activity.id }}, + note: note.id, + guest: null + }).done(function () { + addMsg(interpolate(gettext( + "Entry made for %s whose balance is %s €"), + [note.name, note.balance / 100]), "success", 4000); + reloadTable(true); + }).fail(function (xhr) { + errMsg(xhr.responseJSON, 4000); + }); + }).fail(function (xhr) { + errMsg(xhr.responseJSON, 4000); + }); + } + alias_obj.keyup(function(event) { let code = event.originalEvent.keyCode if (65 <= code <= 122 || code === 13) { debounce(reloadTable)() } + if (code === 0) + process_qrcode(); }); $(document).ready(init); + alias_obj2 = document.getElementById("alias"); + $("#trigger").click(function (e) { + addMsg("Clicked", "success", 1000); + alias_obj.val(alias_obj.val() + "\0"); + alias_obj2.dispatchEvent(new KeyboardEvent('keyup')); + }) function init() { $(".table-row").click(function (e) { let target = e.target.parentElement; @@ -168,4 +200,4 @@ SPDX-License-Identifier: GPL-3.0-or-later }); } -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/apps/member/templates/member/qr_code.html b/apps/member/templates/member/qr_code.html index da9d6042..00e1256c 100644 --- a/apps/member/templates/member/qr_code.html +++ b/apps/member/templates/member/qr_code.html @@ -20,7 +20,7 @@ SPDX-License-Identifier: GPL-3.0-or-later