Verified Commit 8087c8fa authored by Jakob Moser's avatar Jakob Moser
Browse files

Implement sorting in reverse

parent 61adcc5d
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -3,7 +3,9 @@ from decimal import Decimal

from babel.numbers import NumberFormatError, format_currency, parse_decimal
from rich.text import Text
from textual.reactive import reactive
from textual.widgets import DataTable
from textual.widgets.data_table import ColumnKey

from poolpay.model.Person import Person

@@ -27,6 +29,9 @@ def to_row(p: Person) -> tuple[str, str, Text, str]:


class PersonsTable(DataTable):
    sort_key: reactive[ColumnKey | None] = reactive(None)
    sort_reversed: reactive[bool] = reactive(False)

    def on_mount(self) -> None:
        self.add_columns("Name", "CL-Account", "Kontostand", "Karten-ID")
        self.add_all_persons()
@@ -44,4 +49,13 @@ class PersonsTable(DataTable):
            except NumberFormatError:
                return str_value

        self.sort(event.column_key, key=convert_to_decimal_if_numeric)
        if self.sort_key == event.column_key:
            self.sort_reversed = not self.sort_reversed
        else:
            self.sort_reversed = False

        self.sort_key = event.column_key

        self.sort(
            self.sort_key, key=convert_to_decimal_if_numeric, reverse=self.sort_reversed
        )