fixed some bugs with sorting
This commit is contained in:
@@ -15,11 +15,21 @@ TABLE_HEADERS = {
|
||||
"Wattage",
|
||||
],
|
||||
"CMD": ["IP", "Model", "Command Output"],
|
||||
"POOLS": [
|
||||
"POOLS_ALL": [
|
||||
"IP",
|
||||
"Split",
|
||||
"Pool 1 User",
|
||||
"Pool 2 User",
|
||||
],
|
||||
"POOLS_1": [
|
||||
"IP",
|
||||
"Split",
|
||||
"Pool 1",
|
||||
"Pool 1 User",
|
||||
],
|
||||
"POOLS_2": [
|
||||
"IP",
|
||||
"Split",
|
||||
"Pool 2",
|
||||
"Pool 2 User",
|
||||
],
|
||||
@@ -188,17 +198,18 @@ def get_command_layout():
|
||||
|
||||
|
||||
def get_pools_layout():
|
||||
pool_col_width = int((TABLE_TOTAL_WIDTH - (IP_COL_WIDTH + SPLIT_COL_WIDTH)) / 4)
|
||||
pool_col_width = int((TABLE_TOTAL_WIDTH - (IP_COL_WIDTH + SPLIT_COL_WIDTH)) / 2)
|
||||
col_widths = [
|
||||
IP_COL_WIDTH,
|
||||
SPLIT_COL_WIDTH,
|
||||
pool_col_width + 5,
|
||||
pool_col_width - 5,
|
||||
pool_col_width + 5,
|
||||
pool_col_width - 5,
|
||||
pool_col_width,
|
||||
pool_col_width,
|
||||
]
|
||||
pools_layout = [
|
||||
[
|
||||
sg.Button("ALL", key="pools_all"),
|
||||
sg.Button("REFRESH DATA", key="pools_refresh"),
|
||||
sg.Button("OPEN IN WEB", key="pools_web"),
|
||||
sg.Push(),
|
||||
sg.Button(
|
||||
"Miners: 0",
|
||||
@@ -209,24 +220,87 @@ def get_pools_layout():
|
||||
),
|
||||
],
|
||||
[
|
||||
sg.Button("ALL", key="pools_all"),
|
||||
sg.Button("REFRESH DATA", key="pools_refresh"),
|
||||
sg.Button("OPEN IN WEB", key="pools_web"),
|
||||
],
|
||||
[
|
||||
sg.Table(
|
||||
values=[],
|
||||
headings=[heading for heading in TABLE_HEADERS["POOLS"]],
|
||||
auto_size_columns=False,
|
||||
max_col_width=15,
|
||||
justification="center",
|
||||
key="pools_table",
|
||||
background_color="white",
|
||||
text_color="black",
|
||||
col_widths=col_widths,
|
||||
size=(0, TABLE_HEIGHT),
|
||||
expand_x=True,
|
||||
enable_click_events=True,
|
||||
sg.TabGroup(
|
||||
[
|
||||
[
|
||||
sg.Tab(
|
||||
"All",
|
||||
[
|
||||
[
|
||||
sg.Table(
|
||||
values=[],
|
||||
headings=[
|
||||
heading
|
||||
for heading in TABLE_HEADERS["POOLS_ALL"]
|
||||
],
|
||||
auto_size_columns=False,
|
||||
max_col_width=15,
|
||||
justification="center",
|
||||
key="pools_table",
|
||||
background_color="white",
|
||||
text_color="black",
|
||||
col_widths=col_widths,
|
||||
size=(0, TABLE_HEIGHT),
|
||||
expand_x=True,
|
||||
enable_click_events=True,
|
||||
)
|
||||
]
|
||||
],
|
||||
)
|
||||
],
|
||||
[
|
||||
sg.Tab(
|
||||
"Pool 1",
|
||||
[
|
||||
[
|
||||
sg.Table(
|
||||
values=[],
|
||||
headings=[
|
||||
heading
|
||||
for heading in TABLE_HEADERS["POOLS_1"]
|
||||
],
|
||||
auto_size_columns=False,
|
||||
max_col_width=15,
|
||||
justification="center",
|
||||
key="pools_1_table",
|
||||
background_color="white",
|
||||
text_color="black",
|
||||
col_widths=col_widths,
|
||||
size=(0, TABLE_HEIGHT),
|
||||
expand_x=True,
|
||||
enable_click_events=True,
|
||||
)
|
||||
]
|
||||
],
|
||||
)
|
||||
],
|
||||
[
|
||||
sg.Tab(
|
||||
"Pool 2",
|
||||
[
|
||||
[
|
||||
sg.Table(
|
||||
values=[],
|
||||
headings=[
|
||||
heading
|
||||
for heading in TABLE_HEADERS["POOLS_2"]
|
||||
],
|
||||
auto_size_columns=False,
|
||||
max_col_width=15,
|
||||
justification="center",
|
||||
key="pools_2_table",
|
||||
background_color="white",
|
||||
text_color="black",
|
||||
col_widths=col_widths,
|
||||
size=(0, TABLE_HEIGHT),
|
||||
expand_x=True,
|
||||
enable_click_events=True,
|
||||
)
|
||||
]
|
||||
],
|
||||
)
|
||||
],
|
||||
]
|
||||
)
|
||||
],
|
||||
]
|
||||
|
||||
@@ -80,7 +80,9 @@ class TableManager(metaclass=Singleton):
|
||||
tables = {
|
||||
"SCAN": [["" for _ in TABLE_HEADERS["SCAN"]] for _ in self.data],
|
||||
"CMD": [["" for _ in TABLE_HEADERS["CMD"]] for _ in self.data],
|
||||
"POOLS": [["" for _ in TABLE_HEADERS["POOLS"]] for _ in self.data],
|
||||
"POOLS_ALL": [["" for _ in TABLE_HEADERS["POOLS_ALL"]] for _ in self.data],
|
||||
"POOLS_1": [["" for _ in TABLE_HEADERS["POOLS_1"]] for _ in self.data],
|
||||
"POOLS_2": [["" for _ in TABLE_HEADERS["POOLS_2"]] for _ in self.data],
|
||||
"CONFIG": [["" for _ in TABLE_HEADERS["CONFIG"]] for _ in self.data],
|
||||
}
|
||||
|
||||
@@ -105,7 +107,9 @@ class TableManager(metaclass=Singleton):
|
||||
tables[table][data_idx][idx] = item[key]
|
||||
|
||||
window["scan_table"].update(tables["SCAN"])
|
||||
window["pools_table"].update(tables["POOLS"])
|
||||
window["pools_table"].update(tables["POOLS_ALL"])
|
||||
window["pools_1_table"].update(tables["POOLS_1"])
|
||||
window["pools_2_table"].update(tables["POOLS_2"])
|
||||
window["cfg_table"].update(tables["CONFIG"])
|
||||
|
||||
treedata = sg.TreeData()
|
||||
@@ -124,16 +128,28 @@ class TableManager(metaclass=Singleton):
|
||||
return ipaddress.ip_address(self.data[data_key]["IP"])
|
||||
|
||||
if self.sort_key == "Hashrate":
|
||||
if self.data[data_key]["Hashrate"] == "":
|
||||
return -1
|
||||
if not isinstance(self.data[data_key]["Hashrate"], str):
|
||||
return self.data[data_key]["Hashrate"]
|
||||
return float(
|
||||
self.data[data_key]["Hashrate"].replace(" ", "").replace("TH/s", "")
|
||||
)
|
||||
|
||||
if self.sort_key in ["Wattage", "Temperature"]:
|
||||
if isinstance(self.data[data_key][self.sort_key], str):
|
||||
if self.sort_reverse:
|
||||
return -100000000 # large negative number to place it at the bottom
|
||||
else:
|
||||
return 1000000000 # large number to place it at the bottom
|
||||
return -300
|
||||
|
||||
if self.sort_key == "Split":
|
||||
if self.data[data_key][self.sort_key] == "":
|
||||
return -1
|
||||
if "/" not in self.data[data_key][self.sort_key]:
|
||||
return 0
|
||||
|
||||
if not self.sort_reverse:
|
||||
return int(self.data[data_key][self.sort_key].split("/")[0])
|
||||
else:
|
||||
return int(self.data[data_key][self.sort_key].split("/")[1])
|
||||
|
||||
return self.data[data_key][self.sort_key]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user