diff --git a/tailbone/templates/batch/vendorcatalog/index.mako b/tailbone/templates/batch/vendorcatalog/index.mako index fa6e4a5a..1fac1170 100644 --- a/tailbone/templates/batch/vendorcatalog/index.mako +++ b/tailbone/templates/batch/vendorcatalog/index.mako @@ -3,6 +3,9 @@ <%def name="context_menu_items()"> ${parent.context_menu_items()} + % if generic_template_url and master.has_perm('create'): +
  • ${h.link_to("Download Generic Template", generic_template_url)}
  • + % endif % if h.route_exists(request, 'vendors') and request.has_perm('vendors.list'):
  • ${h.link_to("View Vendors", url('vendors'))}
  • % endif diff --git a/tailbone/views/batch/vendorcatalog.py b/tailbone/views/batch/vendorcatalog.py index adcf5dff..7a1a4153 100644 --- a/tailbone/views/batch/vendorcatalog.py +++ b/tailbone/views/batch/vendorcatalog.py @@ -135,7 +135,13 @@ class VendorCatalogView(FileBatchMasterView): def get_parsers(self): if not hasattr(self, 'parsers'): - self.parsers = sorted(iter_catalog_parsers(), key=lambda p: p.display) + parsers = sorted(iter_catalog_parsers(), key=lambda p: p.display) + supported = self.rattail_config.getlist( + 'tailbone', 'batch.vendorcatalog.supported_parsers') + if supported: + parsers = [parser for parser in parsers + if parser.key in supported] + self.parsers = parsers return self.parsers def configure_grid(self, g): @@ -176,8 +182,13 @@ class VendorCatalogView(FileBatchMasterView): if self.creating: if 'parser_key' not in f: f.insert_after('filename', 'parser_key') - values = [(p.key, p.display) for p in self.get_parsers()] - values.insert(0, ('', "(please choose)")) + parsers = self.get_parsers() + values = [(p.key, p.display) for p in parsers] + if len(values) == 1: + f.set_default('parser_key', parsers[0].key) + use_buefy = self.get_use_buefy() + if not use_buefy: + values.insert(0, ('', "(please choose)")) f.set_widget('parser_key', dfwidget.SelectWidget(values=values)) f.set_label('parser_key', "File Type") @@ -241,6 +252,11 @@ class VendorCatalogView(FileBatchMasterView): f.set_type('upc', 'gpc') f.set_type('discount_percent', 'percent') + def template_kwargs_index(self, **kwargs): + url = self.rattail_config.get('tailbone', 'batch.vendorcatalog.generic_template_url') + kwargs['generic_template_url'] = url + return kwargs + def template_kwargs_create(self, **kwargs): parsers = self.get_parsers() for parser in parsers: