From 3d5035ffb3ac459c16596252622838b735a4af7e89090f9e1c56f064609bd383 Mon Sep 17 00:00:00 2001 From: Marco Gatzen Date: Wed, 20 Nov 2024 15:46:01 +0100 Subject: [PATCH] databaseconnection --- doc/Programmstart Diagramm.drawio | 329 ++++++++++++++++-------------- doc/Programmstart Diagramm.pdf | Bin 35863 -> 37308 bytes lib/ConfigLoader.py | 12 +- lib/{ => DB}/BusinessModel.py | 0 lib/DB/DbManager.py | 22 ++ lib/__init__.py | 2 +- main.py | 18 +- pyqcrm.pyproject | 5 +- 8 files changed, 215 insertions(+), 173 deletions(-) rename lib/{ => DB}/BusinessModel.py (100%) create mode 100644 lib/DB/DbManager.py diff --git a/doc/Programmstart Diagramm.drawio b/doc/Programmstart Diagramm.drawio index 40a9842..1aea176 100644 --- a/doc/Programmstart Diagramm.drawio +++ b/doc/Programmstart Diagramm.drawio @@ -35,78 +35,15 @@ - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + - - - - - @@ -127,58 +64,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -193,19 +78,153 @@ - - + + - - - - - - - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -213,10 +232,10 @@ - + - - + + @@ -224,34 +243,44 @@ - + - - + + - + + + + + + + - - + + - + - - - - - - - + + - - + + + + + + - - + + + + + + + diff --git a/doc/Programmstart Diagramm.pdf b/doc/Programmstart Diagramm.pdf index 787eb50fd1fca1cb7f9039f22bac5ebf78f155e42233bff3cab3e8af5f244554..259a89a78dea3f1c3502a613d3c2f8be3e47e8a8709cfb1ac251a3c7b3b8d37e 100644 GIT binary patch delta 15852 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°6I%Cy7y6 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 PCled-fBso#=3;L4 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