Remove several references to "buefy" name

class methods, template filenames, etc.

also made various edits per newer conventions
This commit is contained in:
Lance Edgar 2024-04-14 19:54:29 -05:00
parent 96ba039299
commit c036932ce4
50 changed files with 373 additions and 361 deletions

View file

@ -2,7 +2,7 @@
################################################################################
#
# Rattail -- Retail Software Framework
# Copyright © 2010-2023 Lance Edgar
# Copyright © 2010-2024 Lance Edgar
#
# This file is part of Rattail.
#
@ -32,23 +32,18 @@ import logging
import socket
import subprocess
import tempfile
import warnings
import json
import markdown
import sqlalchemy as sa
from sqlalchemy import orm
from rattail.db import model, Session as RattailSession
from rattail.db.util import short_session
from rattail.threads import Thread
from rattail.util import prettify, simple_error
from rattail.progress import SocketProgress
from rattail.util import simple_error
import colander
import deform
from deform import widget as dfwidget
from pyramid.renderers import render_to_response
from pyramid.response import FileResponse
from webhelpers2.html import HTML, tags
from tailbone import forms, grids
@ -115,7 +110,7 @@ class BatchMasterView(MasterView):
}
def __init__(self, request):
super(BatchMasterView, self).__init__(request)
super().__init__(request)
self.batch_handler = self.get_handler()
# TODO: deprecate / remove this (?)
self.handler = self.batch_handler
@ -167,7 +162,7 @@ class BatchMasterView(MasterView):
return self.rattail_config.batch_filepath(batch.batch_key, batch.uuid, filename)
def template_kwargs_view(self, **kwargs):
kwargs = super(BatchMasterView, self).template_kwargs_view(**kwargs)
kwargs = super().template_kwargs_view(**kwargs)
batch = kwargs['instance']
kwargs['batch'] = batch
kwargs['handler'] = self.handler
@ -195,8 +190,8 @@ class BatchMasterView(MasterView):
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))
g.render_table_element(data_prop='statusBreakdownData',
empty_labels=True))
return kwargs
@ -288,7 +283,8 @@ class BatchMasterView(MasterView):
return not batch.executed and not batch.complete
def configure_grid(self, g):
super(BatchMasterView, self).configure_grid(g)
super().configure_grid(g)
model = self.model
# created_by
CreatedBy = orm.aliased(model.User)
@ -337,7 +333,7 @@ class BatchMasterView(MasterView):
return batch.id_str
def configure_form(self, f):
super(BatchMasterView, self).configure_form(f)
super().configure_form(f)
# id
f.set_readonly('id')
@ -436,9 +432,9 @@ class BatchMasterView(MasterView):
label = HTML.literal(
'{{{{ togglingBatchComplete ? "Working, please wait..." : "{}" }}}}'.format(label))
submit = self.make_buefy_button(label, is_primary=True,
native_type='submit',
**{':disabled': 'togglingBatchComplete'})
submit = self.make_button(label, is_primary=True,
native_type='submit',
**{':disabled': 'togglingBatchComplete'})
form = [
begin_form,
@ -603,7 +599,7 @@ class BatchMasterView(MasterView):
return True
def configure_row_grid(self, g):
super(BatchMasterView, self).configure_row_grid(g)
super().configure_row_grid(g)
g.set_sort_defaults('sequence')
g.set_link('sequence')
@ -644,7 +640,7 @@ class BatchMasterView(MasterView):
if batch.executed:
self.request.session.flash("You cannot add new rows to a batch which has been executed")
return self.redirect(self.get_action_url('view', batch))
return super(BatchMasterView, self).create_row()
return super().create_row()
def save_create_row_form(self, form):
batch = self.get_instance()
@ -657,7 +653,7 @@ class BatchMasterView(MasterView):
self.handler.refresh_row(row)
def configure_row_form(self, f):
super(BatchMasterView, self).configure_row_form(f)
super().configure_row_form(f)
# sequence
f.set_readonly('sequence')
@ -681,9 +677,9 @@ 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)
return self.make_buefy_button("New Row", url=url,
is_primary=True,
icon_left='plus')
return self.make_button("New Row", url=url,
is_primary=True,
icon_left='plus')
def make_batch_row_grid_tools(self, batch):
pass
@ -719,7 +715,7 @@ class BatchMasterView(MasterView):
kwargs['main_actions'] = actions
return super(BatchMasterView, self).make_row_grid_kwargs(**kwargs)
return super().make_row_grid_kwargs(**kwargs)
def make_row_grid_tools(self, batch):
return (self.make_default_row_grid_tools(batch) or '') + (self.make_batch_row_grid_tools(batch) or '')
@ -852,8 +848,11 @@ class BatchMasterView(MasterView):
labels = kwargs.setdefault('labels', {})
labels[field.name] = field.title
# auto-convert select widgets for buefy theme
# auto-convert select widgets for theme
if isinstance(field.widget, forms.widgets.PlainSelectWidget):
warnings.warn("PlainSelectWidget is deprecated; "
"please use deform.widget.SelectWidget instead",
DeprecationWarning)
field.widget = dfwidget.SelectWidget(values=field.widget.values)
if not schema:
@ -1022,7 +1021,8 @@ class BatchMasterView(MasterView):
cxn.close()
def catchup_versions(self, port, batch_uuid, username, *models):
with short_session() as s:
app = self.get_rattail_app()
with app.short_session() as s:
batch = s.get(self.model_class, batch_uuid)
batch_id = batch.id_str
description = str(batch)
@ -1048,8 +1048,10 @@ class BatchMasterView(MasterView):
"""
Thread target for populating batch data with progress indicator.
"""
app = self.get_rattail_app()
model = self.model
# mustn't use tailbone web session here
session = RattailSession()
session = app.make_session()
batch = session.get(self.model_class, batch_uuid)
user = session.get(model.User, user_uuid)
try:
@ -1107,7 +1109,9 @@ class BatchMasterView(MasterView):
# Refresh data for the batch, with progress. Note that we must use the
# rattail session here; can't use tailbone because it has web request
# transaction binding etc.
session = RattailSession()
app = self.get_rattail_app()
model = self.model
session = app.make_session()
batch = session.get(self.model_class, batch_uuid)
cognizer = session.get(model.User, user_uuid) if user_uuid else None
try:
@ -1160,7 +1164,9 @@ class BatchMasterView(MasterView):
"""
Thread target for refreshing multiple batches with progress indicator.
"""
session = RattailSession()
app = self.get_rattail_app()
model = self.model
session = app.make_session()
batches = batches.with_session(session).all()
user = session.get(model.User, user_uuid)
try:
@ -1257,7 +1263,7 @@ class BatchMasterView(MasterView):
self.handler.do_remove_row(row)
def delete_row_objects(self, rows):
deleted = super(BatchMasterView, self).delete_row_objects(rows)
deleted = super().delete_row_objects(rows)
batch = self.get_instance()
# decrement rowcount for batch
@ -1300,7 +1306,9 @@ class BatchMasterView(MasterView):
# Execute the batch, with progress. Note that we must use the rattail
# session here; can't use tailbone because it has web request
# transaction binding etc.
session = RattailSession()
app = self.get_rattail_app()
model = self.model
session = app.make_session()
batch = self.get_instance_for_key(key, session)
user = session.get(model.User, user_uuid)
try:
@ -1375,7 +1383,9 @@ class BatchMasterView(MasterView):
"""
Thread target for executing multiple batches with progress indicator.
"""
session = RattailSession()
app = self.get_rattail_app()
model = self.model
session = app.make_session()
batches = batches.with_session(session).all()
user = session.get(model.User, user_uuid)
try:
@ -1415,7 +1425,7 @@ class BatchMasterView(MasterView):
return self.get_index_url()
def get_row_csv_fields(self):
fields = super(BatchMasterView, self).get_row_csv_fields()
fields = super().get_row_csv_fields()
fields = [field for field in fields
if field not in ('uuid', 'batch_uuid', 'removed')]
return fields
@ -1538,7 +1548,7 @@ class FileBatchMasterView(BatchMasterView):
return uploads
def configure_form(self, f):
super(FileBatchMasterView, self).configure_form(f)
super().configure_form(f)
batch = f.model_instance
# filename

