Remove all views etc. for old-style batches

This commit is contained in:
Lance Edgar 2017-05-13 16:44:05 -05:00
parent 9e5b43ca66
commit 2d29174772
16 changed files with 45 additions and 906 deletions

View file

@ -26,14 +26,13 @@ Product Views
from __future__ import unicode_literals, absolute_import
import os
import re
import six
import sqlalchemy as sa
from sqlalchemy import orm
from rattail import enum, pod, sil, batches
from rattail import enum, pod, sil
from rattail.db import model, api, auth, Session as RattailSession
from rattail.gpc import GPC
from rattail.threads import Thread
@ -425,14 +424,6 @@ class ProductsView(MasterView):
"""
View for making a new batch from current product grid query.
"""
# maybe do legacy mode
enabled = self.rattail_config.getlist('rattail.pyramid', 'batches.providers')
if enabled:
supported = batches.get_providers()
providers = dict([(key, supported[key]) for key in enabled if key in supported])
return self.make_batch_legacy(providers)
# okay then, new-style it is
supported = self.get_supported_batches()
batch_options = []
for key, spec in list(supported.items()):
@ -512,65 +503,13 @@ class ProductsView(MasterView):
if batch.batch_key == 'pricing':
return self.request.route_url('batch.pricing.view', uuid=batch.uuid)
def make_batch_legacy(self, providers):
if self.request.method == 'POST':
provider_key = self.request.POST.get('provider')
if provider_key:
provider_factory = providers.get(provider_key)
if provider_factory:
provider = provider_factory(self.rattail_config)
if self.request.POST.get('params') == 'True':
provider.set_params(Session(), **self.request.POST)
else:
try:
url = self.request.route_url('batch_params.{}'.format(provider.name))
except KeyError:
pass
else:
self.request.session['referer'] = self.request.current_route_url()
return httpexceptions.HTTPFound(location=url)
progress = SessionProgress(self.request, 'products.batch')
thread = Thread(target=self.make_batch_thread_legacy, args=(provider, progress))
thread.start()
kwargs = {
'key': 'products.batch',
'cancel_url': self.request.route_url('products'),
'cancel_msg': "Batch creation was canceled.",
}
return self.render_progress(kwargs)
providers = [(p.name, p.description)
for p in sorted(providers.itervalues(),
key=lambda p: p.description)]
return {'legacy_mode': True, 'providers': providers}
def make_batch_thread_legacy(self, provider, progress):
"""
Threat target for making a batch from current products query.
"""
session = RattailSession()
products = self.get_effective_query(session)
batch = provider.make_batch(session, products, progress)
if not batch:
session.rollback()
session.close()
return
session.commit()
session.refresh(batch)
session.close()
progress.session.load()
progress.session['complete'] = True
progress.session['success_url'] = self.request.route_url('batch.read', uuid=batch.uuid)
progress.session['success_msg'] = 'Batch "{}" has been created.'.format(batch.description)
progress.session.save()
@classmethod
def defaults(cls, config):
route_prefix = cls.get_route_prefix()
url_prefix = cls.get_url_prefix()
template_prefix = cls.get_template_prefix()
permission_prefix = cls.get_permission_prefix()
model_title = cls.get_model_title()
# print labels
config.add_tailbone_permission('products', 'products.print_labels',
@ -581,9 +520,12 @@ class ProductsView(MasterView):
"View products marked as deleted")
# make batch from product query
config.add_route('products.create_batch', '/products/make-batch')
config.add_view(cls, attr='make_batch', route_name='products.create_batch',
renderer='/products/batch.mako', permission='batches.create')
config.add_tailbone_permission(permission_prefix, '{}.make_batch'.format(permission_prefix),
"Create batch from {} query".format(model_title))
config.add_route('{}.make_batch'.format(route_prefix), '{}/make-batch'.format(url_prefix))
config.add_view(cls, attr='make_batch', route_name='{}.make_batch'.format(route_prefix),
renderer='{}/batch.mako'.format(template_prefix),
permission='{}.make_batch'.format(permission_prefix))
# search (by upc)
config.add_route('products.search', '/products/search')