fix: format all code with black

and from now on should not deviate from that...
This commit is contained in:
Lance Edgar 2025-08-31 13:02:02 -05:00
parent bad6ded72d
commit a0b36a6384
12 changed files with 313 additions and 220 deletions

View file

@ -50,21 +50,26 @@ class NewOrderBatchHandler(base.NewOrderBatchHandler):
op_session = corepos.make_session_office_op()
# base query
query = op_session.query(op_model.CustomerClassic)\
.join(op_model.MemberInfo,
op_model.MemberInfo.card_number == op_model.CustomerClassic.card_number)
query = op_session.query(op_model.CustomerClassic).join(
op_model.MemberInfo,
op_model.MemberInfo.card_number == op_model.CustomerClassic.card_number,
)
# filter query
criteria = []
for word in term.split():
criteria.append(sa.or_(
op_model.CustomerClassic.first_name.ilike(f'%{word}%'),
op_model.CustomerClassic.last_name.ilike(f'%{word}%')))
criteria.append(
sa.or_(
op_model.CustomerClassic.first_name.ilike(f"%{word}%"),
op_model.CustomerClassic.last_name.ilike(f"%{word}%"),
)
)
query = query.filter(sa.and_(*criteria))
# sort query
query = query.order_by(op_model.CustomerClassic.first_name,
op_model.CustomerClassic.last_name)
query = query.order_by(
op_model.CustomerClassic.first_name, op_model.CustomerClassic.last_name
)
# get data
# TODO: need max_results option
@ -72,8 +77,8 @@ class NewOrderBatchHandler(base.NewOrderBatchHandler):
# get results
def result(customer):
return {'value': str(customer.card_number),
'label': str(customer)}
return {"value": str(customer.card_number), "label": str(customer)}
results = [result(c) for c in customers]
op_session.close()
@ -86,16 +91,23 @@ class NewOrderBatchHandler(base.NewOrderBatchHandler):
op_session = corepos.make_session_office_op()
if not batch.customer_id.isdigit():
raise ValueError(f"invalid CORE-POS customer card number: {batch.customer_id}")
raise ValueError(
f"invalid CORE-POS customer card number: {batch.customer_id}"
)
try:
customer = op_session.query(op_model.CustomerClassic)\
.join(op_model.MemberInfo,
op_model.MemberInfo.card_number == op_model.CustomerClassic.card_number)\
.filter(op_model.CustomerClassic.card_number == int(batch.customer_id))\
.filter(op_model.CustomerClassic.person_number == 1)\
.options(orm.joinedload(op_model.CustomerClassic.member_info))\
.one()
customer = (
op_session.query(op_model.CustomerClassic)
.join(
op_model.MemberInfo,
op_model.MemberInfo.card_number
== op_model.CustomerClassic.card_number,
)
.filter(op_model.CustomerClassic.card_number == int(batch.customer_id))
.filter(op_model.CustomerClassic.person_number == 1)
.options(orm.joinedload(op_model.CustomerClassic.member_info))
.one()
)
except orm.exc.NoResultFound:
raise ValueError(f"CORE-POS Customer not found: {batch.customer_id}")
@ -117,14 +129,16 @@ class NewOrderBatchHandler(base.NewOrderBatchHandler):
# filter query
criteria = []
for word in term.split():
criteria.append(sa.or_(
op_model.Product.brand.ilike(f'%{word}%'),
op_model.Product.description.ilike(f'%{word}%')))
criteria.append(
sa.or_(
op_model.Product.brand.ilike(f"%{word}%"),
op_model.Product.description.ilike(f"%{word}%"),
)
)
query = query.filter(sa.and_(*criteria))
# sort query
query = query.order_by(op_model.Product.brand,
op_model.Product.description)
query = query.order_by(op_model.Product.brand, op_model.Product.description)
# get data
# TODO: need max_results option
@ -132,10 +146,13 @@ class NewOrderBatchHandler(base.NewOrderBatchHandler):
# get results
def result(product):
return {'value': product.upc,
'label': self.app.make_full_name(product.brand,
product.description,
product.size)}
return {
"value": product.upc,
"label": self.app.make_full_name(
product.brand, product.description, product.size
),
}
results = [result(c) for c in products]
op_session.close()
@ -148,27 +165,29 @@ class NewOrderBatchHandler(base.NewOrderBatchHandler):
op_session = corepos.make_session_office_op()
try:
product = op_session.query(op_model.Product)\
.filter(op_model.Product.upc == product_id)\
.one()
product = (
op_session.query(op_model.Product)
.filter(op_model.Product.upc == product_id)
.one()
)
except orm.exc.NoResultFound:
raise ValueError(f"CORE-POS Product not found: {product_id}")
data = {
'product_id': product.upc,
'scancode': product.upc,
'brand_name': product.brand,
'description': product.description,
'size': product.size,
'full_description': self.app.make_full_name(product.brand,
product.description,
product.size),
'weighed': product.scale,
'special_order': False,
'department_id': product.department_number,
'department_name': product.department.name if product.department else None,
'case_size': self.get_case_size_for_external_product(product),
'unit_price_reg': self.get_unit_price_reg_for_external_product(product),
"product_id": product.upc,
"scancode": product.upc,
"brand_name": product.brand,
"description": product.description,
"size": product.size,
"full_description": self.app.make_full_name(
product.brand, product.description, product.size
),
"weighed": product.scale,
"special_order": False,
"department_id": product.department_number,
"department_name": product.department.name if product.department else None,
"case_size": self.get_case_size_for_external_product(product),
"unit_price_reg": self.get_unit_price_reg_for_external_product(product),
# TODO
# 'vendor_name': product.vendor_name,
# 'vendor_item_code': product.vendor_item_code,
@ -184,9 +203,11 @@ class NewOrderBatchHandler(base.NewOrderBatchHandler):
op_session = corepos.make_session_office_op()
try:
product = op_session.query(op_model.Product)\
.filter(op_model.Product.upc == row.product_id)\
.one()
product = (
op_session.query(op_model.Product)
.filter(op_model.Product.upc == row.product_id)
.one()
)
except orm.exc.NoResultFound:
raise ValueError(f"CORE-POS Product not found: {row.product_id}")
@ -217,9 +238,9 @@ class NewOrderBatchHandler(base.NewOrderBatchHandler):
if product.vendor_items:
item = product.vendor_items[0]
if item.units is not None:
return decimal.Decimal(f'{item.units:0.4f}')
return decimal.Decimal(f"{item.units:0.4f}")
def get_unit_price_reg_for_external_product(self, product):
""" """
if product.normal_price is not None:
return decimal.Decimal(f'{product.normal_price:0.3f}')
return decimal.Decimal(f"{product.normal_price:0.3f}")

View file

@ -33,15 +33,20 @@ class SideshowCoreposConfig(WuttaConfigExtension):
This establishes some config defaults specific to Sideshow-COREPOS.
"""
key = 'sideshow_corepos'
key = "sideshow_corepos"
def configure(self, config):
""" """
# batch handlers
config.setdefault(f'{config.appname}.batch.neworder.handler.spec',
'sideshow_corepos.batch.neworder:NewOrderBatchHandler')
config.setdefault(
f"{config.appname}.batch.neworder.handler.spec",
"sideshow_corepos.batch.neworder:NewOrderBatchHandler",
)
# web app menu
config.setdefault(f'{config.appname}.web.menus.handler.spec',
'sideshow_corepos.web.menus:SideshowMenuHandler')
config.setdefault(
f"{config.appname}.web.menus.handler.spec",
"sideshow_corepos.web.menus:SideshowMenuHandler",
)

View file

@ -26,4 +26,4 @@ Sideshow-COREPOS - Case/Special Order Tracker for CORE-POS
def includeme(config):
config.include('sideshow_corepos.web.views')
config.include("sideshow_corepos.web.views")

View file

@ -34,22 +34,25 @@ def main(global_config, **settings):
Make and return the WSGI app (Paste entry point).
"""
# prefer Sideshow templates over wuttaweb
settings.setdefault('mako.directories', [
'sideshow.web:templates',
'wuttaweb:templates',
])
settings.setdefault(
"mako.directories",
[
"sideshow.web:templates",
"wuttaweb:templates",
],
)
# make config objects
wutta_config = base.make_wutta_config(settings)
pyramid_config = base.make_pyramid_config(settings)
# configure DB sessions
if hasattr(wutta_config, 'core_office_op_engine'):
if hasattr(wutta_config, "core_office_op_engine"):
CoreOpSession.configure(bind=wutta_config.core_office_op_engine)
# bring in the rest of Sideshow
pyramid_config.include('sideshow.web')
pyramid_config.include('sideshow_corepos.web')
pyramid_config.include("sideshow.web")
pyramid_config.include("sideshow_corepos.web")
return pyramid_config.make_wsgi_app()

View file

@ -38,14 +38,16 @@ class SideshowMenuHandler(base.SideshowMenuHandler):
"""
menu = super().make_customers_menu(request, **kwargs)
menu['items'].extend([
{'type': 'sep'},
{
'title': "CORE-POS Members",
'route': 'corepos_members',
'perm': 'corepos_members.list',
},
])
menu["items"].extend(
[
{"type": "sep"},
{
"title": "CORE-POS Members",
"route": "corepos_members",
"perm": "corepos_members.list",
},
]
)
return menu
@ -55,14 +57,16 @@ class SideshowMenuHandler(base.SideshowMenuHandler):
"""
menu = super().make_products_menu(request, **kwargs)
menu['items'].extend([
{'type': 'sep'},
{
'title': "CORE-POS Products",
'route': 'corepos_products',
'perm': 'corepos_products.list',
},
])
menu["items"].extend(
[
{"type": "sep"},
{
"title": "CORE-POS Products",
"route": "corepos_products",
"perm": "corepos_products.list",
},
]
)
return menu
@ -75,12 +79,14 @@ class SideshowMenuHandler(base.SideshowMenuHandler):
corepos = self.app.get_corepos_handler()
url = corepos.get_office_url()
if url:
menu['items'].extend([
{
'title': "CORE Office",
'url': url,
'target': '_blank',
},
])
menu["items"].extend(
[
{
"title": "CORE Office",
"url": url,
"target": "_blank",
},
]
)
return menu

View file

@ -30,5 +30,5 @@ This adds config for readonly views for CORE-POS members and products.
def includeme(config):
# CORE-POS views
config.include('wutta_corepos.web.views.corepos.members')
config.include('wutta_corepos.web.views.corepos.products')
config.include("wutta_corepos.web.views.corepos.members")
config.include("wutta_corepos.web.views.corepos.products")