Show current price date range as hover text, for products grid
This commit is contained in:
parent
4cf61a92cf
commit
6c5377fadc
|
@ -296,6 +296,7 @@ class ProductView(MasterView):
|
|||
g.set_filter('regular_price', self.RegularPrice.price, label="Regular Price")
|
||||
|
||||
g.set_label('current_price', "Cur. Price")
|
||||
g.set_renderer('current_price', self.render_current_price_for_grid)
|
||||
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)
|
||||
|
@ -326,7 +327,6 @@ class ProductView(MasterView):
|
|||
g.set_type('upc', 'gpc')
|
||||
|
||||
g.set_renderer('regular_price', self.render_price)
|
||||
g.set_renderer('current_price', self.render_price)
|
||||
g.set_renderer('on_hand', self.render_on_hand)
|
||||
g.set_renderer('on_order', self.render_on_order)
|
||||
|
||||
|
@ -472,6 +472,30 @@ class ProductView(MasterView):
|
|||
return "$ {:0.2f} / {}".format(price.pack_price, price.pack_multiple)
|
||||
return ""
|
||||
|
||||
def render_current_price_for_grid(self, product, field):
|
||||
text = self.render_price(product, field)
|
||||
|
||||
price = product.current_price
|
||||
if price:
|
||||
app = self.get_rattail_app()
|
||||
|
||||
if price.starts:
|
||||
starts = localtime(self.rattail_config, price.starts, from_utc=True)
|
||||
starts = app.render_date(starts.date())
|
||||
else:
|
||||
starts = "??"
|
||||
|
||||
if price.ends:
|
||||
ends = localtime(self.rattail_config, price.ends, from_utc=True)
|
||||
ends = app.render_date(ends.date())
|
||||
else:
|
||||
ends = "??"
|
||||
|
||||
return HTML.tag('span', c=text,
|
||||
title="{} thru {}".format(starts, ends))
|
||||
|
||||
return text
|
||||
|
||||
def add_price_history_link(self, text, typ):
|
||||
if not self.rattail_config.versioning_enabled():
|
||||
return text
|
||||
|
|
Loading…
Reference in a new issue