diff --git a/tailbone/templates/custorders/create.mako b/tailbone/templates/custorders/create.mako
index f8b7b9cb..520ed0f4 100644
--- a/tailbone/templates/custorders/create.mako
+++ b/tailbone/templates/custorders/create.mako
@@ -489,6 +489,7 @@
@@ -816,6 +817,7 @@
items: ${json.dumps(order_items)|n},
editingItem: null,
showingItemDialog: false,
+ itemDialogTabIndex: 0,
productIsKnown: true,
productUUID: null,
productDisplay: null,
@@ -1105,7 +1107,7 @@
})
},
- submitBatchData(params, callback) {
+ submitBatchData(params, success, failure) {
let url = ${json.dumps(request.current_route_url())|n}
let headers = {
@@ -1115,8 +1117,17 @@
## TODO: should find a better way to handle CSRF token
this.$http.post(url, params, {headers: headers}).then((response) => {
- if (callback) {
- callback(response)
+ if (response.data.error) {
+ this.$buefy.toast.open({
+ message: response.data.error,
+ type: 'is-danger',
+ duration: 2000, // 2 seconds
+ })
+ if (failure) {
+ failure(response)
+ }
+ } else if (success) {
+ success(response)
}
}, response => {
this.$buefy.toast.open({
@@ -1377,6 +1388,7 @@
this.productPriceNeedsConfirmation = false
% endif
+ this.itemDialogTabIndex = 0
this.showingItemDialog = true
this.$nextTick(() => {
this.$refs.productAutocomplete.focus()
@@ -1405,6 +1417,7 @@
this.productPriceNeedsConfirmation = row.price_needs_confirmation
% endif
+ this.itemDialogTabIndex = 1
this.showingItemDialog = true
},
@@ -1492,6 +1505,8 @@
% if product_price_may_be_questionable:
this.productPriceNeedsConfirmation = false
% endif
+ }, response => {
+ this.clearProduct()
})
} else {
this.clearProduct()
diff --git a/tailbone/views/custorders/orders.py b/tailbone/views/custorders/orders.py
index 9065c330..1cc36aca 100644
--- a/tailbone/views/custorders/orders.py
+++ b/tailbone/views/custorders/orders.py
@@ -560,9 +560,13 @@ class CustomerOrderView(MasterView):
return self.handler.uom_choices_for_product(product)
def info_for_product(self, batch, data, product):
- info = self.handler.get_product_info(batch, product)
- info['url'] = self.request.route_url('products.view', uuid=info['uuid'])
- return info
+ try:
+ info = self.handler.get_product_info(batch, product)
+ except Exception as error:
+ return {'error': six.text_type(error)}
+ else:
+ info['url'] = self.request.route_url('products.view', uuid=info['uuid'])
+ return info
def normalize_batch(self, batch):
return {