From 6e1f925944a16b8f4c3e49c44f1d432caf41d6b7 Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Thu, 25 Jul 2019 16:05:10 -0500 Subject: [PATCH] Cleanup 'phone' filter/sort logic for Employees grid per newer conventions etc. needed to override some of this for a client --- tailbone/views/employees.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/tailbone/views/employees.py b/tailbone/views/employees.py index b47bfc84..b500d2fc 100644 --- a/tailbone/views/employees.py +++ b/tailbone/views/employees.py @@ -49,6 +49,7 @@ class EmployeesView(MasterView): labels = { 'id': "ID", + 'phone': "Phone Number", } grid_columns = [ @@ -79,9 +80,15 @@ class EmployeesView(MasterView): super(EmployeesView, self).configure_grid(g) route_prefix = self.get_route_prefix() - g.joiners['phone'] = lambda q: q.outerjoin(model.EmployeePhoneNumber, sa.and_( + # phone + g.set_joiner('phone', lambda q: q.outerjoin(model.EmployeePhoneNumber, sa.and_( model.EmployeePhoneNumber.parent_uuid == model.Employee.uuid, - model.EmployeePhoneNumber.preference == 1)) + model.EmployeePhoneNumber.preference == 1))) + g.set_filter('phone', model.EmployeePhoneNumber.number, + label="Phone Number", + factory=grids.filters.AlchemyPhoneNumberFilter) + g.set_sorter('phone', model.EmployeePhoneNumber.number) + g.joiners['email'] = lambda q: q.outerjoin(model.EmployeeEmailAddress, sa.and_( model.EmployeeEmailAddress.parent_uuid == model.Employee.uuid, model.EmployeeEmailAddress.preference == 1)) @@ -91,9 +98,6 @@ class EmployeesView(MasterView): g.filters['email'] = g.make_filter('email', model.EmployeeEmailAddress.address, label="Email Address") - g.set_filter('phone', model.EmployeePhoneNumber.number, - label="Phone Number", - factory=grids.filters.AlchemyPhoneNumberFilter) # id if self.request.has_perm('{}.edit'.format(route_prefix)): @@ -123,11 +127,9 @@ class EmployeesView(MasterView): g.sorters['last_name'] = lambda q, d: q.order_by(getattr(model.Person.last_name, d)()) g.sorters['email'] = lambda q, d: q.order_by(getattr(model.EmployeeEmailAddress.address, d)()) - g.sorters['phone'] = lambda q, d: q.order_by(getattr(model.EmployeePhoneNumber.number, d)()) g.set_sort_defaults('first_name') - g.set_label('phone', "Phone Number") g.set_label('email', "Email Address") g.set_link('first_name') @@ -191,7 +193,6 @@ class EmployeesView(MasterView): f.set_readonly('email') f.set_label('display_name', "Short Name") - f.set_label('phone', "Phone Number") f.set_label('email', "Email Address") if not self.viewing: