Remove all deprecated use_buefy logic

also remove some static files no longer used, etc.
This commit is contained in:
Lance Edgar 2023-02-03 12:05:17 -06:00
parent 01e5eee981
commit 9faaea881d
112 changed files with 2079 additions and 7039 deletions

View file

@ -24,8 +24,6 @@
Base views for maintaining "new-style" batches.
"""
from __future__ import unicode_literals, absolute_import
import os
import sys
import json
@ -37,7 +35,6 @@ import tempfile
from six import StringIO
import json
import six
import markdown
import sqlalchemy as sa
from sqlalchemy import orm
@ -172,7 +169,6 @@ class BatchMasterView(MasterView):
def template_kwargs_view(self, **kwargs):
kwargs = super(BatchMasterView, self).template_kwargs_view(**kwargs)
use_buefy = self.get_use_buefy()
batch = kwargs['instance']
kwargs['batch'] = batch
kwargs['handler'] = self.handler
@ -194,30 +190,22 @@ class BatchMasterView(MasterView):
breakdown = self.make_status_breakdown(batch)
if use_buefy:
factory = self.get_grid_factory()
g = factory('batch_row_status_breakdown', [],
columns=['title', 'count'])
g.set_click_handler('title', "autoFilterStatus(props.row)")
kwargs['status_breakdown_data'] = breakdown
kwargs['status_breakdown_grid'] = HTML.literal(
g.render_buefy_table_element(data_prop='statusBreakdownData',
empty_labels=True))
else:
kwargs['status_breakdown'] = [
(status['title'], status['count'])
for status in breakdown]
factory = self.get_grid_factory()
g = factory('batch_row_status_breakdown', [],
columns=['title', 'count'])
g.set_click_handler('title', "autoFilterStatus(props.row)")
kwargs['status_breakdown_data'] = breakdown
kwargs['status_breakdown_grid'] = HTML.literal(
g.render_buefy_table_element(data_prop='statusBreakdownData',
empty_labels=True))
return kwargs
def make_upload_worksheet_form(self, batch):
action_url = self.get_action_url('upload_worksheet', batch)
use_buefy = self.get_use_buefy()
form = forms.Form(schema=UploadWorksheet(),
request=self.request,
action_url=action_url,
use_buefy=use_buefy,
component='upload-worksheet-form')
form.set_type('worksheet_file', 'file')
# TODO: must set these to avoid some default Buefy code
@ -431,7 +419,6 @@ class BatchMasterView(MasterView):
return dict(batch.params or {})
def render_complete(self, batch, field):
use_buefy = self.get_use_buefy()
text = "Yes" if batch.complete else "No"
if batch.executed or not self.has_perm('edit'):
@ -446,18 +433,13 @@ class BatchMasterView(MasterView):
url = self.get_action_url('toggle_complete', batch)
kwargs = {'@submit': 'togglingBatchComplete = true'}
if not use_buefy:
kwargs['class_'] = 'autodisable'
begin_form = tags.form(url, **kwargs)
if use_buefy:
label = HTML.literal(
'{{{{ togglingBatchComplete ? "Working, please wait..." : "{}" }}}}'.format(label))
submit = self.make_buefy_button(label, is_primary=True,
native_type='submit',
**{':disabled': 'togglingBatchComplete'})
else:
submit = tags.submit('submit', label)
label = HTML.literal(
'{{{{ togglingBatchComplete ? "Working, please wait..." : "{}" }}}}'.format(label))
submit = self.make_buefy_button(label, is_primary=True,
native_type='submit',
**{':disabled': 'togglingBatchComplete'})
form = [
begin_form,
@ -467,23 +449,16 @@ class BatchMasterView(MasterView):
tags.end_form(),
]
if use_buefy:
text = HTML.tag('div', class_='control', c=text)
form = HTML.tag('div', class_='control', c=form)
content = [
HTML.tag('nav', class_='level',
c=[HTML.tag('div', class_='level-left', c=[
text,
HTML.literal('     '),
form,
])]),
]
else:
content = [
text,
HTML.literal('   '),
] + form
text = HTML.tag('div', class_='control', c=text)
form = HTML.tag('div', class_='control', c=form)
content = [
HTML.tag('nav', class_='level',
c=[HTML.tag('div', class_='level-left', c=[
text,
HTML.literal('     '),
form,
])]),
]
return HTML.tag('div', c=content)
@ -491,7 +466,7 @@ class BatchMasterView(MasterView):
user = getattr(batch, field)
if not user:
return ""
title = six.text_type(user)
title = str(user)
url = self.request.route_url('users.view', uuid=user.uuid)
return tags.link_to(title, url)
@ -513,7 +488,7 @@ class BatchMasterView(MasterView):
# TODO: this needs work yet surely...why is this an issue?
# treat 'filename' field specially, for some reason it can be a filedict?
if 'filename' in kwargs and not isinstance(kwargs['filename'], six.string_types):
if 'filename' in kwargs and not isinstance(kwargs['filename'], str):
kwargs['filename'] = '' # null not allowed
# TODO: is this still necessary with colander?
@ -533,7 +508,7 @@ class BatchMasterView(MasterView):
os.remove(upload['temp_path'])
os.rmdir(upload['tempdir'])
for key, upload in six.iteritems(uploads):
for key, upload in uploads.items():
if isinstance(upload, dict):
process(upload, key)
else:
@ -657,7 +632,7 @@ class BatchMasterView(MasterView):
code = row.status_code
if code is None:
return ""
text = self.get_row_status_enum().get(code, six.text_type(code))
text = self.get_row_status_enum().get(code, str(code))
if row.status_text:
return HTML.tag('span', title=row.status_text, c=text)
return text
@ -707,21 +682,12 @@ class BatchMasterView(MasterView):
permission_prefix = self.get_permission_prefix()
if self.request.has_perm('{}.create_row'.format(permission_prefix)):
url = self.get_action_url('create_row', batch)
if self.get_use_buefy():
return self.make_buefy_button("New Row", url=url,
is_primary=True,
icon_left='plus')
else:
text = "Create a new {}".format(self.get_row_model_title())
link = tags.link_to(text, url)
return HTML.tag('p', c=[link])
return self.make_buefy_button("New Row", url=url,
is_primary=True,
icon_left='plus')
def make_batch_row_grid_tools(self, batch):
if self.get_use_buefy():
return
if self.rows_bulk_deletable and not batch.executed and self.request.has_perm('{}.delete_rows'.format(self.get_permission_prefix())):
url = self.request.route_url('{}.delete_rows'.format(self.get_route_prefix()), uuid=batch.uuid)
return HTML.tag('p', c=[tags.link_to("Delete all rows matching current search", url)])
pass
def make_row_grid_kwargs(self, **kwargs):
"""
@ -733,21 +699,19 @@ class BatchMasterView(MasterView):
# TODO: most of this logic is copied from MasterView, should refactor/merge somehow...
if 'main_actions' not in kwargs:
actions = []
use_buefy = self.get_use_buefy()
# view action
if self.rows_viewable:
view = lambda r, i: self.get_row_action_url('view', r)
icon = 'eye' if use_buefy else 'zoomin'
actions.append(self.make_action('view', icon=icon, url=view))
actions.append(self.make_action('view', icon='eye', url=view))
# edit and delete are NOT allowed after execution, or if batch is "complete"
if not batch.executed and not batch.complete:
# edit action
if self.rows_editable and self.has_perm('edit_row'):
icon = 'edit' if use_buefy else 'pencil'
actions.append(self.make_action('edit', icon=icon, url=self.row_edit_action_url))
actions.append(self.make_action('edit', icon='edit',
url=self.row_edit_action_url))
# delete action
if self.rows_deletable and self.has_perm('delete_row'):
@ -793,7 +757,7 @@ class BatchMasterView(MasterView):
# nb. must make new session, separate from main thread
session = app.make_session()
batch = self.get_instance_for_key(key, session)
batch_str = six.text_type(batch)
batch_str = str(batch)
try:
# try to delete batch
@ -869,7 +833,6 @@ class BatchMasterView(MasterView):
"""
defaults = {}
route_prefix = self.get_route_prefix()
use_buefy = self.get_use_buefy()
schema = None
if self.has_execution_options(batch):
@ -891,13 +854,12 @@ class BatchMasterView(MasterView):
labels[field.name] = field.title
# auto-convert select widgets for buefy theme
if use_buefy and isinstance(field.widget, forms.widgets.PlainSelectWidget):
if isinstance(field.widget, forms.widgets.PlainSelectWidget):
field.widget = dfwidget.SelectWidget(values=field.widget.values)
if not schema:
schema = colander.Schema()
kwargs['use_buefy'] = use_buefy
kwargs['component'] = 'execute-form'
form = forms.Form(schema=schema, request=self.request, defaults=defaults, **kwargs)
self.configure_execute_form(form)
@ -1051,8 +1013,7 @@ class BatchMasterView(MasterView):
data = json.dumps({
'everything_complete': True,
})
if six.PY3:
data = data.encode('utf_8')
data = data.encode('utf_8')
cxn.send(data)
cxn.send(suffix)
cxn.close()
@ -1061,7 +1022,7 @@ class BatchMasterView(MasterView):
with short_session() as s:
batch = s.query(self.model_class).get(batch_uuid)
batch_id = batch.id_str
description = six.text_type(batch)
description = str(batch)
self.launch_subprocess(
port=port, username=username,

View file

@ -24,8 +24,6 @@
Views for importer batches
"""
from __future__ import unicode_literals, absolute_import
import sqlalchemy as sa
from rattail.db import model
@ -139,7 +137,6 @@ class ImporterBatchView(BatchMasterView):
def configure_row_grid(self, g):
super(ImporterBatchView, self).configure_row_grid(g)
use_buefy = self.get_use_buefy()
def make_filter(field, **kwargs):
column = getattr(self.current_row_table.c, field)
@ -150,11 +147,8 @@ class ImporterBatchView(BatchMasterView):
# for some reason we have to do this differently for Buefy?
kwargs = {}
if not use_buefy:
kwargs['value_enum'] = self.enum.IMPORTER_BATCH_ROW_STATUS
make_filter('status_code', label="Status", **kwargs)
if use_buefy:
g.filters['status_code'].set_choices(self.enum.IMPORTER_BATCH_ROW_STATUS)
g.filters['status_code'].set_choices(self.enum.IMPORTER_BATCH_ROW_STATUS)
def make_sorter(field):
column = getattr(self.current_row_table.c, field)

