diff --git a/edbob/pyramid/views/grid.py b/edbob/pyramid/views/grid.py index f9f9811..ecd3871 100644 --- a/edbob/pyramid/views/grid.py +++ b/edbob/pyramid/views/grid.py @@ -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)