commit 9ba4802d2d22d70af6c6bed7b17c133b64446b4e
parent 2a344b0820949f98d49375a6c3d9e6affd586b65
Author: lash <dev@holbrook.no>
Date: Sat, 28 Mar 2026 20:11:48 -0600
Delete and lock indexed entries on add ledger entry
Diffstat:
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/dummy/usawa/entry.py b/dummy/usawa/entry.py
@@ -83,7 +83,7 @@ class EntryPart:
if self.isdebit:
tag = 'debit'
- tree = lxml.etree.Element(tag, type=self.typ, nsmap=nsmap())
+ tree = lxml.etree.Element(tag, type=self.typ.lower(), nsmap=nsmap())
o = lxml.etree.Element('unit')
o.text = self.unit
diff --git a/dummy/usawa/store.py b/dummy/usawa/store.py
@@ -83,6 +83,7 @@ def pfx_entry(ledger, entry):
raise ValueError('invalid ledger')
return PFX_LEDGER + ledger.topic + serial.to_bytes(8, byteorder='big')
+
"""DB key prefix for adding a WIP entry object.
:param entry: Entry draft object to add to store.
@@ -212,8 +213,11 @@ class KeyStore(BaseStore):
class EntryStore(BaseStore):
+ # TODO: this will overwrite the draft when the entry has a serial, but on check is being performed that the ledger entry was actually added.
def put_draft(self, entry):
k = pfx_entry_draft(entry)
+ if entry.serial > -1:
+ return self.db.put(k, b'\x00', exist_ok=True)
v = entry.serialize()
self.db.put(k, v, exist_ok=True)
@@ -221,6 +225,8 @@ class EntryStore(BaseStore):
def get_draft(self, entry):
k = pfx_entry_draft(entry)
v = self.db.get(k)
+ if len(v) == 1:
+ return None
entry = Entry.deserialize(v)
# TODO: hacky!
i = 0