View file

@ -2,7 +2,7 @@
################################################################################
#
# Rattail -- Retail Software Framework
# Copyright © 2010-2023 Lance Edgar
# Copyright © 2010-2024 Lance Edgar
#
# This file is part of Rattail.
#
@ -26,12 +26,12 @@ Views for handheld batches
from collections import OrderedDict
from rattail.db import model
from rattail.db.model import HandheldBatch, HandheldBatchRow
import colander
from deform import widget as dfwidget
from webhelpers2.html import tags
from tailbone import forms
from tailbone.views.batch import FileBatchMasterView
@ -46,14 +46,14 @@ class ExecutionOptions(colander.Schema):
action = colander.SchemaNode(
colander.String(),
validator=colander.OneOf(ACTION_OPTIONS),
widget=forms.widgets.PlainSelectWidget(values=ACTION_OPTIONS.items()))
widget=dfwidget.SelectWidget(values=ACTION_OPTIONS.items()))
class HandheldBatchView(FileBatchMasterView):
"""
Master view for handheld batches.
"""
model_class = model.HandheldBatch
model_class = HandheldBatch
default_handler_spec = 'rattail.batch.handheld:HandheldBatchHandler'
model_title_plural = "Handheld Batches"
route_prefix = 'batch.handheld'
@ -61,7 +61,7 @@ class HandheldBatchView(FileBatchMasterView):
execution_options_schema = ExecutionOptions
editable = False
model_row_class = model.HandheldBatchRow
model_row_class = HandheldBatchRow
rows_creatable = False
rows_editable = True
@ -116,7 +116,7 @@ class HandheldBatchView(FileBatchMasterView):
]
def configure_grid(self, g):
super(HandheldBatchView, self).configure_grid(g)
super().configure_grid(g)
device_types = OrderedDict(sorted(self.enum.HANDHELD_DEVICE_TYPE.items(),
key=lambda item: item[1]))
g.set_enum('device_type', device_types)
@ -126,7 +126,7 @@ class HandheldBatchView(FileBatchMasterView):
return 'notice'
def configure_form(self, f):
super(HandheldBatchView, self).configure_form(f)
super().configure_form(f)
batch = f.model_instance
# device_type
@ -156,13 +156,13 @@ class HandheldBatchView(FileBatchMasterView):
return tags.link_to(text, url)
def get_batch_kwargs(self, batch):
kwargs = super(HandheldBatchView, self).get_batch_kwargs(batch)
kwargs = super().get_batch_kwargs(batch)
kwargs['device_type'] = batch.device_type
kwargs['device_name'] = batch.device_name
return kwargs
def configure_row_grid(self, g):
super(HandheldBatchView, self).configure_row_grid(g)
super().configure_row_grid(g)
g.set_type('cases', 'quantity')
g.set_type('units', 'quantity')
g.set_label('brand_name', "Brand")
@ -172,7 +172,7 @@ class HandheldBatchView(FileBatchMasterView):
return 'warning'
def configure_row_form(self, f):
super(HandheldBatchView, self).configure_row_form(f)
super().configure_row_form(f)
# readonly fields
f.set_readonly('upc')
@ -188,7 +188,7 @@ class HandheldBatchView(FileBatchMasterView):
return self.request.route_url('batch.inventory.view', uuid=result.uuid)
elif kwargs['action'] == 'make_label_batch':
return self.request.route_url('labels.batch.view', uuid=result.uuid)
return super(HandheldBatchView, self).get_execute_success_url(batch)
return super().get_execute_success_url(batch)
def get_execute_results_success_url(self, result, **kwargs):
if result is True:

