From 2f4877a264b4ee2ea9746fb16235cc0284b7a4d3 Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Fri, 6 Oct 2023 15:53:17 -0500 Subject: [PATCH] Add "mark complete" button for inventory batch row entry page --- .../batch/inventory/desktop_form.mako | 65 +++++++++++++++---- tailbone/views/batch/inventory.py | 16 +++-- 2 files changed, 65 insertions(+), 16 deletions(-) diff --git a/tailbone/templates/batch/inventory/desktop_form.mako b/tailbone/templates/batch/inventory/desktop_form.mako index 2a853f4f..9f13cbf9 100644 --- a/tailbone/templates/batch/inventory/desktop_form.mako +++ b/tailbone/templates/batch/inventory/desktop_form.mako @@ -3,9 +3,35 @@ <%def name="title()">Inventory Form -<%def name="context_menu_items()"> - ${parent.context_menu_items()} -
  • ${h.link_to("Back to Inventory Batch", url('batch.inventory.view', uuid=batch.uuid))}
  • +<%def name="object_helpers()"> + <%def name="render_form()"> @@ -123,6 +149,7 @@ let ${form.component_studly} = { template: '#${form.component}-template', + mixins: [SimpleRequestMixin], mounted() { this.$refs.productUPC.focus() @@ -195,15 +222,9 @@ let params = { upc: this.productUPC, } - this.$http.get(url, {params: params}).then(response => { + this.simpleGET(url, params, response => { - if (response.data.error) { - alert(response.data.error) - if (response.data.redirect) { - location.href = response.data.redirect - } - - } else if (response.data.product.uuid) { + if (response.data.product.uuid) { this.productUPC = response.data.product.upc_pretty this.productInfo = response.data.product @@ -238,6 +259,19 @@ } else { ## this.productNotFound = true alert("Product not found!") + + // focus/select UPC entry + this.$refs.productUPC.focus() + // nb. must traverse into the element + this.$refs.productUPC.$el.firstChild.select() + } + + }, response => { + if (response.data.error) { + alert(response.data.error) + if (response.data.redirect) { + location.href = response.data.redirect + } } }) }, @@ -263,5 +297,14 @@ +<%def name="modify_this_page_vars()"> + ${parent.modify_this_page_vars()} + + + ${parent.body()} diff --git a/tailbone/views/batch/inventory.py b/tailbone/views/batch/inventory.py index 92f0b2d4..e9f72ceb 100644 --- a/tailbone/views/batch/inventory.py +++ b/tailbone/views/batch/inventory.py @@ -228,7 +228,7 @@ class InventoryBatchView(BatchMasterView): Desktop workflow view for adding items to inventory batch. """ batch = self.get_instance() - if batch.executed: + if batch.executed or batch.complete: return self.redirect(self.get_action_url('view', batch)) schema = DesktopForm().bind(session=self.Session()) @@ -360,11 +360,17 @@ class InventoryBatchView(BatchMasterView): # TODO: deprecate / remove (?) def find_product(self, entry): - lookup_by_code = self.rattail_config.getbool( - 'tailbone', 'inventory.lookup_by_code', default=False) + lookup_fields = [ + 'uuid', + '_product_key_', + ] - return self.handler.locate_product_for_entry( - self.Session(), entry, lookup_by_code=lookup_by_code) + if self.rattail_config.getbool('tailbone', 'inventory.lookup_by_code', + default=False): + lookup_fields.append('alt_code') + + return self.handler.locate_product_for_entry(self.Session(), entry, + lookup_fields=lookup_fields) def product_info(self, product): data = {}