From b9fa324bb47f970a283d7edd526be3bda3ab18ae Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Wed, 9 Mar 2022 18:26:27 -0600 Subject: [PATCH] Cleanup view config syntax for vendor catalog batch also make sure vendor autocomplete url exists, before using that widget. this can be an issue when app deals "directly" with POS when making the batch etc. --- tailbone/views/batch/vendorcatalog.py | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/tailbone/views/batch/vendorcatalog.py b/tailbone/views/batch/vendorcatalog.py index 3661dc25..f1dd9754 100644 --- a/tailbone/views/batch/vendorcatalog.py +++ b/tailbone/views/batch/vendorcatalog.py @@ -208,7 +208,17 @@ class VendorCatalogView(FileBatchMasterView): if self.creating and 'vendor' in f: f.replace('vendor', 'vendor_uuid') f.set_label('vendor_uuid', "Vendor") + + # should we use dropdown or autocomplete? note that if + # autocomplete is to be used, we also must make sure we + # have an autocomplete url registered use_dropdown = vendor_handler.choice_uses_dropdown() + if not use_dropdown: + try: + vendors_url = self.request.route_url('vendors.autocomplete') + except KeyError: + use_dropdown = True + if use_dropdown: vendors = self.Session.query(model.Vendor)\ .order_by(model.Vendor.id) @@ -225,7 +235,6 @@ class VendorCatalogView(FileBatchMasterView): self.request.POST['vendor_uuid']) if vendor: vendor_display = six.text_type(vendor) - vendors_url = self.request.route_url('vendors.autocomplete') f.set_widget('vendor_uuid', forms.widgets.JQueryAutocompleteWidget( field_display=vendor_display, @@ -328,6 +337,11 @@ class VendorCatalogView(FileBatchMasterView): g.set_label('unit_cost', "New Cost") g.set_label('unit_cost_diff', "Diff. $") + g.set_link('upc') + g.set_link('brand') + g.set_link('description') + g.set_link('vendor_code') + def row_grid_extra_class(self, row, i): if row.status_code == row.STATUS_PRODUCT_NOT_FOUND: return 'warning' @@ -422,5 +436,12 @@ class VendorCatalogView(FileBatchMasterView): VendorCatalogsView = VendorCatalogView -def includeme(config): +def defaults(config, **kwargs): + base = globals() + + VendorCatalogView = kwargs.get('VendorCatalogView', base['VendorCatalogView']) VendorCatalogView.defaults(config) + + +def includeme(config): + defaults(config)