Refactor GUI to use Multi Document Interface

This commit is contained in:
Thomas Peetz
2025-01-21 20:12:50 +01:00
parent 4e884fdbe5
commit e8660faa06
5 changed files with 122 additions and 68 deletions
@@ -83,6 +83,7 @@ class KontorDB:
filter(MetaDataTable.id == MetaDataColumn.table_id).
filter(MetaDataTable.table_name == table_name).
filter(MetaDataColumn.is_shown == 1).all()):
# self.log.info("get_column_meta_data: %s %s %d", column.column_name, column.column_label, column.column_order)
meta_data[order] = {'column': column.column_name, 'label': column.column_label,
'order': column.column_order, 'ref_column': column.ref_column}
order += 1
@@ -96,7 +97,8 @@ class KontorDB:
'ref_column': column.ref_column
}
order += 1
return meta_data
# self.log.info("get_column_meta_data: %s", meta_data)
return meta_data
def get_columns(self, table_name: str) -> dict:
columns = {}
@@ -131,6 +133,7 @@ class KontorDB:
else:
entries = session.scalars(select(table).filter_by(**filters)).all()
for entry in entries:
# self.log.info("data: %s", entry)
row = []
for order in columns.keys():
column_name = columns[order]['column']
@@ -142,6 +145,7 @@ class KontorDB:
else:
row.append(getattr(entry, column_name))
data.append(row)
# self.log.info("data: %s", data)
return data
def export_db(self, export_type: str, export_file_name: str) -> dict:
@@ -259,7 +263,7 @@ class KontorDB:
return existing_ids
def add_entry(self, table_name: str, update_item: dict):
self.log.info("add entry to table %s with %s", table_name, update_item)
# self.log.info("add entry to table %s with %s", table_name, update_item)
__session__ = sessionmaker(self.engine)
with __session__() as session:
add_item = self.registry[table_name]()
@@ -270,7 +274,7 @@ class KontorDB:
session.commit()
def update_entry(self, table_name, current_id, update_item: dict) -> bool:
self.log.info("update entry to table %s", table_name)
# self.log.info("update entry to table %s", table_name)
__session__ = sessionmaker(self.engine)
with __session__() as session:
existing_item = session.query(self.registry[table_name]).get(current_id)
@@ -335,7 +339,7 @@ class KontorDB:
def delete_entries(self):
for (table_name, table) in self.registry.items():
self.log.info("delete entries from table %s", table_name)
# self.log.info("delete entries from table %s", table_name)
__session__ = sessionmaker(self.engine)
with __session__() as session:
items = session.query(table).all()