Add sorters, filters for Product regular, current price
This commit is contained in:
		
							parent
							
								
									c320ab2feb
								
							
						
					
					
						commit
						aea4379fe4
					
				
					 1 changed files with 16 additions and 7 deletions
				
			
		|  | @ -100,6 +100,10 @@ class ProductsView(MasterView): | ||||||
|     ProductCostAny = orm.aliased(model.ProductCost) |     ProductCostAny = orm.aliased(model.ProductCost) | ||||||
|     VendorAny = orm.aliased(model.Vendor) |     VendorAny = orm.aliased(model.Vendor) | ||||||
| 
 | 
 | ||||||
|  |     # same, but for prices | ||||||
|  |     RegularPrice = orm.aliased(model.ProductPrice) | ||||||
|  |     CurrentPrice = orm.aliased(model.ProductPrice) | ||||||
|  | 
 | ||||||
|     def __init__(self, request): |     def __init__(self, request): | ||||||
|         super(ProductsView, self).__init__(request) |         super(ProductsView, self).__init__(request) | ||||||
|         self.print_labels = request.rattail_config.getbool('tailbone', 'products.print_labels', default=False) |         self.print_labels = request.rattail_config.getbool('tailbone', 'products.print_labels', default=False) | ||||||
|  | @ -146,7 +150,6 @@ class ProductsView(MasterView): | ||||||
|                     .outerjoin(self.VendorAny, |                     .outerjoin(self.VendorAny, | ||||||
|                                self.VendorAny.uuid == self.ProductCostAny.vendor_uuid) |                                self.VendorAny.uuid == self.ProductCostAny.vendor_uuid) | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
|         ProductCostCode = orm.aliased(model.ProductCost) |         ProductCostCode = orm.aliased(model.ProductCost) | ||||||
|         ProductCostCodeAny = orm.aliased(model.ProductCost) |         ProductCostCodeAny = orm.aliased(model.ProductCost) | ||||||
| 
 | 
 | ||||||
|  | @ -167,10 +170,6 @@ class ProductsView(MasterView): | ||||||
|         g.joiners['subdepartment'] = lambda q: q.outerjoin(model.Subdepartment, |         g.joiners['subdepartment'] = lambda q: q.outerjoin(model.Subdepartment, | ||||||
|                                                            model.Subdepartment.uuid == model.Product.subdepartment_uuid) |                                                            model.Subdepartment.uuid == model.Product.subdepartment_uuid) | ||||||
|         g.joiners['report_code'] = lambda q: q.outerjoin(model.ReportCode) |         g.joiners['report_code'] = lambda q: q.outerjoin(model.ReportCode) | ||||||
|         g.joiners['regular_price'] = lambda q: q.outerjoin(model.ProductPrice, |  | ||||||
|                                                            model.ProductPrice.uuid == model.Product.regular_price_uuid) |  | ||||||
|         g.joiners['current_price'] = lambda q: q.outerjoin(model.ProductPrice, |  | ||||||
|                                                            model.ProductPrice.uuid == model.Product.current_price_uuid) |  | ||||||
|         g.joiners['code'] = lambda q: q.outerjoin(model.ProductCode) |         g.joiners['code'] = lambda q: q.outerjoin(model.ProductCode) | ||||||
|         g.joiners['vendor'] = join_vendor |         g.joiners['vendor'] = join_vendor | ||||||
|         g.joiners['vendor_any'] = join_vendor_any |         g.joiners['vendor_any'] = join_vendor_any | ||||||
|  | @ -209,6 +208,18 @@ class ProductsView(MasterView): | ||||||
|         g.sorters['cost'] = g.make_sorter(model.ProductCost.unit_cost) |         g.sorters['cost'] = g.make_sorter(model.ProductCost.unit_cost) | ||||||
|         g.filters['cost'] = g.make_filter('cost', model.ProductCost.unit_cost) |         g.filters['cost'] = g.make_filter('cost', model.ProductCost.unit_cost) | ||||||
| 
 | 
 | ||||||
|  |         g.set_label('regular_price', "Reg. Price") | ||||||
|  |         g.set_joiner('regular_price', lambda q: q.outerjoin( | ||||||
|  |             self.RegularPrice, self.RegularPrice.uuid == model.Product.regular_price_uuid)) | ||||||
|  |         g.set_sorter('regular_price', self.RegularPrice.price) | ||||||
|  |         g.set_filter('regular_price', self.RegularPrice.price, label="Regular Price") | ||||||
|  | 
 | ||||||
|  |         g.set_label('current_price', "Cur. Price") | ||||||
|  |         g.set_joiner('current_price', lambda q: q.outerjoin( | ||||||
|  |             self.CurrentPrice, self.CurrentPrice.uuid == model.Product.current_price_uuid)) | ||||||
|  |         g.set_sorter('current_price', self.CurrentPrice.price) | ||||||
|  |         g.set_filter('current_price', self.CurrentPrice.price, label="Current Price") | ||||||
|  | 
 | ||||||
|         g.default_sortkey = 'upc' |         g.default_sortkey = 'upc' | ||||||
| 
 | 
 | ||||||
|         if self.print_labels and self.request.has_perm('products.print_labels'): |         if self.print_labels and self.request.has_perm('products.print_labels'): | ||||||
|  | @ -229,8 +240,6 @@ class ProductsView(MasterView): | ||||||
|         g.set_label('upc', "UPC") |         g.set_label('upc', "UPC") | ||||||
|         g.set_label('vendor', "Vendor (preferred)") |         g.set_label('vendor', "Vendor (preferred)") | ||||||
|         g.set_label('vendor_any', "Vendor (any)") |         g.set_label('vendor_any', "Vendor (any)") | ||||||
|         g.set_label('regular_price', "Reg. Price") |  | ||||||
|         g.set_label('current_price', "Cur. Price") |  | ||||||
|         g.set_label('vendor', "Pref. Vendor") |         g.set_label('vendor', "Pref. Vendor") | ||||||
| 
 | 
 | ||||||
|     def render_price(self, product, column): |     def render_price(self, product, column): | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Lance Edgar
						Lance Edgar