diff --git a/doc/GUI-Design.rnote b/doc/GUI-Design.rnote deleted file mode 100644 index 48b25ea..0000000 Binary files a/doc/GUI-Design.rnote and /dev/null differ diff --git a/doc/GUI-FirstStart.pdf b/doc/GUI-FirstStart.pdf new file mode 100644 index 0000000..9170d11 Binary files /dev/null and b/doc/GUI-FirstStart.pdf differ diff --git a/doc/GUI-FirstStart.rnote b/doc/GUI-FirstStart.rnote new file mode 100644 index 0000000..bb2a65b Binary files /dev/null and b/doc/GUI-FirstStart.rnote differ diff --git a/doc/GUI-Mitarbeiter.pdf b/doc/GUI-Mitarbeiter.pdf new file mode 100644 index 0000000..8ae63bf Binary files /dev/null and b/doc/GUI-Mitarbeiter.pdf differ diff --git a/doc/GUI-Mitarbeiter.rnote b/doc/GUI-Mitarbeiter.rnote new file mode 100644 index 0000000..cd98a48 Binary files /dev/null and b/doc/GUI-Mitarbeiter.rnote differ diff --git a/doc/GUI-TemplateTopBar.pdf b/doc/GUI-TemplateTopBar.pdf new file mode 100644 index 0000000..ab6a8a0 Binary files /dev/null and b/doc/GUI-TemplateTopBar.pdf differ diff --git a/doc/GUI-TemplateTopBar.rnote b/doc/GUI-TemplateTopBar.rnote new file mode 100644 index 0000000..44967a8 Binary files /dev/null and b/doc/GUI-TemplateTopBar.rnote differ diff --git a/doc/icons/account_circle_24dp_000000_FILL0_wght400_GRAD0_opsz24.png b/doc/icons/account_circle_24dp_000000_FILL0_wght400_GRAD0_opsz24.png new file mode 100644 index 0000000..f7116d5 Binary files /dev/null and b/doc/icons/account_circle_24dp_000000_FILL0_wght400_GRAD0_opsz24.png differ diff --git a/doc/icons/filter_alt_24dp_000000_FILL0_wght400_GRAD0_opsz24.png b/doc/icons/filter_alt_24dp_000000_FILL0_wght400_GRAD0_opsz24.png new file mode 100644 index 0000000..cc8b102 Binary files /dev/null and b/doc/icons/filter_alt_24dp_000000_FILL0_wght400_GRAD0_opsz24.png differ diff --git a/doc/icons/info_24dp_000000_FILL0_wght400_GRAD0_opsz24.png b/doc/icons/info_24dp_000000_FILL0_wght400_GRAD0_opsz24.png new file mode 100644 index 0000000..b87c9da Binary files /dev/null and b/doc/icons/info_24dp_000000_FILL0_wght400_GRAD0_opsz24.png differ diff --git a/doc/icons/menu_24dp_000000_FILL0_wght400_GRAD0_opsz24.png b/doc/icons/menu_24dp_000000_FILL0_wght400_GRAD0_opsz24.png new file mode 100644 index 0000000..03c9bb6 Binary files /dev/null and b/doc/icons/menu_24dp_000000_FILL0_wght400_GRAD0_opsz24.png differ diff --git a/doc/icons/search_24dp_000000_FILL0_wght400_GRAD0_opsz24.png b/doc/icons/search_24dp_000000_FILL0_wght400_GRAD0_opsz24.png new file mode 100644 index 0000000..9f2956b Binary files /dev/null and b/doc/icons/search_24dp_000000_FILL0_wght400_GRAD0_opsz24.png differ diff --git a/doc/icons/settings_24dp_000000_FILL0_wght400_GRAD0_opsz24.png b/doc/icons/settings_24dp_000000_FILL0_wght400_GRAD0_opsz24.png new file mode 100644 index 0000000..4e3e1a9 Binary files /dev/null and b/doc/icons/settings_24dp_000000_FILL0_wght400_GRAD0_opsz24.png differ diff --git a/doc/icons/timer_24dp_000000_FILL0_wght400_GRAD0_opsz24 (1).png b/doc/icons/timer_24dp_000000_FILL0_wght400_GRAD0_opsz24 (1).png new file mode 100644 index 0000000..33a11d8 Binary files /dev/null and b/doc/icons/timer_24dp_000000_FILL0_wght400_GRAD0_opsz24 (1).png differ diff --git a/gui/firststart_fedora-2.fritz.box_Nov-01-153358-2024_Conflict.qml b/gui/firststart_fedora-2.fritz.box_Nov-01-153358-2024_Conflict.qml new file mode 100644 index 0000000..6c752c4 --- /dev/null +++ b/gui/firststart_fedora-2.fritz.box_Nov-01-153358-2024_Conflict.qml @@ -0,0 +1,381 @@ +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls +import QtQuick.Controls.Material + + + +// Item { + +// benutzername +// passwort +// server +// port +// benutzername(db) +// passwort(db) +// DbName +// type + + +// } + +Item +{ + width: 640 + height: 480 + visible: true + + Material.theme: Material.Dark + Material.accent: Material.BlueGrey + + ColumnLayout + { + anchors.fill: parent + TabBar + { + id: bar + Layout.fillWidth: true + TabButton + { + text: qsTr("Benutzer erstellen") + } + + TabButton + { + text: qsTr("Datenbank einrichten") + } + + TabButton + { + text: qsTr("TEST TAB") //NUR TESTTAB UM LAYOUT OPTIONEN ZU TESTEN + } + + TabButton + { + text: qsTr("TEST TAB 2") + } + } + + StackLayout + { + Layout.fillWidth: true + Layout.fillHeight: true + currentIndex: bar.currentIndex + Layout.margins: 9 + + Item + { + id: createUser + Layout.fillWidth: parent.width + + GridLayout + { + id: createUserGrid + columns: 2 + anchors.fill: parent + Layout.margins: 9 + Label + { + text: qsTr("Benutzername:") + Layout.alignment: Qt.AlignRight + } + + TextField + { + id: benutzerName + placeholderText: qsTr("Hier Benutzername eingeben") + Layout.fillWidth: true + height: 3 + } + + Label + { + text: qsTr("Passwort:") + Layout.alignment: Qt.AlignRight + } + + TextField + { + id: password + echoMode: TextInput.Password + placeholderText: qsTr("Hier Passwort eingeben") + Layout.fillWidth: true + } + + Item + { + Layout.fillHeight: true + } + } + } + + Item + { + id: settingsDB + Layout.fillWidth: parent.width + + GridLayout + { + id: dbGrid + columns: 2 + anchors.fill: parent + + Label + { + text: qsTr("DB-Host:") + Layout.alignment: Qt.AlignRight + } + + TextField + { + id: dbHost + placeholderText: qsTr("Hier Host eingeben") + Layout.fillWidth: true + } + + Label + { + text: qsTr("DB-Port:") + Layout.alignment: Qt.AlignRight + } + + TextField + { + id: dbPort + placeholderText: qsTr("Hier DB-Port eingeben") + Layout.fillWidth: true + } + + Label + { + text: qsTr("DB-Name:") + Layout.alignment: Qt.AlignRight + } + + TextField + { + id: dbName + placeholderText: qsTr("Hier DB-Name eingeben") + Layout.fillWidth: true + } + + Label + { + text: qsTr("DB-Benutzername:") + Layout.alignment: Qt.AlignRight + } + + TextField + { + id: dbUserName + placeholderText: qsTr("Hier DB-Benutzername eingeben") + Layout.fillWidth: true + } + + Label + { + text: qsTr("DB-Passwort:") + Layout.alignment: Qt.AlignRight + } + + TextField + { + id: dbPassword + echoMode: TextInput.Password + placeholderText: qsTr("Hier DB-Passwort eingeben") + Layout.fillWidth: true + } + + Item + { + Layout.fillHeight: true + } + } + } + //ANFANG TESTCODE KEINE IDS VERGEBEN + Item + { + + Frame + { + anchors.fill: parent + anchors.margins: 9 + + GridLayout + { + + columns: 2 + anchors.fill: parent + Label + { + text: qsTr("DB-Host:") + Layout.alignment: Qt.AlignRight + } + + TextField + { + + placeholderText: qsTr("Hier Host eingeben") + Layout.fillWidth: true + } + + Label + { + text: qsTr("DB-Port:") + Layout.alignment: Qt.AlignRight + } + + TextField + { + + placeholderText: qsTr("Hier DB-Port eingeben") + Layout.fillWidth: true + } + + Label + { + text: qsTr("DB-Name:") + Layout.alignment: Qt.AlignRight + } + + TextField + { + + placeholderText: qsTr("Hier DB-Name eingeben") + Layout.fillWidth: true + } + + Label + { + text: qsTr("DB-Benutzername:") + Layout.alignment: Qt.AlignRight + } + + TextField + { + + placeholderText: qsTr("Hier DB-Benutzername eingeben") + Layout.fillWidth: true + } + + Label + { + text: qsTr("DB-Passwort:") + Layout.alignment: Qt.AlignRight + } + + TextField + { + + echoMode: TextInput.Password + placeholderText: qsTr("Hier DB-Passwort eingeben") + Layout.fillWidth: true + } + } + } + } + + Item + { + GridLayout + { + anchors.fill: parent + anchors.margins: 9 + columns: 2 + + Label + { + text: qsTr("DB-Host:") + Layout.alignment: Qt.AlignRight + } + + TextField + { + placeholderText: qsTr("Hier Host eingeben") + Layout.fillWidth: true + } + + Label + { + text: qsTr("DB-Port:") + Layout.alignment: Qt.AlignRight + } + + TextField + { + placeholderText: qsTr("Hier DB-Port eingeben") + Layout.fillWidth: true + } + + Label + { + text: qsTr("DB-Name:") + Layout.alignment: Qt.AlignRight + } + + TextField + { + placeholderText: qsTr("Hier DB-Name eingeben") + Layout.fillWidth: true + } + + Label + { + text: qsTr("DB-Benutzername:") + Layout.alignment: Qt.AlignRight + } + + TextField + { + placeholderText: qsTr("Hier DB-Benutzername eingeben") + Layout.fillWidth: true + } + + Label + { + text: qsTr("DB-Passwort:") + Layout.alignment: Qt.AlignRight + } + + TextField + { + echoMode: TextInput.Password + placeholderText: qsTr("Hier DB-Passwort eingeben") + Layout.fillWidth: true + } + + Label + { + //Spacer Label + } + } + } + //ENDE TESTCODE + } + RowLayout + { + Layout.margins: 9 + + Item + { + Layout.fillWidth: true + } + + Button + { + id: cancelBtn + text: qsTr("Abbrechen") + } + + Button + { + id: submitBtn + text: qsTr("Speichern") + onClicked: + { + config.createUser(benutzerName.text) + } + } + } + } +} diff --git a/gui/main_fedora-2.fritz.box_Nov-01-153358-2024_Conflict.qml b/gui/main_fedora-2.fritz.box_Nov-01-153358-2024_Conflict.qml new file mode 100644 index 0000000..f3b9933 --- /dev/null +++ b/gui/main_fedora-2.fritz.box_Nov-01-153358-2024_Conflict.qml @@ -0,0 +1,25 @@ +import QtQuick +import QtQuick.Controls +import QtQuick.Controls.Material + + +ApplicationWindow +{ + id: window + width: 640 + height: 480 + visible: true + Material.theme: Material.Dark + Material.accent: Material.BlueGrey + title: bad_config? "Pyqcrm Einstellungen":"Pyqcrm" + Loader + { + id: mainWindow + + + source: bad_config? "firststart.qml":"start.qml" + } + + + +} diff --git a/gui/start_fedora-2.fritz.box_Nov-01-153358-2024_Conflict.qml b/gui/start_fedora-2.fritz.box_Nov-01-153358-2024_Conflict.qml new file mode 100644 index 0000000..e06f032 --- /dev/null +++ b/gui/start_fedora-2.fritz.box_Nov-01-153358-2024_Conflict.qml @@ -0,0 +1,13 @@ +import QtQuick + +Item +{ + + + anchors.fill: parent + + parent.width: 1080 + parent.height: 1920 + + +} diff --git a/lib/ConfigLoader_fedora-2.fritz.box_Nov-01-153359-2024_Conflict.py b/lib/ConfigLoader_fedora-2.fritz.box_Nov-01-153359-2024_Conflict.py new file mode 100644 index 0000000..060450d --- /dev/null +++ b/lib/ConfigLoader_fedora-2.fritz.box_Nov-01-153359-2024_Conflict.py @@ -0,0 +1,39 @@ +# This Python file uses the following encoding: utf-8 +import toml +from platformdirs import user_config_dir +from pathlib import Path +from PySide6.QtCore import QObject, Slot + + +class ConfigLoader(QObject): + __config = None + + def __init__(self): + super().__init__() + self.config_dir = user_config_dir() + '/pyqcrm' #user_config_dir = Funktion platformdirs + config_dir = Path(self.config_dir) + + config_dir.mkdir(0o750, True, True) + self.__configLoad() + + @Slot(str) + def createUser(self, username): + print(username) + + def __configLoad(self): + + try: + with open (self.config_dir + '/pyqcrm.toml', 'r') as f: + self.__config = toml.load(f) + except FileNotFoundError: + print("Konnte die Konfiguration nicht laden.") + + + def getConfig(self): + + return self.__config + + def createConfig(self): + + with open(self.config_dir + '/pyqcrm.toml', "w") as datei: + datei.write("[pyqcrm]") diff --git a/pyqcrm.pyproject_fedora-2.fritz.box_Nov-01-153357-2024_Conflict.user b/pyqcrm.pyproject_fedora-2.fritz.box_Nov-01-153357-2024_Conflict.user new file mode 100644 index 0000000..f1a2fc8 --- /dev/null +++ b/pyqcrm.pyproject_fedora-2.fritz.box_Nov-01-153357-2024_Conflict.user @@ -0,0 +1,177 @@ + + + + + + EnvironmentId + {7ec466a2-2387-4782-bda8-b44323a9000c} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + 0 + false + true + false + 2 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + true + Builtin.DefaultTidyAndClazy + 4 + true + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + Python 3.12.7 + Python 3.12.7 + {314257e7-041a-42b7-a4e0-f3e9375ba1af} + 0 + 0 + 0 + + /home/dstoppek/anaconda3/envs/pyqcrm + + + true + Python.PysideBuildStep + /home/dstoppek/anaconda3/envs/pyqcrm/bin/pyside6-project + /home/dstoppek/anaconda3/envs/pyqcrm/bin/pyside6-uic + + 1 + Erstellen + Erstellen + ProjectExplorer.BuildSteps.Build + + + 0 + Bereinigen + Bereinigen + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Python 3.12.7 virtuelle Umgebung + Python.PySideBuildConfiguration + /home/dstoppek/anaconda3/envs/pyqcrm/bin/python + /home/dstoppek/anaconda3/envs/pyqcrm + + 1 + + + 0 + Deployment + Deployment + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + main.py + PythonEditor.RunConfiguration./home/dstoppek/Coden/Projekte/pyqcrm/main.py + /home/dstoppek/Coden/Projekte/pyqcrm/main.py + true + /home/dstoppek/Coden/Projekte/pyqcrm/main.py + true + true + /home/dstoppek/Coden/Projekte/pyqcrm + :0 + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/pyqcrm_fedora-2.fritz.box_Nov-01-153357-2024_Conflict.pyproject b/pyqcrm_fedora-2.fritz.box_Nov-01-153357-2024_Conflict.pyproject new file mode 100644 index 0000000..99d9a73 --- /dev/null +++ b/pyqcrm_fedora-2.fritz.box_Nov-01-153357-2024_Conflict.pyproject @@ -0,0 +1,10 @@ +{ + "files": [ + "gui/firststart.qml", + "lib/ConfigLoader.py", + "lib/__init__.py", + "main.py", + "gui/main.qml", + "gui/start.qml" + ] +}