'Display tree of calculated Accounts over blocks up_incl+1.'
id_ = int(self.params.first('up_incl')
or str(len(self.server.ledger.blocks) - 1))
- roots = [ac for ac in self.server.ledger.accounts.values()
+ roots = [ac for ac in self.server.ledger.calc_accounts().values()
if not ac.parent]
ctx['roots'] = sorted(roots, key=lambda r: r.basename)
ctx['valid'] = self.server.ledger.blocks_valid_up_incl(id_)
def get_edit(self, ctx, raw: bool) -> None:
'Display edit form for individual Booking.'
-
def make_balance_roots(b: DatBlock) -> list[dict[str, Any]]:
acc_changes = b.booking.account_changes if b.booking else {}
observed_tree: list[dict[str, Any]] = []
break
if already_registered:
continue
- pre = self.server.ledger.accounts[path].get_wealth(id_ - 1)
- post = self.server.ledger.accounts[path].get_wealth(id_)
+ pre = accounts[path].get_wealth(id_ - 1)
+ post = accounts[path].get_wealth(id_)
targeted = full_path == path
diff = {
cur: amt for cur, amt in (post - pre).moneys.items()
parent_children = node['children']
return observed_tree
+ accounts = self.server.ledger.calc_accounts()
id_ = int(self.path_toks[2])
block = self.server.ledger.blocks[id_]
ctx['block'] = block
self._send_rendered(_PAGENAME_EDIT_RAW, ctx)
else:
ctx['raw_gap_lines'] = [dl.raw for dl in block.gap.lines]
- ctx['all_accounts'] = sorted(self.server.ledger.accounts.keys())
+ ctx['all_accounts'] = sorted(accounts.keys())
ctx['booking_lines'] = []
if block.booking:
ctx['booking_lines'] += [block.booking.intro_line.as_dict]
return total
def add_wealth_diff(self, booking_id: int, wealth_diff: _Wealth) -> None:
- 'Add knowledge that _Booking of booking_add added wealth_diff.'
+ 'Add knowledge that _Booking of booking_id added wealth_diff.'
if booking_id in self._wealth_diffs:
self._wealth_diffs[booking_id] += wealth_diff
else:
lines += block.lines
return lines
- @property
- def accounts(self) -> dict[str, Account]:
+ def calc_accounts(self) -> dict[str, Account]:
'Build mapping of account names to Accounts.'
accounts: dict[str, Account] = {}