From 69bda79baf58f537a486a2b1975e56803e3c612a Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Sun, 18 Jun 2023 18:50:55 -0500 Subject: [PATCH] Turn on quickie person search for CustomerShopper views also set default sort for that grid --- tailbone/views/customers.py | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/tailbone/views/customers.py b/tailbone/views/customers.py index 70ad4602..078cda58 100644 --- a/tailbone/views/customers.py +++ b/tailbone/views/customers.py @@ -746,10 +746,28 @@ class CustomerShopperView(MasterView): 'active', ] + def should_expose_quickie_search(self): + if self.expose_quickie_search: + return True + app = self.get_rattail_app() + return app.get_people_handler().should_expose_quickie_search() + + def get_quickie_perm(self): + return 'people.quickie' + + def get_quickie_url(self): + return self.request.route_url('people.quickie') + + def get_quickie_placeholder(self): + app = self.get_rattail_app() + return app.get_people_handler().get_quickie_search_placeholder() + def query(self, session): query = super().query(session) model = self.model - return query.join(model.Customer) + return query.join(model.Customer)\ + .join(model.Person, + model.Person.uuid == model.CustomerShopper.person_uuid) def configure_grid(self, g): super().configure_grid(g) @@ -763,6 +781,7 @@ class CustomerShopperView(MasterView): g.set_renderer('customer_key', lambda shopper, field: getattr(shopper.customer, key)) g.set_sorter('customer_key', getattr(model.Customer, key)) + g.set_sort_defaults('customer_key') g.set_filter('customer_key', getattr(model.Customer, key), label=f"Customer {label}", default_active=True, @@ -771,7 +790,12 @@ class CustomerShopperView(MasterView): # customer (name) g.set_sorter('customer', model.Customer.name) g.set_filter('customer', model.Customer.name, - label="Customer Name") + label="Customer Account Name") + + # person (name) + g.set_sorter('person', model.Person.display_name) + g.set_filter('person', model.Person.display_name, + label="Person Name") def configure_form(self, f): super().configure_form(f)