Use Grid.make_sorter()
instead of legacy code
b/c multi-column sorting relies on this
This commit is contained in:
parent
659f5a8fe1
commit
919d8d109f
14 changed files with 198 additions and 176 deletions
|
@ -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,10 +24,6 @@
|
|||
Views for "true" purchase orders
|
||||
"""
|
||||
|
||||
from __future__ import unicode_literals, absolute_import
|
||||
|
||||
import six
|
||||
|
||||
from rattail.db import model
|
||||
|
||||
from webhelpers2.html import HTML, tags
|
||||
|
@ -143,28 +139,35 @@ class PurchaseView(MasterView):
|
|||
if purchase.date_ordered:
|
||||
return "{} (ordered {})".format(purchase.vendor, purchase.date_ordered.strftime('%Y-%m-%d'))
|
||||
return "{} (ordered)".format(purchase.vendor)
|
||||
return six.text_type(purchase)
|
||||
return str(purchase)
|
||||
|
||||
def configure_grid(self, g):
|
||||
super(PurchaseView, self).configure_grid(g)
|
||||
super().configure_grid(g)
|
||||
model = self.model
|
||||
|
||||
g.joiners['store'] = lambda q: q.join(model.Store)
|
||||
g.filters['store'] = g.make_filter('store', model.Store.name)
|
||||
g.sorters['store'] = g.make_sorter(model.Store.name)
|
||||
# store
|
||||
g.set_joiner('store', lambda q: q.join(model.Store))
|
||||
g.set_sorter('store', model.Store.name)
|
||||
g.set_filter('store', model.Store.name)
|
||||
|
||||
g.joiners['vendor'] = lambda q: q.join(model.Vendor)
|
||||
g.filters['vendor'] = g.make_filter('vendor', model.Vendor.name,
|
||||
default_active=True, default_verb='contains')
|
||||
g.sorters['vendor'] = g.make_sorter(model.Vendor.name)
|
||||
# vendor
|
||||
g.set_joiner('vendor', lambda q: q.join(model.Vendor))
|
||||
g.set_sorter('vendor', model.Vendor.name)
|
||||
g.set_filter('vendor', model.Vendor.name,
|
||||
default_active=True,
|
||||
default_verb='contains')
|
||||
|
||||
g.joiners['department'] = lambda q: q.join(model.Department)
|
||||
g.filters['department'] = g.make_filter('department', model.Department.name)
|
||||
g.sorters['department'] = g.make_sorter(model.Department.name)
|
||||
# department
|
||||
g.set_joiner('department', lambda q: q.join(model.Department))
|
||||
g.set_sorter('department', model.Department.name)
|
||||
g.set_filter('department', model.Department.name)
|
||||
|
||||
g.joiners['buyer'] = lambda q: q.join(model.Employee).join(model.Person)
|
||||
g.filters['buyer'] = g.make_filter('buyer', model.Person.display_name,
|
||||
default_active=True, default_verb='contains')
|
||||
g.sorters['buyer'] = g.make_sorter(model.Person.display_name)
|
||||
# buyer
|
||||
g.set_joiner('buyer', lambda q: q.join(model.Employee).join(model.Person))
|
||||
g.set_sorter('buyer', model.Person.display_name)
|
||||
g.set_filter('buyer', model.Person.display_name,
|
||||
default_active=True,
|
||||
default_verb='contains')
|
||||
|
||||
# id
|
||||
g.set_renderer('id', self.render_id_str)
|
||||
|
@ -198,7 +201,7 @@ class PurchaseView(MasterView):
|
|||
g.set_link('invoice_total')
|
||||
|
||||
def configure_form(self, f):
|
||||
super(PurchaseView, self).configure_form(f)
|
||||
super().configure_form(f)
|
||||
|
||||
# id
|
||||
f.set_renderer('id', self.render_id_str)
|
||||
|
@ -322,7 +325,7 @@ class PurchaseView(MasterView):
|
|||
.filter(model.PurchaseItem.purchase == purchase)
|
||||
|
||||
def configure_row_grid(self, g):
|
||||
super(PurchaseView, self).configure_row_grid(g)
|
||||
super().configure_row_grid(g)
|
||||
|
||||
g.set_sort_defaults('sequence')
|
||||
|
||||
|
@ -353,7 +356,7 @@ class PurchaseView(MasterView):
|
|||
g.remove('po_total')
|
||||
|
||||
def configure_row_form(self, f):
|
||||
super(PurchaseView, self).configure_row_form(f)
|
||||
super().configure_row_form(f)
|
||||
|
||||
# quantity fields
|
||||
f.set_type('case_quantity', 'quantity')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue