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
|
@ -96,7 +96,7 @@ class EmployeeView(MasterView):
|
|||
return app.get_people_handler().get_quickie_search_placeholder()
|
||||
|
||||
def configure_grid(self, g):
|
||||
super(EmployeeView, self).configure_grid(g)
|
||||
super().configure_grid(g)
|
||||
route_prefix = self.get_route_prefix()
|
||||
|
||||
# phone
|
||||
|
@ -115,9 +115,20 @@ class EmployeeView(MasterView):
|
|||
g.filters['email'] = g.make_filter('email', model.EmployeeEmailAddress.address,
|
||||
label="Email Address")
|
||||
|
||||
# first/last name
|
||||
g.filters['first_name'] = g.make_filter('first_name', model.Person.first_name)
|
||||
g.filters['last_name'] = g.make_filter('last_name', model.Person.last_name)
|
||||
# first_name
|
||||
g.set_link('first_name')
|
||||
g.set_sorter('first_name', model.Person.first_name)
|
||||
g.set_sort_defaults('first_name')
|
||||
g.set_filter('first_name', model.Person.first_name,
|
||||
default_active=True,
|
||||
default_verb='contains')
|
||||
|
||||
# last_name
|
||||
g.set_link('last_name')
|
||||
g.set_sorter('last_name', model.Person.last_name)
|
||||
g.set_filter('last_name', model.Person.last_name,
|
||||
default_active=True,
|
||||
default_verb='contains')
|
||||
|
||||
# username
|
||||
if self.request.has_perm('users.view'):
|
||||
|
@ -145,18 +156,7 @@ class EmployeeView(MasterView):
|
|||
g.remove('status')
|
||||
del g.filters['status']
|
||||
|
||||
g.filters['first_name'].default_active = True
|
||||
g.filters['first_name'].default_verb = 'contains'
|
||||
|
||||
g.filters['last_name'].default_active = True
|
||||
g.filters['last_name'].default_verb = 'contains'
|
||||
|
||||
g.sorters['first_name'] = lambda q, d: q.order_by(getattr(model.Person.first_name, d)())
|
||||
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.set_sort_defaults('first_name')
|
||||
g.set_sorter('email', model.EmployeeEmailAddress.address)
|
||||
|
||||
g.set_label('email', "Email Address")
|
||||
|
||||
|
@ -170,9 +170,6 @@ class EmployeeView(MasterView):
|
|||
g.main_actions.insert(1, self.make_action(
|
||||
'view_raw', url=url, icon='eye'))
|
||||
|
||||
g.set_link('first_name')
|
||||
g.set_link('last_name')
|
||||
|
||||
def default_view_url(self):
|
||||
if (self.request.has_perm('people.view_profile')
|
||||
and self.should_link_straight_to_profile()):
|
||||
|
@ -196,7 +193,7 @@ class EmployeeView(MasterView):
|
|||
default=False)
|
||||
|
||||
def query(self, session):
|
||||
query = super(EmployeeView, self).query(session)
|
||||
query = super().query(session)
|
||||
query = query.join(model.Person)
|
||||
if not self.has_perm('view_all'):
|
||||
query = query.filter(model.Employee.status == self.enum.EMPLOYEE_STATUS_CURRENT)
|
||||
|
@ -229,7 +226,7 @@ class EmployeeView(MasterView):
|
|||
return not self.is_employee_protected(employee)
|
||||
|
||||
def configure_form(self, f):
|
||||
super(EmployeeView, self).configure_form(f)
|
||||
super().configure_form(f)
|
||||
employee = f.model_instance
|
||||
|
||||
f.set_renderer('person', self.render_person)
|
||||
|
@ -283,7 +280,7 @@ class EmployeeView(MasterView):
|
|||
def objectify(self, form, data=None):
|
||||
if data is None:
|
||||
data = form.validated
|
||||
employee = super(EmployeeView, self).objectify(form, data)
|
||||
employee = super().objectify(form, data)
|
||||
self.update_stores(employee, data)
|
||||
self.update_departments(employee, data)
|
||||
return employee
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue