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>
-<%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>
<%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>
+<%def name="modify_this_page_vars()">
+ ${parent.modify_this_page_vars()}
+
+%def>
+
${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 = {}