Add 'vendor code' and 'vendor code (any)' filters for products grid
This commit is contained in:
parent
01acedaedf
commit
68ba3a7fcb
|
@ -144,6 +144,20 @@ class ProductsView(MasterView):
|
|||
.outerjoin(self.VendorAny,
|
||||
self.VendorAny.uuid == self.ProductCostAny.vendor_uuid)
|
||||
|
||||
|
||||
ProductCostCode = orm.aliased(model.ProductCost)
|
||||
ProductCostCodeAny = orm.aliased(model.ProductCost)
|
||||
|
||||
def join_vendor_code(q):
|
||||
return q.outerjoin(ProductCostCode,
|
||||
sa.and_(
|
||||
ProductCostCode.product_uuid == model.Product.uuid,
|
||||
ProductCostCode.preference == 1))
|
||||
|
||||
def join_vendor_code_any(q):
|
||||
return q.outerjoin(ProductCostCodeAny,
|
||||
ProductCostCodeAny.product_uuid == model.Product.uuid)
|
||||
|
||||
g.joiners['brand'] = lambda q: q.outerjoin(model.Brand)
|
||||
g.joiners['family'] = lambda q: q.outerjoin(model.Family)
|
||||
g.joiners['department'] = lambda q: q.outerjoin(model.Department,
|
||||
|
@ -158,6 +172,8 @@ class ProductsView(MasterView):
|
|||
g.joiners['code'] = lambda q: q.outerjoin(model.ProductCode)
|
||||
g.joiners['vendor'] = join_vendor
|
||||
g.joiners['vendor_any'] = join_vendor_any
|
||||
g.joiners['vendor_code'] = join_vendor_code
|
||||
g.joiners['vendor_code_any'] = join_vendor_code_any
|
||||
|
||||
g.sorters['brand'] = g.make_sorter(model.Brand.name)
|
||||
g.sorters['department'] = g.make_sorter(model.Department.name)
|
||||
|
@ -180,6 +196,8 @@ class ProductsView(MasterView):
|
|||
g.filters['vendor'] = g.make_filter('vendor', model.Vendor.name, label="Vendor (preferred)")
|
||||
g.filters['vendor_any'] = g.make_filter('vendor_any', self.VendorAny.name, label="Vendor (any)")
|
||||
# factory=VendorAnyFilter, joiner=join_vendor_any)
|
||||
g.filters['vendor_code'] = g.make_filter('vendor_code', ProductCostCode.code)
|
||||
g.filters['vendor_code_any'] = g.make_filter('vendor_code_any', ProductCostCodeAny.code)
|
||||
|
||||
g.default_sortkey = 'upc'
|
||||
|
||||
|
|
Loading…
Reference in a new issue