diff --git a/tailbone/templates/batch/vendorcatalog/configure.mako b/tailbone/templates/batch/vendorcatalog/configure.mako index e4fa346a..1e6309f4 100644 --- a/tailbone/templates/batch/vendorcatalog/configure.mako +++ b/tailbone/templates/batch/vendorcatalog/configure.mako @@ -3,6 +3,19 @@ <%def name="form_content()"> ${self.input_file_templates_section()} + +

Options

+
+ + + + Allow "future" cost changes + + + +
diff --git a/tailbone/views/batch/vendorcatalog.py b/tailbone/views/batch/vendorcatalog.py index dfd03ac9..733f14b5 100644 --- a/tailbone/views/batch/vendorcatalog.py +++ b/tailbone/views/batch/vendorcatalog.py @@ -54,13 +54,15 @@ class VendorCatalogView(FileBatchMasterView): route_prefix = 'vendorcatalogs' url_prefix = '/vendors/catalogs' template_prefix = '/batch/vendorcatalog' - editable = False + bulk_deletable = True + results_executable = True rows_bulk_deletable = True has_input_file_templates = True configurable = True labels = { 'vendor_id': "Vendor ID", + 'parser_key': "Parser", } grid_columns = [ @@ -172,7 +174,9 @@ class VendorCatalogView(FileBatchMasterView): 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") + else: + f.set_readonly('parser_key') + f.set_renderer('parser_key', self.render_parser_key) # vendor f.set_renderer('vendor', self.render_vendor) @@ -203,11 +207,23 @@ class VendorCatalogView(FileBatchMasterView): else: f.set_readonly('vendor') - # effective - if self.creating: - f.remove('effective') - else: - f.set_readonly('effective') + if self.batch_handler.allow_future(): + + # effective + f.set_type('effective', 'date_jquery') + + else: # future not allowed + f.remove('future', + 'effective') + + def render_parser_key(self, batch, field): + key = getattr(batch, field) + if not key: + return + app = self.get_rattail_app() + vendor_handler = app.get_vendor_handler() + parser = vendor_handler.get_catalog_parser(key) + return parser.display def template_kwargs_create(self, **kwargs): use_buefy = self.get_use_buefy() @@ -254,7 +270,9 @@ class VendorCatalogView(FileBatchMasterView): kwargs['vendor_id'] = batch.vendor_id if batch.vendor_name: kwargs['vendor_name'] = batch.vendor_name - kwargs['future'] = batch.future + if self.batch_handler.allow_future(): + kwargs['future'] = batch.future + kwargs['effective'] = batch.effective return kwargs def configure_row_grid(self, g): @@ -316,6 +334,18 @@ class VendorCatalogView(FileBatchMasterView): return kwargs + def configure_get_simple_settings(self): + settings = super(VendorCatalogView, self).configure_get_simple_settings() or [] + settings.extend([ + + # key field + {'section': 'rattail.batch', + 'option': 'vendor_catalog.allow_future', + 'type': bool}, + + ]) + return settings + # TODO: deprecate / remove this VendorCatalogsView = VendorCatalogView