diff --git a/rattail/pyramid/views/labels.py b/rattail/pyramid/views/labels.py index 9ff7849c..92d7eb2f 100644 --- a/rattail/pyramid/views/labels.py +++ b/rattail/pyramid/views/labels.py @@ -33,6 +33,7 @@ import formalchemy from webhelpers.html import HTML from edbob.pyramid import Session +from edbob.pyramid.grids.search import BooleanSearchFilter from edbob.pyramid.views import SearchableAlchemyGridView, CrudView import rattail @@ -46,11 +47,15 @@ class ProfilesGrid(SearchableAlchemyGridView): def filter_map(self): return self.make_filter_map( - exact=['code'], + exact=['code', 'visible'], ilike=['description']) + def filter_config(self): + return self.make_filter_config( + filter_factory_visible=BooleanSearchFilter) + def sort_map(self): - return self.make_sort_map('ordinal', 'code', 'description') + return self.make_sort_map('ordinal', 'code', 'description', 'visible') def grid(self): g = self.make_grid() @@ -59,6 +64,7 @@ class ProfilesGrid(SearchableAlchemyGridView): g.ordinal, g.code, g.description, + g.visible, ], readonly=True) if self.request.has_perm('label_profiles.read'): @@ -104,6 +110,7 @@ class ProfileCrud(CrudView): fs.printer_spec, fs.formatter_spec, fs.format, + fs.visible, ]) return fs diff --git a/rattail/pyramid/views/products.py b/rattail/pyramid/views/products.py index afaf8659..53d0ec15 100644 --- a/rattail/pyramid/views/products.py +++ b/rattail/pyramid/views/products.py @@ -181,6 +181,7 @@ class ProductsGrid(SearchableAlchemyGridView): def render_kwargs(self): q = Session.query(rattail.LabelProfile) + q = q.filter(rattail.LabelProfile.visible == True) q = q.order_by(rattail.LabelProfile.ordinal) return {'label_profiles': q.all()}