Make monitor handle non-full quote messages

its_happening
Tyler Goodlet 2020-05-31 22:59:37 -04:00
parent 3042d1eec6
commit b2ac571147
2 changed files with 15 additions and 9 deletions

View File

@ -51,23 +51,25 @@ async def update_quotes(
chngcell = row.get_cell('%') chngcell = row.get_cell('%')
# determine daily change color # determine daily change color
color = colorcode('gray')
percent_change = record.get('%') percent_change = record.get('%')
if percent_change: if percent_change is not None and percent_change != chngcell:
daychange = float(record['%']) daychange = float(percent_change)
if daychange < 0.: if daychange < 0.:
color = colorcode('red2') color = colorcode('red2')
elif daychange > 0.: elif daychange > 0.:
color = colorcode('forestgreen') color = colorcode('forestgreen')
else:
color = colorcode('gray')
# update row header and '%' cell text color
if chngcell:
chngcell.color = color
hdrcell.color = color
# if the cell has been "highlighted" make sure to change its color # if the cell has been "highlighted" make sure to change its color
if hdrcell.background_color != [0]*4: if hdrcell.background_color != [0]*4:
hdrcell.background_color = color hdrcell.background_color = color
# update row header and '%' cell text color
chngcell.color = color
hdrcell.color = color
# briefly highlight bg of certain cells on each trade execution # briefly highlight bg of certain cells on each trade execution
unflash = set() unflash = set()
tick_color = None tick_color = None
@ -123,10 +125,13 @@ async def update_quotes(
record, displayable = formatter( record, displayable = formatter(
quote, symbol_data=symbol_data) quote, symbol_data=symbol_data)
# don't red/green the header cell in ``row.update()``
record.pop('symbol')
# determine if sorting should happen # determine if sorting should happen
sort_key = table.sort_key sort_key = table.sort_key
new = record[sort_key]
last = row.get_field(sort_key) last = row.get_field(sort_key)
new = record.get(sort_key, last)
if new != last: if new != last:
to_sort.add(row.widget) to_sort.add(row.widget)

View File

@ -340,6 +340,7 @@ class Row(HoverBehavior, GridLayout):
gray = colorcode('gray') gray = colorcode('gray')
fgreen = colorcode('forestgreen') fgreen = colorcode('forestgreen')
red = colorcode('red2') red = colorcode('red2')
for key, val in record.items(): for key, val in record.items():
last = self.get_field(key) last = self.get_field(key)
color = gray color = gray
@ -361,7 +362,7 @@ class Row(HoverBehavior, GridLayout):
if color != gray: if color != gray:
cells[key] = cell cells[key] = cell
self._last_record = record self._last_record.update(record)
return cells return cells
# mouse over handlers # mouse over handlers