sorting of columns was not nice, should be better now
This commit is contained in:
@@ -32,6 +32,7 @@ class Application:
|
||||
self.address_list = []
|
||||
self.current_record: int | None = None
|
||||
self.sort_order = False
|
||||
self.last_sort_field = "#3"
|
||||
|
||||
# init paths to json and csv file
|
||||
self.json_file_name = "brovski-adress-etiketten-verwaltung.json"
|
||||
@@ -95,6 +96,8 @@ class Application:
|
||||
|
||||
self._load_json_file()
|
||||
|
||||
self.first_sort_after_start()
|
||||
|
||||
self.root.mainloop()
|
||||
|
||||
def load_config(self):
|
||||
@@ -197,25 +200,17 @@ class Application:
|
||||
|
||||
def click_on_header(self, event):
|
||||
column = self.table.identify_column(event.x)
|
||||
match column:
|
||||
case "#1":
|
||||
self.address_list.sort(key=lambda x: x[int(column[-1]) - 1], reverse=self.sort_order)
|
||||
if self.last_sort_field == column:
|
||||
self.sort_order = False if self.sort_order else True
|
||||
else:
|
||||
self.sort_order = False
|
||||
self.last_sort_field = column
|
||||
self.address_list.sort(key=lambda x: (x[int(column[-1]) - 1]), reverse=self.sort_order)
|
||||
|
||||
# special case company sort
|
||||
if column == "#2":
|
||||
self.address_list.sort(key=lambda x: (x[1], x[2]), reverse=self.sort_order)
|
||||
self.populate_table()
|
||||
case "#2":
|
||||
self.address_list.sort(key=lambda x: x[int(column[-1]) - 1], reverse=self.sort_order)
|
||||
self.populate_table()
|
||||
case "#3":
|
||||
self.address_list.sort(key=lambda x: x[int(column[-1]) - 1], reverse=self.sort_order)
|
||||
self.populate_table()
|
||||
case "#4":
|
||||
self.address_list.sort(key=lambda x: x[int(column[-1]) - 1], reverse=self.sort_order)
|
||||
self.populate_table()
|
||||
case "#5":
|
||||
self.address_list.sort(key=lambda x: x[int(column[-1]) - 1], reverse=self.sort_order)
|
||||
self.populate_table()
|
||||
case _:
|
||||
print(column)
|
||||
self.sort_order = not self.sort_order
|
||||
|
||||
def click_on_cell(self):
|
||||
self.current_record = self.table.focus()
|
||||
@@ -310,7 +305,9 @@ class Application:
|
||||
count += 1
|
||||
self.length_address_list_active = count
|
||||
|
||||
|
||||
def first_sort_after_start(self):
|
||||
self.address_list.sort(key=lambda x: (x[1], x[2]))
|
||||
self.populate_table()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
Reference in New Issue
Block a user