Add config for supported vendor catalog parsers

also explicitly set "native value" for all configuration checkbox
fields, since apparently it will send `'false'` by default...
This commit is contained in:
Lance Edgar 2022-01-08 13:35:59 -06:00
parent 2ce7c93aeb
commit dc28b1337d
8 changed files with 92 additions and 0 deletions

View file

@ -39,6 +39,7 @@ from webhelpers2.html import tags
from tailbone import forms
from tailbone.views.batch import FileBatchMasterView
from tailbone.diffs import Diff
from tailbone.db import Session
log = logging.getLogger(__name__)
@ -346,6 +347,47 @@ class VendorCatalogView(FileBatchMasterView):
])
return settings
def configure_get_context(self):
context = super(VendorCatalogView, self).configure_get_context()
app = self.get_rattail_app()
vendor_handler = app.get_vendor_handler()
Parsers = vendor_handler.get_all_catalog_parsers()
Supported = vendor_handler.get_supported_catalog_parsers()
context['catalog_parsers'] = Parsers
context['catalog_parsers_data'] = dict([(Parser.key, Parser in Supported)
for Parser in Parsers])
return context
def configure_gather_settings(self, data):
settings = super(VendorCatalogView, self).configure_gather_settings(data)
app = self.get_rattail_app()
vendor_handler = app.get_vendor_handler()
supported = []
for Parser in vendor_handler.get_all_catalog_parsers():
name = 'catalog_parser_{}'.format(Parser.key)
if data.get(name) == 'true':
supported.append(Parser.key)
settings.append({'name': 'rattail.vendors.supported_catalog_parsers',
'value': ', '.join(supported)})
return settings
def configure_remove_settings(self):
super(VendorCatalogView, self).configure_remove_settings()
model = self.model
names = [
'rattail.vendors.supported_catalog_parsers',
'tailbone.batch.vendorcatalog.supported_parsers', # deprecated
]
Session().query(model.Setting)\
.filter(model.Setting.name.in_(names))\
.delete(synchronize_session=False)
# TODO: deprecate / remove this
VendorCatalogsView = VendorCatalogView