add join_map to grid views

This commit is contained in:
Lance Edgar 2012-07-09 13:55:59 -05:00
parent f5054c58be
commit 288035b294

View file

@ -53,6 +53,9 @@ class Grid(object):
def __init__(self, request):
self.request = request
def join_map(self):
return {}
def make_filter_map(self, **kwargs):
return filters.get_filter_map(self.mapped_class, **kwargs)
@ -69,8 +72,8 @@ class Grid(object):
def search_form(self, config):
return filters.get_search_form(config)
def make_sort_map(self, *args):
return grids.get_sort_map(self.mapped_class, names=args or None)
def make_sort_map(self, *args, **kwargs):
return grids.get_sort_map(self.mapped_class, names=args or None, **kwargs)
def sort_map(self):
return self.make_sort_map()
@ -83,11 +86,13 @@ class Grid(object):
def grid_config(self, search, fmap):
return self.make_grid_config(search, fmap)
def make_query(self, config):
def make_query(self, config, jmap=None):
if jmap is None:
jmap = self.join_map()
smap = self.sort_map()
q = Session.query(self.mapped_class)
q = filters.filter_query(q, config)
q = grids.sort_query(q, config, smap)
q = filters.filter_query(q, config, jmap)
q = grids.sort_query(q, config, smap, jmap)
return q
def query(self, config):
@ -111,6 +116,9 @@ class Grid(object):
return g
def __call__(self):
"""
View callable method.
"""
fmap = self.filter_map()
config = self.search_config(fmap)