usawa

Signed, immutable accounting.
Info | Log | Files | Refs | Submodules | LICENSE

commit 053b446897e6f286649e3d1186d511fb7f7bff62
parent 56ae8058babbb17c751ee933c3d70de878aaa699
Author: Carlosokumu <carlosokumu254@gmail.com>
Date:   Tue, 24 Feb 2026 19:15:19 +0300

implement loading entries from the store

Diffstat:
Mdummy/usawa/gui/views/entry_list_view.py | 104+++++++++++++++++++++++++-------------------------------------------------------
1 file changed, 32 insertions(+), 72 deletions(-)

diff --git a/dummy/usawa/gui/views/entry_list_view.py b/dummy/usawa/gui/views/entry_list_view.py @@ -5,17 +5,19 @@ from usawa.gui.models.entry_item import EntryItem from usawa.gui.views.create_entry_view import create_entry_page from usawa.gui.views.entry_details_view import create_entry_details_page -logg = logging.getLogger("gui.mainwindow") +logg = logging.getLogger("gui.entrylist") class EntryListView(Gtk.Box): """The entry list view with filters, table, and FAB""" - def __init__(self, nav_view,entry_controller, **kwargs): + def __init__(self, nav_view,entry_controller,entries = None,refresh_callback=None, **kwargs): super().__init__(orientation=Gtk.Orientation.VERTICAL, spacing=0, **kwargs) self.nav_view = nav_view self.entry_controller = entry_controller - + self.entries = entries or [] + self.refresh_callback = refresh_callback + # Overlay for FAB overlay = Gtk.Overlay() self.append(overlay) @@ -300,6 +302,8 @@ class EntryListView(Gtk.Box): def on_create_window_closed(self, window): # Refresh the entry list logg.info("Create entry window closed") + if self.refresh_callback: + self.refresh_callback() return False @@ -375,7 +379,6 @@ class EntryListView(Gtk.Box): scrolled.set_child(column_view) table_box.append(scrolled) - self._populate_sample_data() return table_box @@ -402,7 +405,7 @@ class EntryListView(Gtk.Box): entry = list_item.get_item() label = list_item.get_child() label.set_text(entry.tx_date) - + def _on_desc_setup(self, factory, list_item): label = Gtk.Label() label.set_halign(Gtk.Align.START) @@ -535,73 +538,30 @@ class EntryListView(Gtk.Box): logg.info(f"View entry clicked: {entry.serial}") details_page = create_entry_details_page(entry,self.nav_view) self.nav_view.push(details_page) - - def _populate_sample_data(self): - """Add sample entries to the table""" - sample_entries = [ - EntryItem( - serial=0, - tx_date="2024-02-11 14:30:00", - description="Monthly rent payment", - auth_state="trusted", - source_unit="BTC", - source_type="Expense", - source_path="deposit/rent", - dest_unit="BTC", - dest_type="Asset", - dest_path="rent/apartment" - ), - EntryItem( - serial=1, - tx_date="2024-02-11 09:15:00", - description="Utility deposit", - auth_state="not_trusted", - source_unit="BTC", - source_type="Asset", - source_path="bank/saving", - dest_unit="BTC", - dest_type="Asset", - dest_path="deposits/utils" - ), - EntryItem( - serial=2, - tx_date="2024-02-11 11:15:00", - description="Late payment fine", - auth_state="unknown", - source_unit="BTC", - source_type="Liability", - source_path="fees/late-pay", - dest_unit="BTC", - dest_type="Income", - dest_path="bank/checking" - ), - EntryItem( - serial=3, - tx_date="2024-02-11 4:15:00", - description="Security deposit", - auth_state="invalid", - source_unit="BTC", - source_type="Income", - source_path="bank/income", - dest_unit="BTC", - dest_type="Expense", - dest_path="bank/expense" - ), - EntryItem( - serial=4, - tx_date="2024-02-11 4:16:00", - description="Grocery purchase", + + + def _load_entries(self): + """Populate table with LedgerEntry data""" + logg.info("Loading entries into ListStore") + self.entries = self.entry_controller.get_all_entries() + self.entry_store.remove_all() + if not self.entries: + return + for entry in self.entries: + item = EntryItem( + serial=entry.serial, + parent_digest=entry.parent_digest, + tx_date=entry.tx_date, + tx_ref=entry.tx_reference, + tx_date_rg=entry.date_registered, + description=entry.description, auth_state="unsigned", - source_unit="BTC", - source_type="Asset", - source_path="bank/checking", - dest_unit="BTC", - dest_type="Expense", - dest_path="food/groceries" - ), - ] - - for entry in sample_entries: - self.entry_store.append(entry) + source_path=entry.source_path, + source_unit=entry.source_unit, + dest_path=entry.dest_path, + dest_unit=entry.dest_unit, + ) + self.entry_store.append(item) +