View file

@ -2,7 +2,7 @@
################################################################################
#
# Rattail -- Retail Software Framework
# Copyright © 2010-2023 Lance Edgar
# Copyright © 2010-2024 Lance Edgar
#
# This file is part of Rattail.
#
@ -206,7 +206,7 @@ class POSBatchView(BatchMasterView):
)
return HTML.literal(
g.render_buefy_table_element(data_prop='taxesData'))
g.render_table_element(data_prop='taxesData'))
def template_kwargs_view(self, **kwargs):
kwargs = super().template_kwargs_view(**kwargs)

View file

@ -2,7 +2,7 @@
################################################################################
#
# Rattail -- Retail Software Framework
# Copyright © 2010-2023 Lance Edgar
# Copyright © 2010-2024 Lance Edgar
#
# This file is part of Rattail.
#
@ -26,12 +26,12 @@ Views for generic product batches
from collections import OrderedDict
from rattail.db import model
from rattail.db.model import ProductBatch, ProductBatchRow
import colander
from deform import widget as dfwidget
from webhelpers2.html import HTML
from tailbone import forms
from tailbone.views.batch import BatchMasterView
@ -46,15 +46,15 @@ class ExecutionOptions(colander.Schema):
action = colander.SchemaNode(
colander.String(),
validator=colander.OneOf(ACTION_OPTIONS),
widget=forms.widgets.PlainSelectWidget(values=ACTION_OPTIONS.items()))
widget=dfwidget.SelectWidget(values=ACTION_OPTIONS.items()))
class ProductBatchView(BatchMasterView):
"""
Master view for product batches.
"""
model_class = model.ProductBatch
model_row_class = model.ProductBatchRow
model_class = ProductBatch
model_row_class = ProductBatchRow
default_handler_spec = 'rattail.batch.product:ProductBatchHandler'
route_prefix = 'batch.product'
url_prefix = '/batches/product'
@ -129,7 +129,7 @@ class ProductBatchView(BatchMasterView):
]
def configure_form(self, f):
super(ProductBatchView, self).configure_form(f)
super().configure_form(f)
# input_filename
if self.creating:
@ -139,7 +139,8 @@ class ProductBatchView(BatchMasterView):
f.set_renderer('input_filename', self.render_downloadable_file)
def configure_row_grid(self, g):
super(ProductBatchView, self).configure_row_grid(g)
super().configure_row_grid(g)
model = self.model
g.set_joiner('vendor', lambda q: q.outerjoin(model.Vendor))
g.set_sorter('vendor', model.Vendor.name)
@ -165,7 +166,7 @@ class ProductBatchView(BatchMasterView):
return 'warning'
def configure_row_form(self, f):
super(ProductBatchView, self).configure_row_form(f)
super().configure_row_form(f)
f.set_type('upc', 'gpc')
@ -204,10 +205,10 @@ class ProductBatchView(BatchMasterView):
return self.request.route_url('labels.batch.view', uuid=result.uuid)
elif kwargs['action'] == 'make_pricing_batch':
return self.request.route_url('batch.pricing.view', uuid=result.uuid)
return super(ProductBatchView, self).get_execute_success_url(batch)
return super().get_execute_success_url(batch)
def get_row_csv_fields(self):
fields = super(ProductBatchView, self).get_row_csv_fields()
fields = super().get_row_csv_fields()
if 'vendor_uuid' in fields:
i = fields.index('vendor_uuid')
@ -273,12 +274,12 @@ class ProductBatchView(BatchMasterView):
data['report_name'] = (report.name or '') if report else ''
def get_row_csv_row(self, row, fields):
csvrow = super(ProductBatchView, self).get_row_csv_row(row, fields)
csvrow = super().get_row_csv_row(row, fields)
self.supplement_row_data(row, fields, csvrow)
return csvrow
def get_row_xlsx_row(self, row, fields):
xlrow = super(ProductBatchView, self).get_row_xlsx_row(row, fields)
xlrow = super().get_row_xlsx_row(row, fields)
self.supplement_row_data(row, fields, xlrow)
return xlrow