View file

@ -24,14 +24,10 @@
Views for inventory batches
"""
from __future__ import unicode_literals, absolute_import
import re
import decimal
import logging
import six
from rattail import pod
from rattail.db import model
from rattail.db.util import make_full_description
@ -234,9 +230,8 @@ class InventoryBatchView(BatchMasterView):
if batch.executed:
return self.redirect(self.get_action_url('view', batch))
use_buefy = self.get_use_buefy()
schema = DesktopForm().bind(session=self.Session())
form = forms.Form(schema=schema, request=self.request, use_buefy=use_buefy)
form = forms.Form(schema=schema, request=self.request)
if self.request.method == 'POST':
if form.validate(newstyle=True):
@ -273,7 +268,7 @@ class InventoryBatchView(BatchMasterView):
else:
dform = form.make_deform_form()
msg = "Form did not validate: {}".format(six.text_type(dform.error))
msg = "Form did not validate: {}".format(str(dform.error))
self.request.session.flash(msg, 'error')
title = self.get_instance_title(batch)
@ -345,7 +340,7 @@ class InventoryBatchView(BatchMasterView):
upc = re.sub(r'\D', '', entry.strip())
if upc:
upc = GPC(upc)
result['upc'] = six.text_type(upc)
result['upc'] = str(upc)
result['upc_pretty'] = upc.pretty()
result['image_url'] = pod.get_image_url(self.rattail_config, upc)
@ -374,10 +369,10 @@ class InventoryBatchView(BatchMasterView):
data = {}
if product and (not product.deleted or self.request.has_perm('products.view_deleted')):
data['uuid'] = product.uuid
data['upc'] = six.text_type(product.upc)
data['upc'] = str(product.upc)
data['upc_pretty'] = product.upc.pretty()
data['full_description'] = product.full_description
data['brand_name'] = six.text_type(product.brand or '')
data['brand_name'] = str(product.brand or '')
data['description'] = product.description
data['size'] = product.size
data['case_quantity'] = 1 # default

View file

@ -2,7 +2,7 @@
################################################################################
#
# Rattail -- Retail Software Framework
# Copyright © 2010-2022 Lance Edgar
# Copyright © 2010-2023 Lance Edgar
#
# This file is part of Rattail.
#
@ -24,12 +24,8 @@
Views for maintaining vendor catalogs
"""
from __future__ import unicode_literals, absolute_import
import logging
import six
from rattail.db import model
import colander
@ -196,9 +192,6 @@ class VendorCatalogView(FileBatchMasterView):
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))
else:
f.set_readonly('parser_key')
@ -235,7 +228,7 @@ class VendorCatalogView(FileBatchMasterView):
vendor = self.Session.query(model.Vendor).get(
self.request.POST['vendor_uuid'])
if vendor:
vendor_display = six.text_type(vendor)
vendor_display = str(vendor)
f.set_widget('vendor_uuid',
forms.widgets.JQueryAutocompleteWidget(
field_display=vendor_display,
@ -275,35 +268,20 @@ class VendorCatalogView(FileBatchMasterView):
return parser.display
def template_kwargs_create(self, **kwargs):
use_buefy = self.get_use_buefy()
app = self.get_rattail_app()
vendor_handler = app.get_vendor_handler()
parsers = self.get_parsers()
parsers_data = {}
for parser in parsers:
if use_buefy:
pdata = {'key': parser.key,
'vendor_key': parser.vendor_key}
if parser.vendor_key:
vendor = vendor_handler.get_vendor(self.Session(),
parser.vendor_key)
if vendor:
pdata['vendor_uuid'] = vendor.uuid
pdata['vendor_name'] = vendor.name
parsers_data[parser.key] = pdata
else:
if parser.vendor_key:
vendor = vendor_handler.get_vendor(self.Session(),
parser.vendor_key)
if vendor:
parser.vendormap_value = "{{uuid: '{}', name: '{}'}}".format(
vendor.uuid, vendor.name.replace("'", "\\'"))
else:
log.warning("vendor '{}' not found for parser: {}".format(
parser.vendor_key, parser.key))
parser.vendormap_value = 'null'
else:
parser.vendormap_value = 'null'
pdata = {'key': parser.key,
'vendor_key': parser.vendor_key}
if parser.vendor_key:
vendor = vendor_handler.get_vendor(self.Session(),
parser.vendor_key)
if vendor:
pdata['vendor_uuid'] = vendor.uuid
pdata['vendor_name'] = vendor.name
parsers_data[parser.key] = pdata
kwargs['parsers'] = parsers
kwargs['parsers_data'] = parsers_data
return kwargs