Misc. tweaks for CORE product, batch views

This commit is contained in:
Lance Edgar 2023-10-18 21:29:47 -05:00
parent c81e5a52cd
commit f3a49838c1
3 changed files with 23 additions and 15 deletions

View file

@ -1,5 +1,5 @@
## -*- coding: utf-8; -*- ## -*- coding: utf-8; -*-
<%inherit file="/core-pos/master/view.mako" /> <%inherit file="/master/view.mako" />
<%def name="modify_this_page_vars()"> <%def name="modify_this_page_vars()">
${parent.modify_this_page_vars()} ${parent.modify_this_page_vars()}

View file

@ -2,7 +2,7 @@
################################################################################ ################################################################################
# #
# Rattail -- Retail Software Framework # Rattail -- Retail Software Framework
# Copyright © 2010-2022 Lance Edgar # Copyright © 2010-2023 Lance Edgar
# #
# This file is part of Rattail. # This file is part of Rattail.
# #
@ -87,8 +87,13 @@ class BatchView(CoreOfficeMasterView):
'id', 'id',
'name', 'name',
'batch_type', 'batch_type',
'discount_type',
'priority',
'start_date', 'start_date',
'end_date', 'end_date',
'owner',
'trans_limit',
'notes',
] ]
row_labels = { row_labels = {

View file

@ -2,7 +2,7 @@
################################################################################ ################################################################################
# #
# Rattail -- Retail Software Framework # Rattail -- Retail Software Framework
# Copyright © 2010-2022 Lance Edgar # Copyright © 2010-2023 Lance Edgar
# #
# This file is part of Rattail. # This file is part of Rattail.
# #
@ -134,7 +134,7 @@ class ProductView(CoreOfficeMasterView):
] ]
def configure_grid(self, g): def configure_grid(self, g):
super(ProductView, self).configure_grid(g) super().configure_grid(g)
g.set_joiner('department', lambda q: q.outerjoin(corepos.Department)) g.set_joiner('department', lambda q: q.outerjoin(corepos.Department))
g.set_sorter('department', corepos.Department.name) g.set_sorter('department', corepos.Department.name)
@ -167,7 +167,7 @@ class ProductView(CoreOfficeMasterView):
return "{} {}".format(product.upc, product.description) return "{} {}".format(product.upc, product.description)
def configure_form(self, f): def configure_form(self, f):
super(ProductView, self).configure_form(f) super().configure_form(f)
if not table_exists(self.Session(), corepos.FloorSection): if not table_exists(self.Session(), corepos.FloorSection):
f.remove('physical_location') f.remove('physical_location')
@ -266,7 +266,7 @@ class ProductView(CoreOfficeMasterView):
g.render_buefy_table_element(data_prop='vendorItemsData')) g.render_buefy_table_element(data_prop='vendorItemsData'))
def template_kwargs_view(self, **kwargs): def template_kwargs_view(self, **kwargs):
kwargs = super(ProductView, self).template_kwargs_view(**kwargs) kwargs = super().template_kwargs_view(**kwargs)
product = kwargs['instance'] product = kwargs['instance']
app = self.get_rattail_app() app = self.get_rattail_app()
@ -283,19 +283,22 @@ class ProductView(CoreOfficeMasterView):
return kwargs return kwargs
def core_office_object_url(self, office_url, product): def get_xref_buttons(self, product):
return '{}/item/ItemEditorPage.php?searchupc={}'.format( app = self.get_rattail_app()
office_url, product.upc) corepos = app.get_corepos_handler()
url = corepos.get_office_product_url(product.upc)
if url:
return [self.make_xref_button(url=url, text="View in CORE Office")]
def download_results_fields_available(self, **kwargs): def download_results_fields_available(self, **kwargs):
fields = super(ProductView, self).download_results_fields_available(**kwargs) fields = super().download_results_fields_available(**kwargs)
fields.append('superdepartment_number') fields.append('superdepartment_number')
return fields return fields
def download_results_setup(self, fields, progress=None): def download_results_setup(self, fields, progress=None):
super(ProductView, self).download_results_setup(fields, progress=progress) super().download_results_setup(fields, progress=progress)
if 'superdepartment_number' in fields: if 'superdepartment_number' in fields:
mapping = {} mapping = {}
@ -309,7 +312,7 @@ class ProductView(CoreOfficeMasterView):
self.supermap = mapping self.supermap = mapping
def download_results_normalize(self, product, fields, **kwargs): def download_results_normalize(self, product, fields, **kwargs):
data = super(ProductView, self).download_results_normalize(product, fields, **kwargs) data = super().download_results_normalize(product, fields, **kwargs)
if 'superdepartment_number' in fields: if 'superdepartment_number' in fields:
data['superdepartment_number'] = None data['superdepartment_number'] = None
@ -356,7 +359,7 @@ class ProductUserView(CoreOfficeMasterView):
] ]
def configure_grid(self, g): def configure_grid(self, g):
super(ProductUserView, self).configure_grid(g) super().configure_grid(g)
g.filters['upc'].default_active = True g.filters['upc'].default_active = True
g.filters['upc'].default_verb = 'contains' g.filters['upc'].default_verb = 'contains'
@ -367,7 +370,7 @@ class ProductUserView(CoreOfficeMasterView):
g.set_link('description') g.set_link('description')
def configure_form(self, f): def configure_form(self, f):
super(ProductUserView, self).configure_form(f) super().configure_form(f)
f.set_type('long_text', 'text') f.set_type('long_text', 'text')
f.set_renderer('product', self.render_corepos_product) f.set_renderer('product', self.render_corepos_product)
@ -383,7 +386,7 @@ class ProductFlagView(CoreOfficeMasterView):
route_prefix = 'corepos.product_flags' route_prefix = 'corepos.product_flags'
def configure_grid(self, g): def configure_grid(self, g):
super(ProductFlagView, self).configure_grid(g) super().configure_grid(g)
g.set_link('bit_number') g.set_link('bit_number')
g.set_link('description') g.set_link('description')