From 9f236bfd4a656dacbcf9acb2cf7c2bab9188f81d Mon Sep 17 00:00:00 2001 From: matteo porta Date: Mon, 7 Nov 2022 09:27:30 +0100 Subject: [PATCH] crud fix --- src/lib/db/crud_db.py | 7 ++++--- src/ui/crud/crud.py | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/lib/db/crud_db.py b/src/lib/db/crud_db.py index f7ac8cc..8b3e08e 100755 --- a/src/lib/db/crud_db.py +++ b/src/lib/db/crud_db.py @@ -21,9 +21,10 @@ class Crud_DB: @db.connection_context() @db.atomic() def commit(self, data, deleted_rows=None): - deleted = self.table_model.delete().where(self.table_pk << deleted_rows).execute() - if deleted != len(deleted_rows): - raise AssertionError(f"deleted {deleted} rows instead of the expected {len(deleted_rows)}") + if deleted_rows is not None: + deleted = self.table_model.delete().where(self.table_pk << deleted_rows).execute() + if deleted != len(deleted_rows): + raise AssertionError(f"deleted {deleted} rows instead of the expected {len(deleted_rows)}") # SQLITE DOES NOT SUPPORT UPDATE, ONLY REPLACE complete_data = [] for rn, row in enumerate(data): diff --git a/src/ui/crud/crud.py b/src/ui/crud/crud.py index 658af92..79605ac 100755 --- a/src/ui/crud/crud.py +++ b/src/ui/crud/crud.py @@ -443,7 +443,7 @@ class Crud(Widget): # delete rows with primary key changed to avoid duplication if primary key in selected fields and editable if self.db.table_pk.name in self.select and not (self.readonly is None or self.readonly is True or (self.readonly is not False and self.db.table_pk.name in self.readonly)): for rn, r in enumerate(data): - if r[self.db.table_pk.name] != self.data_index[rn]: + if self.data_index[rn] is not None and r[self.db.table_pk.name] != self.data_index[rn]: self.deleted_rows.add(self.data_index[rn]) # INDEX DATA WITH PK try: