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:
parent
2ce7c93aeb
commit
dc28b1337d
8 changed files with 92 additions and 0 deletions
|
@ -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
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue