Compare commits
2 Commits
304f9cabc5
...
12eb6cf2f4
| Author | SHA256 | Date | |
|---|---|---|---|
| 12eb6cf2f4 | |||
| 93efaabe6d |
72
Gui/AdminUserConfig.qml
Normal file
72
Gui/AdminUserConfig.qml
Normal file
@@ -0,0 +1,72 @@
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Layouts
|
||||
|
||||
GridLayout
|
||||
{
|
||||
id: createUserGrid
|
||||
columns: 2
|
||||
columnSpacing: 5
|
||||
rowSpacing: 9
|
||||
// anchors.fill: parent
|
||||
|
||||
property string name: "pyqcrm"
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("Admin User erstellen")
|
||||
font.pixelSize: 40
|
||||
Layout.columnSpan: 2
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
padding: 15
|
||||
}
|
||||
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("Benutzername:")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
|
||||
TextField
|
||||
{
|
||||
id: benutzerName
|
||||
placeholderText: qsTr("Hier Benutzername eingeben")
|
||||
Layout.fillWidth: true
|
||||
height: 3
|
||||
property string name: "PYQCRM_ADMIN"
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("Passwort:")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
|
||||
TextField
|
||||
{
|
||||
id: password
|
||||
echoMode: TextInput.Password
|
||||
placeholderText: qsTr("Hier Passwort eingeben")
|
||||
Layout.fillWidth: true
|
||||
property string name: "PYQCRM_ADMIN_PASS"
|
||||
}
|
||||
Label
|
||||
{
|
||||
text: qsTr("Info:")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
|
||||
TextField
|
||||
{
|
||||
id: gecos
|
||||
placeholderText: qsTr("Zusätzliche Info")
|
||||
Layout.fillWidth: true
|
||||
property string name: "PYQCRM_ADMIN_INFO"
|
||||
}
|
||||
|
||||
Item
|
||||
{
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
}
|
||||
@@ -182,7 +182,7 @@ Item {
|
||||
MouseArea
|
||||
{
|
||||
id: mouseArea
|
||||
property bool hovered:false
|
||||
property bool hovered: false
|
||||
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
|
||||
104
Gui/DbConfiguration.qml
Normal file
104
Gui/DbConfiguration.qml
Normal file
@@ -0,0 +1,104 @@
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Layouts
|
||||
|
||||
|
||||
GridLayout
|
||||
{
|
||||
// property alias firstStart: firstStartGrid
|
||||
id: dbGrid
|
||||
columns: 2
|
||||
columnSpacing: 5
|
||||
rowSpacing: 9
|
||||
|
||||
property string name: "database"
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("Datenbank Einstellungen")
|
||||
font.pixelSize: 40
|
||||
Layout.columnSpan: 2
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
padding: 15
|
||||
}
|
||||
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("DB-Host:")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
|
||||
}
|
||||
|
||||
TextField
|
||||
{
|
||||
id: dbHost
|
||||
placeholderText: qsTr("Hier Host eingeben")
|
||||
Layout.fillWidth: true
|
||||
property string name: "DB_HOST"
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("DB-Port:")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
|
||||
TextField
|
||||
{
|
||||
id: dbPort
|
||||
placeholderText: qsTr("Hier DB-Port eingeben")
|
||||
Layout.fillWidth: true
|
||||
property string name: "DB_PORT"
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("DB-Name:")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
|
||||
TextField
|
||||
{
|
||||
id: dbName
|
||||
placeholderText: qsTr("Hier DB-Name eingeben")
|
||||
Layout.fillWidth: true
|
||||
property string name: "DB_NAME"
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("DB-Benutzername:")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
|
||||
TextField
|
||||
{
|
||||
id: dbUserName
|
||||
placeholderText: qsTr("Hier DB-Benutzername eingeben")
|
||||
Layout.fillWidth: true
|
||||
property string name: "DB_USER"
|
||||
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("DB-Passwort:")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
|
||||
TextField
|
||||
{
|
||||
id: dbPassword
|
||||
echoMode: TextInput.Password
|
||||
placeholderText: qsTr("Hier DB-Passwort eingeben")
|
||||
Layout.fillWidth: true
|
||||
property string name: "DB_PASS"
|
||||
}
|
||||
|
||||
|
||||
Item
|
||||
{
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
}
|
||||
45
Gui/EncryptionKey.qml
Normal file
45
Gui/EncryptionKey.qml
Normal file
@@ -0,0 +1,45 @@
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Layouts
|
||||
|
||||
GridLayout
|
||||
{
|
||||
id: passEncryptKeyGrid
|
||||
columns: 2
|
||||
columnSpacing: 5
|
||||
rowSpacing: 9
|
||||
// anchors.fill: parent
|
||||
|
||||
property string name: "pyqcrm"
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("Encryption Key eingeben")
|
||||
font.pixelSize: 40
|
||||
Layout.columnSpan: 2
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
padding: 15
|
||||
}
|
||||
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("Encryption Key:")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
|
||||
TextField
|
||||
{
|
||||
id: passEncryptKey
|
||||
placeholderText: qsTr("Hier Encryption Key eingeben")
|
||||
Layout.fillWidth: true
|
||||
height: 3
|
||||
echoMode: TextInput.Password
|
||||
property string name: "ENCRYPT_KEY"
|
||||
}
|
||||
|
||||
Item
|
||||
{
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
}
|
||||
@@ -22,255 +22,79 @@ import "../js/qmldict.js" as Qmldict
|
||||
|
||||
Item
|
||||
{
|
||||
ColumnLayout
|
||||
anchors.fill: parent
|
||||
StackView
|
||||
{
|
||||
id: firstStart
|
||||
anchors.fill: parent
|
||||
TabBar
|
||||
initialItem: "DbConfiguration.qml"
|
||||
}
|
||||
RowLayout
|
||||
{
|
||||
anchors.bottom: parent.bottom
|
||||
anchors.margins: 9
|
||||
width: parent.width
|
||||
|
||||
|
||||
Item
|
||||
{
|
||||
id: bar
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
TabButton
|
||||
Button
|
||||
{
|
||||
id: cancelBtn
|
||||
text: qsTr("Abbrechen")
|
||||
onClicked:
|
||||
{
|
||||
text: qsTr("Benutzer erstellen")
|
||||
}
|
||||
|
||||
TabButton
|
||||
|
||||
{
|
||||
id: dbTab
|
||||
text: qsTr("Datenbank einrichten")
|
||||
|
||||
}
|
||||
|
||||
onCurrentIndexChanged:
|
||||
{
|
||||
submitBtn.text = currentIndex === 0? "Weiter" : "Speichern"
|
||||
Qt.quit()
|
||||
}
|
||||
}
|
||||
|
||||
StackLayout
|
||||
Button
|
||||
{
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
currentIndex: bar.currentIndex
|
||||
Layout.margins: 9
|
||||
id: stackl
|
||||
|
||||
Item
|
||||
id: submitBtn
|
||||
text: qsTr("Speichern")
|
||||
property var grids: firstStart.currentItem
|
||||
property var pyqcrm_conf: ({})
|
||||
property var admin: Boolean
|
||||
onClicked:
|
||||
{
|
||||
id: createUser
|
||||
Layout.fillWidth: parent.width
|
||||
|
||||
GridLayout
|
||||
if (firstStart.currentItem.name === "database")
|
||||
{
|
||||
id: createUserGrid
|
||||
columns: 2
|
||||
columnSpacing: 5
|
||||
rowSpacing: 9
|
||||
anchors.fill: parent
|
||||
Layout.margins: 9
|
||||
property string name: "pyqcrm"
|
||||
|
||||
Label
|
||||
pyqcrm_conf = Qmldict.func(submitBtn.grids)
|
||||
if (pyqcrm_conf)
|
||||
{
|
||||
text: qsTr("Benutzername:")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
|
||||
TextField
|
||||
{
|
||||
id: benutzerName
|
||||
placeholderText: qsTr("Hier Benutzername eingeben")
|
||||
Layout.fillWidth: true
|
||||
height: 3
|
||||
property string name: "PYQCRM_ADMIN"
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("Passwort:")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
|
||||
TextField
|
||||
{
|
||||
id: password
|
||||
echoMode: TextInput.Password
|
||||
placeholderText: qsTr("Hier Passwort eingeben")
|
||||
Layout.fillWidth: true
|
||||
property string name: "PYQCRM_ADMIN_PASS"
|
||||
}
|
||||
Label
|
||||
{
|
||||
text: qsTr("Info:")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
|
||||
TextField
|
||||
{
|
||||
id: gecos
|
||||
placeholderText: qsTr("Zusätzliche Info")
|
||||
Layout.fillWidth: true
|
||||
property string name: "PYQCRM_ADMIN_INFO"
|
||||
}
|
||||
|
||||
Item
|
||||
{
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Item
|
||||
{
|
||||
id: settingsDB
|
||||
Layout.fillWidth: parent.width
|
||||
|
||||
GridLayout
|
||||
{
|
||||
id: dbGrid
|
||||
columns: 2
|
||||
columnSpacing: 5
|
||||
rowSpacing: 9
|
||||
anchors.fill: parent
|
||||
property string name: "database"
|
||||
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("DB-Host:")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
|
||||
}
|
||||
|
||||
TextField
|
||||
{
|
||||
id: dbHost
|
||||
placeholderText: qsTr("Hier Host eingeben")
|
||||
Layout.fillWidth: true
|
||||
property string name: "DB_HOST"
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("DB-Port:")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
|
||||
TextField
|
||||
{
|
||||
id: dbPort
|
||||
placeholderText: qsTr("Hier DB-Port eingeben")
|
||||
Layout.fillWidth: true
|
||||
property string name: "DB_PORT"
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("DB-Name:")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
|
||||
TextField
|
||||
{
|
||||
id: dbName
|
||||
placeholderText: qsTr("Hier DB-Name eingeben")
|
||||
Layout.fillWidth: true
|
||||
property string name: "DB_NAME"
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("DB-Benutzername:")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
|
||||
TextField
|
||||
{
|
||||
id: dbUserName
|
||||
placeholderText: qsTr("Hier DB-Benutzername eingeben")
|
||||
Layout.fillWidth: true
|
||||
property string name: "DB_USER"
|
||||
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("DB-Passwort:")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
|
||||
TextField
|
||||
{
|
||||
id: dbPassword
|
||||
echoMode: TextInput.Password
|
||||
placeholderText: qsTr("Hier DB-Passwort eingeben")
|
||||
Layout.fillWidth: true
|
||||
property string name: "DB_PASS"
|
||||
}
|
||||
|
||||
Item
|
||||
{
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout
|
||||
{
|
||||
Layout.margins: 9
|
||||
|
||||
Item
|
||||
{
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
Button
|
||||
{
|
||||
id: cancelBtn
|
||||
text: qsTr("Abbrechen")
|
||||
onClicked:
|
||||
{
|
||||
Qt.quit()
|
||||
}
|
||||
}
|
||||
|
||||
Button
|
||||
{
|
||||
id: submitBtn
|
||||
text: qsTr("Weiter")
|
||||
property var grids: [createUserGrid, dbGrid]
|
||||
property var pyqcrm_conf: ({})
|
||||
onClicked:
|
||||
{
|
||||
if (bar.itemAt(bar.currentIndex) !== dbTab)
|
||||
{
|
||||
|
||||
bar.currentIndex = 1
|
||||
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
pyqcrm_conf = Qmldict.func(submitBtn.grids)
|
||||
if (pyqcrm_conf)
|
||||
admin = config.setConfig(pyqcrm_conf)
|
||||
if (admin)
|
||||
{
|
||||
config.setConfig(pyqcrm_conf)
|
||||
appLoader.source = "Dashboard.qml"
|
||||
|
||||
topBar.visible = true
|
||||
firstStart.push("EncryptionKey.qml")
|
||||
}
|
||||
else
|
||||
{
|
||||
firstStart.push("AdminUserConfig.qml")
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pyqcrm_conf = Qmldict.func(submitBtn.grids)
|
||||
if (pyqcrm_conf)
|
||||
{
|
||||
admin = config.addAdminUser(pyqcrm_conf)
|
||||
if (admin)
|
||||
{
|
||||
appLoader.source = "Dashboard.qml"
|
||||
topBar.visible = true
|
||||
}
|
||||
else
|
||||
{
|
||||
console.log("Konfiguration Admin fehlgeschlagen")
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Component.onCompleted:
|
||||
{
|
||||
appLoader.window.title = "PYQCRM - Einstellungen"
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,6 +1,6 @@
|
||||
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.7.17 Chrome/128.0.6613.36 Electron/32.0.1 Safari/537.36" version="24.7.17">
|
||||
<diagram name="Seite-1" id="krh1Wum05D0y0HCIq7V8">
|
||||
<mxGraphModel dx="1979" dy="664" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<mxGraphModel dx="1815" dy="569" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
@@ -1234,7 +1234,7 @@
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="DMnziE9b4w_ej3E0RpvA-43" value="KreuzRolle" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="-560" y="180" width="180" height="120" as="geometry" />
|
||||
<mxGeometry x="-560" y="155" width="180" height="145" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="DMnziE9b4w_ej3E0RpvA-44" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;" parent="DMnziE9b4w_ej3E0RpvA-43" vertex="1">
|
||||
<mxGeometry y="30" width="180" height="30" as="geometry" />
|
||||
@@ -1341,7 +1341,7 @@
|
||||
<mxPoint x="-30" y="160" as="sourcePoint" />
|
||||
<mxPoint x="20" y="110" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="-600" y="255" />
|
||||
<mxPoint x="-600" y="230" />
|
||||
<mxPoint x="-600" y="380" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
@@ -1351,7 +1351,7 @@
|
||||
<mxPoint x="-30" y="160" as="sourcePoint" />
|
||||
<mxPoint x="20" y="110" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="-310" y="285" />
|
||||
<mxPoint x="-310" y="260" />
|
||||
<mxPoint x="-310" y="85" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
@@ -2211,93 +2211,145 @@
|
||||
<mxPoint x="1330" y="740" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-5" value="Users" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;" vertex="1" parent="1">
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-5" value="Users" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="-800" y="15" width="180" height="215" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-6" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;" vertex="1" parent="erIxmIpkXy-mj_C2YGJ2-5">
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-6" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;" parent="erIxmIpkXy-mj_C2YGJ2-5" vertex="1">
|
||||
<mxGeometry y="30" width="180" height="35" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-7" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="erIxmIpkXy-mj_C2YGJ2-6">
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-7" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;" parent="erIxmIpkXy-mj_C2YGJ2-6" vertex="1">
|
||||
<mxGeometry width="30" height="35" as="geometry">
|
||||
<mxRectangle width="30" height="35" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-8" value="UsersID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="erIxmIpkXy-mj_C2YGJ2-6">
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-8" value="UsersID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;" parent="erIxmIpkXy-mj_C2YGJ2-6" vertex="1">
|
||||
<mxGeometry x="30" width="150" height="35" as="geometry">
|
||||
<mxRectangle width="150" height="35" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-9" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" vertex="1" parent="erIxmIpkXy-mj_C2YGJ2-5">
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-9" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" parent="erIxmIpkXy-mj_C2YGJ2-5" vertex="1">
|
||||
<mxGeometry y="65" width="180" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-10" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="erIxmIpkXy-mj_C2YGJ2-9">
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-10" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" parent="erIxmIpkXy-mj_C2YGJ2-9" vertex="1">
|
||||
<mxGeometry width="30" height="30" as="geometry">
|
||||
<mxRectangle width="30" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-11" value="username" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="erIxmIpkXy-mj_C2YGJ2-9">
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-11" value="username" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" parent="erIxmIpkXy-mj_C2YGJ2-9" vertex="1">
|
||||
<mxGeometry x="30" width="150" height="30" as="geometry">
|
||||
<mxRectangle width="150" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-12" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" vertex="1" parent="erIxmIpkXy-mj_C2YGJ2-5">
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-12" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" parent="erIxmIpkXy-mj_C2YGJ2-5" vertex="1">
|
||||
<mxGeometry y="95" width="180" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-13" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="erIxmIpkXy-mj_C2YGJ2-12">
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-13" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" parent="erIxmIpkXy-mj_C2YGJ2-12" vertex="1">
|
||||
<mxGeometry width="30" height="30" as="geometry">
|
||||
<mxRectangle width="30" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-14" value="password" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="erIxmIpkXy-mj_C2YGJ2-12">
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-14" value="password" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" parent="erIxmIpkXy-mj_C2YGJ2-12" vertex="1">
|
||||
<mxGeometry x="30" width="150" height="30" as="geometry">
|
||||
<mxRectangle width="150" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-15" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" vertex="1" parent="erIxmIpkXy-mj_C2YGJ2-5">
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-15" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" parent="erIxmIpkXy-mj_C2YGJ2-5" vertex="1">
|
||||
<mxGeometry y="125" width="180" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-16" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="erIxmIpkXy-mj_C2YGJ2-15">
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-16" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" parent="erIxmIpkXy-mj_C2YGJ2-15" vertex="1">
|
||||
<mxGeometry width="30" height="30" as="geometry">
|
||||
<mxRectangle width="30" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-17" value="roleID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="erIxmIpkXy-mj_C2YGJ2-15">
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-17" value="roleID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" parent="erIxmIpkXy-mj_C2YGJ2-15" vertex="1">
|
||||
<mxGeometry x="30" width="150" height="30" as="geometry">
|
||||
<mxRectangle width="150" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-19" value="" style="endArrow=none;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="DMnziE9b4w_ej3E0RpvA-30" target="erIxmIpkXy-mj_C2YGJ2-5">
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-19" value="" style="endArrow=none;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="DMnziE9b4w_ej3E0RpvA-30" target="erIxmIpkXy-mj_C2YGJ2-5" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="-680" y="250" as="sourcePoint" />
|
||||
<mxPoint x="-630" y="200" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-29" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" vertex="1" parent="1">
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-29" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="-800" y="150" width="180" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-30" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="erIxmIpkXy-mj_C2YGJ2-29">
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-30" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" parent="erIxmIpkXy-mj_C2YGJ2-29" vertex="1">
|
||||
<mxGeometry width="30" height="30" as="geometry">
|
||||
<mxRectangle width="30" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-32" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" vertex="1" parent="1">
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-32" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="-800" y="180" width="180" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-33" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="erIxmIpkXy-mj_C2YGJ2-32">
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-33" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" parent="erIxmIpkXy-mj_C2YGJ2-32" vertex="1">
|
||||
<mxGeometry width="30" height="30" as="geometry">
|
||||
<mxRectangle width="30" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-34" value="gecos" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=1;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-34" value="gecos" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=1;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="-770" y="200" width="150" height="30" as="geometry">
|
||||
<mxRectangle width="150" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-31" value="enabled" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=1;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxCell id="erIxmIpkXy-mj_C2YGJ2-31" value="enabled" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=1;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="-770" y="170" width="150" height="30" as="geometry">
|
||||
<mxRectangle width="150" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Ik7nW2LkiDOI4_vW6V7N-1" value="Entities" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="-260" y="40" width="180" height="90" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Ik7nW2LkiDOI4_vW6V7N-2" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;" vertex="1" parent="Ik7nW2LkiDOI4_vW6V7N-1">
|
||||
<mxGeometry y="30" width="180" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Ik7nW2LkiDOI4_vW6V7N-3" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="Ik7nW2LkiDOI4_vW6V7N-2">
|
||||
<mxGeometry width="30" height="30" as="geometry">
|
||||
<mxRectangle width="30" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Ik7nW2LkiDOI4_vW6V7N-4" value="entitiesID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="Ik7nW2LkiDOI4_vW6V7N-2">
|
||||
<mxGeometry x="30" width="150" height="30" as="geometry">
|
||||
<mxRectangle width="150" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Ik7nW2LkiDOI4_vW6V7N-5" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" vertex="1" parent="Ik7nW2LkiDOI4_vW6V7N-1">
|
||||
<mxGeometry y="60" width="180" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Ik7nW2LkiDOI4_vW6V7N-6" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="Ik7nW2LkiDOI4_vW6V7N-5">
|
||||
<mxGeometry width="30" height="30" as="geometry">
|
||||
<mxRectangle width="30" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Ik7nW2LkiDOI4_vW6V7N-7" value="entity" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="Ik7nW2LkiDOI4_vW6V7N-5">
|
||||
<mxGeometry x="30" width="150" height="30" as="geometry">
|
||||
<mxRectangle width="150" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Ik7nW2LkiDOI4_vW6V7N-17" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="-560" y="270" width="180" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Ik7nW2LkiDOI4_vW6V7N-18" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="Ik7nW2LkiDOI4_vW6V7N-17">
|
||||
<mxGeometry width="30" height="30" as="geometry">
|
||||
<mxRectangle width="30" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Ik7nW2LkiDOI4_vW6V7N-19" value="entitiesID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=1;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" vertex="1" parent="Ik7nW2LkiDOI4_vW6V7N-17">
|
||||
<mxGeometry x="30" width="150" height="30" as="geometry">
|
||||
<mxRectangle width="150" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Ik7nW2LkiDOI4_vW6V7N-20" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="Ik7nW2LkiDOI4_vW6V7N-17" target="Ik7nW2LkiDOI4_vW6V7N-2">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="-260" y="290" as="sourcePoint" />
|
||||
<mxPoint x="-210" y="240" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="-290" y="285" />
|
||||
<mxPoint x="-290" y="85" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
|
||||
Binary file not shown.
953
doc/db_schemer_v1-pyqcrm-202411211531.sql
Normal file
953
doc/db_schemer_v1-pyqcrm-202411211531.sql
Normal file
@@ -0,0 +1,953 @@
|
||||
/*M!999999\- enable the sandbox mode */
|
||||
-- MariaDB dump 10.19 Distrib 10.11.10-MariaDB, for Linux (x86_64)
|
||||
--
|
||||
-- Host: bearybot.selfhost.co Database: pyqcrm
|
||||
-- ------------------------------------------------------
|
||||
-- Server version 10.11.8-MariaDB-0ubuntu0.24.04.1
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8mb4 */;
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
||||
--
|
||||
-- Table structure for table `Entities`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `Entities`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `Entities` (
|
||||
`entityid` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`entity` varchar(35) NOT NULL,
|
||||
PRIMARY KEY (`entityid`),
|
||||
UNIQUE KEY `Entities_UNIQUE` (`entity`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `Entities`
|
||||
--
|
||||
|
||||
LOCK TABLES `Entities` WRITE;
|
||||
/*!40000 ALTER TABLE `Entities` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `Entities` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `address`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `address`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `address` (
|
||||
`addressid` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`country` varchar(50) DEFAULT NULL,
|
||||
`address` varchar(50) NOT NULL,
|
||||
PRIMARY KEY (`addressid`),
|
||||
UNIQUE KEY `address_unique` (`address`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `address`
|
||||
--
|
||||
|
||||
LOCK TABLES `address` WRITE;
|
||||
/*!40000 ALTER TABLE `address` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `address` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `assignment`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `assignment`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `assignment` (
|
||||
`contractid` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`employeeid` int(11) NOT NULL,
|
||||
UNIQUE KEY `assignment_unique` (`contractid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_estonian_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `assignment`
|
||||
--
|
||||
|
||||
LOCK TABLES `assignment` WRITE;
|
||||
/*!40000 ALTER TABLE `assignment` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `assignment` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `business`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `business`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `business` (
|
||||
`businessid` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`company` varchar(100) NOT NULL,
|
||||
`street` varchar(100) NOT NULL,
|
||||
`postcodeid` int(11) DEFAULT NULL,
|
||||
`phone` varchar(50) DEFAULT NULL,
|
||||
`mobilephone` varchar(50) DEFAULT NULL,
|
||||
`email` varchar(255) DEFAULT NULL,
|
||||
`homepage` varchar(255) DEFAULT NULL,
|
||||
`director` varchar(100) DEFAULT NULL,
|
||||
`contactpersonid` int(11) DEFAULT NULL,
|
||||
`info` varchar(500) DEFAULT NULL,
|
||||
`btid` int(11) NOT NULL DEFAULT 1,
|
||||
PRIMARY KEY (`businessid`),
|
||||
UNIQUE KEY `customer_unique` (`email`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `business`
|
||||
--
|
||||
|
||||
LOCK TABLES `business` WRITE;
|
||||
/*!40000 ALTER TABLE `business` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `business` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `businesstype`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `businesstype`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `businesstype` (
|
||||
`btypeID` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`description` varchar(35) NOT NULL,
|
||||
PRIMARY KEY (`btypeID`),
|
||||
UNIQUE KEY `businesstype_unique` (`description`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `businesstype`
|
||||
--
|
||||
|
||||
LOCK TABLES `businesstype` WRITE;
|
||||
/*!40000 ALTER TABLE `businesstype` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `businesstype` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `contact`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `contact`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `contact` (
|
||||
`id` int(11) NOT NULL,
|
||||
`contactpersonid` int(11) NOT NULL,
|
||||
`businessid` tinyint(1) NOT NULL DEFAULT 1,
|
||||
UNIQUE KEY `contact_unique` (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `contact`
|
||||
--
|
||||
|
||||
LOCK TABLES `contact` WRITE;
|
||||
/*!40000 ALTER TABLE `contact` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `contact` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `contactperson`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `contactperson`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `contactperson` (
|
||||
`contactpersonid` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`priorityid` int(11) DEFAULT NULL,
|
||||
`lastname` varchar(35) NOT NULL,
|
||||
`firstname` varchar(35) NOT NULL,
|
||||
`phone` varchar(50) DEFAULT NULL,
|
||||
`mobilephone` varchar(50) DEFAULT NULL,
|
||||
`position` varchar(50) DEFAULT NULL,
|
||||
`salutation` varchar(10) DEFAULT NULL,
|
||||
`email` varchar(255) DEFAULT NULL,
|
||||
`birthday` date DEFAULT NULL,
|
||||
`active` tinyint(1) NOT NULL DEFAULT 1,
|
||||
PRIMARY KEY (`contactpersonid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `contactperson`
|
||||
--
|
||||
|
||||
LOCK TABLES `contactperson` WRITE;
|
||||
/*!40000 ALTER TABLE `contactperson` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `contactperson` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `contract`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `contract`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `contract` (
|
||||
`contractid` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`jobdetailid` int(11) NOT NULL,
|
||||
`tariffid` int(11) NOT NULL,
|
||||
`officeid` int(11) NOT NULL COMMENT 'Kostenstelle',
|
||||
`date` date NOT NULL,
|
||||
PRIMARY KEY (`contractid`),
|
||||
UNIQUE KEY `contract_unique` (`jobdetailid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `contract`
|
||||
--
|
||||
|
||||
LOCK TABLES `contract` WRITE;
|
||||
/*!40000 ALTER TABLE `contract` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `contract` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `employee`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `employee`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `employee` (
|
||||
`employeeid` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`lastname` varchar(35) NOT NULL,
|
||||
`firstname` varchar(35) NOT NULL,
|
||||
`gender` varchar(30) DEFAULT NULL,
|
||||
`maritalstatus` varchar(30) DEFAULT NULL,
|
||||
`nationality` varchar(50) NOT NULL,
|
||||
`birthday` date NOT NULL,
|
||||
`street` varchar(100) NOT NULL,
|
||||
`postcodeid` int(11) NOT NULL,
|
||||
`phone` varchar(50) DEFAULT NULL,
|
||||
`mobilephone` varchar(50) DEFAULT NULL,
|
||||
`email` varchar(255) DEFAULT NULL,
|
||||
`identificationid` int(11) NOT NULL,
|
||||
`jobstatusid` int(11) NOT NULL,
|
||||
PRIMARY KEY (`employeeid`),
|
||||
UNIQUE KEY `employee_unique` (`identificationid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `employee`
|
||||
--
|
||||
|
||||
LOCK TABLES `employee` WRITE;
|
||||
/*!40000 ALTER TABLE `employee` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `employee` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `identification`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `identification`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `identification` (
|
||||
`identificationid` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`number` varchar(50) NOT NULL,
|
||||
`expiry` date NOT NULL,
|
||||
`issued` date NOT NULL,
|
||||
`authority` varchar(50) NOT NULL,
|
||||
`typeid` int(11) NOT NULL,
|
||||
PRIMARY KEY (`identificationid`),
|
||||
UNIQUE KEY `identification_unique` (`number`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `identification`
|
||||
--
|
||||
|
||||
LOCK TABLES `identification` WRITE;
|
||||
/*!40000 ALTER TABLE `identification` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `identification` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `identificationtype`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `identificationtype`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `identificationtype` (
|
||||
`typeid` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`type` varchar(50) NOT NULL,
|
||||
PRIMARY KEY (`typeid`),
|
||||
UNIQUE KEY `identificationtype_unique` (`type`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `identificationtype`
|
||||
--
|
||||
|
||||
LOCK TABLES `identificationtype` WRITE;
|
||||
/*!40000 ALTER TABLE `identificationtype` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `identificationtype` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `invoice`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `invoice`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `invoice` (
|
||||
`invoiceid` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`issued` date NOT NULL COMMENT 'Rechnungsdatum',
|
||||
`entry` date NOT NULL COMMENT 'Buchungsdatum',
|
||||
`contractid` int(11) NOT NULL,
|
||||
PRIMARY KEY (`invoiceid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `invoice`
|
||||
--
|
||||
|
||||
LOCK TABLES `invoice` WRITE;
|
||||
/*!40000 ALTER TABLE `invoice` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `invoice` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `jobdetail`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `jobdetail`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `jobdetail` (
|
||||
`jobdetailid` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`duration` decimal(10,0) NOT NULL,
|
||||
`objectid` int(11) NOT NULL,
|
||||
`period` varchar(15) NOT NULL,
|
||||
`personnel` int(11) NOT NULL DEFAULT 1 COMMENT 'number of employees',
|
||||
`price` decimal(10,0) NOT NULL,
|
||||
PRIMARY KEY (`jobdetailid`),
|
||||
UNIQUE KEY `jobdetail_unique` (`objectid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `jobdetail`
|
||||
--
|
||||
|
||||
LOCK TABLES `jobdetail` WRITE;
|
||||
/*!40000 ALTER TABLE `jobdetail` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `jobdetail` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `jobstatus`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `jobstatus`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `jobstatus` (
|
||||
`jobstatusid` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`description` varchar(30) NOT NULL,
|
||||
PRIMARY KEY (`jobstatusid`),
|
||||
UNIQUE KEY `jobstatus_unique` (`description`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `jobstatus`
|
||||
--
|
||||
|
||||
LOCK TABLES `jobstatus` WRITE;
|
||||
/*!40000 ALTER TABLE `jobstatus` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `jobstatus` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `logs`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `logs`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `logs` (
|
||||
`logid` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`recordid` int(11) DEFAULT NULL,
|
||||
`operationtype` varchar(100) NOT NULL,
|
||||
`message` varchar(100) NOT NULL,
|
||||
`logdate` datetime NOT NULL DEFAULT current_timestamp(),
|
||||
PRIMARY KEY (`logid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `logs`
|
||||
--
|
||||
|
||||
LOCK TABLES `logs` WRITE;
|
||||
/*!40000 ALTER TABLE `logs` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `logs` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `medicalcare`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `medicalcare`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `medicalcare` (
|
||||
`medicalcareid` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`company` varchar(50) NOT NULL,
|
||||
PRIMARY KEY (`medicalcareid`),
|
||||
UNIQUE KEY `medicalcare_unique` (`company`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `medicalcare`
|
||||
--
|
||||
|
||||
LOCK TABLES `medicalcare` WRITE;
|
||||
/*!40000 ALTER TABLE `medicalcare` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `medicalcare` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `object`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `object`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `object` (
|
||||
`objectid` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`street` varchar(100) NOT NULL,
|
||||
`postcodeid` int(11) NOT NULL,
|
||||
`contactpersonid` int(11) NOT NULL,
|
||||
`businessid` int(11) NOT NULL,
|
||||
PRIMARY KEY (`objectid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `object`
|
||||
--
|
||||
|
||||
LOCK TABLES `object` WRITE;
|
||||
/*!40000 ALTER TABLE `object` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `object` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `offer`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `offer`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `offer` (
|
||||
`offerid` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`jobdetailid` int(11) NOT NULL,
|
||||
`date` date NOT NULL,
|
||||
PRIMARY KEY (`offerid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `offer`
|
||||
--
|
||||
|
||||
LOCK TABLES `offer` WRITE;
|
||||
/*!40000 ALTER TABLE `offer` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `offer` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `offers`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `offers`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `offers` (
|
||||
`offerid` int(11) NOT NULL,
|
||||
`contractid` int(11) NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Kreuztabelle Angebot - Auftrag';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `offers`
|
||||
--
|
||||
|
||||
LOCK TABLES `offers` WRITE;
|
||||
/*!40000 ALTER TABLE `offers` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `offers` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `office`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `office`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `office` (
|
||||
`officeid` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`office` varchar(50) NOT NULL COMMENT 'Kostenstelle',
|
||||
PRIMARY KEY (`officeid`),
|
||||
UNIQUE KEY `office_unique` (`office`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Kostenstelle';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `office`
|
||||
--
|
||||
|
||||
LOCK TABLES `office` WRITE;
|
||||
/*!40000 ALTER TABLE `office` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `office` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `permissions`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `permissions`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `permissions` (
|
||||
`permissionid` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`permission` varchar(50) NOT NULL,
|
||||
PRIMARY KEY (`permissionid`),
|
||||
UNIQUE KEY `berechtigungen_unique` (`permission`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `permissions`
|
||||
--
|
||||
|
||||
LOCK TABLES `permissions` WRITE;
|
||||
/*!40000 ALTER TABLE `permissions` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `permissions` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `personalrole`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `personalrole`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `personalrole` (
|
||||
`employeeid` int(11) NOT NULL,
|
||||
`roleid` int(11) NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Kreuztabelle';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `personalrole`
|
||||
--
|
||||
|
||||
LOCK TABLES `personalrole` WRITE;
|
||||
/*!40000 ALTER TABLE `personalrole` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `personalrole` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `postcode`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `postcode`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `postcode` (
|
||||
`postcodeid` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`postcode` varchar(15) NOT NULL,
|
||||
`addressid` int(11) NOT NULL,
|
||||
PRIMARY KEY (`postcodeid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `postcode`
|
||||
--
|
||||
|
||||
LOCK TABLES `postcode` WRITE;
|
||||
/*!40000 ALTER TABLE `postcode` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `postcode` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `role`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `role`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `role` (
|
||||
`roleid` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`description` varchar(50) NOT NULL,
|
||||
PRIMARY KEY (`roleid`),
|
||||
UNIQUE KEY `role_unique` (`description`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `role`
|
||||
--
|
||||
|
||||
LOCK TABLES `role` WRITE;
|
||||
/*!40000 ALTER TABLE `role` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `role` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `roles`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `roles`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `roles` (
|
||||
`roleid` int(11) NOT NULL,
|
||||
`permissionid` int(11) NOT NULL,
|
||||
`entityid` int(11) NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `roles`
|
||||
--
|
||||
|
||||
LOCK TABLES `roles` WRITE;
|
||||
/*!40000 ALTER TABLE `roles` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `roles` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `salestax`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `salestax`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `salestax` (
|
||||
`salestaxid` varchar(20) NOT NULL,
|
||||
`businessid` int(11) NOT NULL,
|
||||
PRIMARY KEY (`salestaxid`),
|
||||
UNIQUE KEY `salestax_unique` (`businessid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `salestax`
|
||||
--
|
||||
|
||||
LOCK TABLES `salestax` WRITE;
|
||||
/*!40000 ALTER TABLE `salestax` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `salestax` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `service`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `service`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `service` (
|
||||
`servicetypeid` int(11) NOT NULL,
|
||||
`servicedescid` int(11) NOT NULL,
|
||||
`objectid` int(11) NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `service`
|
||||
--
|
||||
|
||||
LOCK TABLES `service` WRITE;
|
||||
/*!40000 ALTER TABLE `service` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `service` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `servicedesc`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `servicedesc`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `servicedesc` (
|
||||
`servicedescid` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`description` varchar(1000) NOT NULL,
|
||||
PRIMARY KEY (`servicedescid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `servicedesc`
|
||||
--
|
||||
|
||||
LOCK TABLES `servicedesc` WRITE;
|
||||
/*!40000 ALTER TABLE `servicedesc` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `servicedesc` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `servicetype`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `servicetype`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `servicetype` (
|
||||
`servicetypeid` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`description` varchar(50) NOT NULL,
|
||||
PRIMARY KEY (`servicetypeid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `servicetype`
|
||||
--
|
||||
|
||||
LOCK TABLES `servicetype` WRITE;
|
||||
/*!40000 ALTER TABLE `servicetype` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `servicetype` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `socialsecurity`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `socialsecurity`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `socialsecurity` (
|
||||
`employeeid` int(11) NOT NULL,
|
||||
`socialsecurityno` varchar(30) NOT NULL,
|
||||
`medicalcareid` int(11) NOT NULL,
|
||||
UNIQUE KEY `socialsecurity_unique` (`employeeid`),
|
||||
UNIQUE KEY `socialsecurity_unique_1` (`socialsecurityno`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `socialsecurity`
|
||||
--
|
||||
|
||||
LOCK TABLES `socialsecurity` WRITE;
|
||||
/*!40000 ALTER TABLE `socialsecurity` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `socialsecurity` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `tariff`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `tariff`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `tariff` (
|
||||
`tariffid` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`tariff` decimal(10,0) NOT NULL COMMENT 'Festgelegter Stundensatz',
|
||||
PRIMARY KEY (`tariffid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='Stundensatz Tabelle';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `tariff`
|
||||
--
|
||||
|
||||
LOCK TABLES `tariff` WRITE;
|
||||
/*!40000 ALTER TABLE `tariff` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `tariff` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `timetrack`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `timetrack`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `timetrack` (
|
||||
`employeeid` int(11) NOT NULL,
|
||||
`start` datetime NOT NULL,
|
||||
`stop` datetime NOT NULL,
|
||||
`vacation` tinyint(1) NOT NULL DEFAULT 0
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `timetrack`
|
||||
--
|
||||
|
||||
LOCK TABLES `timetrack` WRITE;
|
||||
/*!40000 ALTER TABLE `timetrack` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `timetrack` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `users`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `users`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `users` (
|
||||
`usersid` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`username` varchar(50) NOT NULL,
|
||||
`password` varchar(150) NOT NULL,
|
||||
`enabled` tinyint(1) NOT NULL DEFAULT 1,
|
||||
`roleid` int(11) NOT NULL,
|
||||
`gecos` varchar(75) DEFAULT NULL,
|
||||
PRIMARY KEY (`usersid`),
|
||||
UNIQUE KEY `users_unique` (`username`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `users`
|
||||
--
|
||||
|
||||
LOCK TABLES `users` WRITE;
|
||||
/*!40000 ALTER TABLE `users` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `users` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Dumping routines for database 'pyqcrm'
|
||||
--
|
||||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||||
/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
|
||||
/*!50003 DROP PROCEDURE IF EXISTS `addPermission` */;
|
||||
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
||||
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
||||
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
||||
/*!50003 SET character_set_client = utf8mb4 */ ;
|
||||
/*!50003 SET character_set_results = utf8mb4 */ ;
|
||||
/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
||||
DELIMITER ;;
|
||||
CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addPermission`(IN newpermission VARCHAR(50))
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT 1 FROM permissions WHERE permission = newpermission) THEN
|
||||
INSERT INTO permissions(permission) VALUES(newpermission);
|
||||
END IF;
|
||||
END ;;
|
||||
DELIMITER ;
|
||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
||||
/*!50003 SET character_set_results = @saved_cs_results */ ;
|
||||
/*!50003 SET collation_connection = @saved_col_connection */ ;
|
||||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||||
/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
|
||||
/*!50003 DROP PROCEDURE IF EXISTS `addRole` */;
|
||||
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
||||
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
||||
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
||||
/*!50003 SET character_set_client = utf8mb4 */ ;
|
||||
/*!50003 SET character_set_results = utf8mb4 */ ;
|
||||
/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
||||
DELIMITER ;;
|
||||
CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `addRole`(IN newdescription VARCHAR(50))
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT 1 FROM `role` WHERE description = newdescription) THEN
|
||||
INSERT INTO `role`(description) VALUES(newdescription);
|
||||
END IF;
|
||||
END ;;
|
||||
DELIMITER ;
|
||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
||||
/*!50003 SET character_set_results = @saved_cs_results */ ;
|
||||
/*!50003 SET collation_connection = @saved_col_connection */ ;
|
||||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||||
/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
|
||||
/*!50003 DROP PROCEDURE IF EXISTS `createUser` */;
|
||||
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
||||
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
||||
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
||||
/*!50003 SET character_set_client = utf8mb4 */ ;
|
||||
/*!50003 SET character_set_results = utf8mb4 */ ;
|
||||
/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
||||
DELIMITER ;;
|
||||
CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `createUser`(IN uname VARCHAR(35), IN password VARCHAR(150), IN gecos VARCHAR(75), IN admin BOOL)
|
||||
BEGIN
|
||||
DECLARE userrole INT;
|
||||
SET userrole = 2;
|
||||
IF admin = 1 THEN
|
||||
SET userrole = 1;
|
||||
END IF;
|
||||
IF NOT EXISTS (SELECT 1 FROM users WHERE username = uname) THEN
|
||||
INSERT INTO users(username, password, gecos, roleid) VALUES(uname, password, gecos, userrole);
|
||||
END IF;
|
||||
END ;;
|
||||
DELIMITER ;
|
||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
||||
/*!50003 SET character_set_results = @saved_cs_results */ ;
|
||||
/*!50003 SET collation_connection = @saved_col_connection */ ;
|
||||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||||
/*!50003 SET sql_mode = 'IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
|
||||
/*!50003 DROP PROCEDURE IF EXISTS `getBusiness` */;
|
||||
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
||||
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
||||
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
||||
/*!50003 SET character_set_client = utf8mb4 */ ;
|
||||
/*!50003 SET character_set_results = utf8mb4 */ ;
|
||||
/*!50003 SET collation_connection = utf8mb4_general_ci */ ;
|
||||
DELIMITER ;;
|
||||
CREATE DEFINER=`pyqcrm`@`%` PROCEDURE `getBusiness`(IN businesstype VARCHAR(35))
|
||||
BEGIN
|
||||
SELECT * FROM business;
|
||||
END ;;
|
||||
DELIMITER ;
|
||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
||||
/*!50003 SET character_set_results = @saved_cs_results */ ;
|
||||
/*!50003 SET collation_connection = @saved_col_connection */ ;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
-- Dump completed on 2024-11-21 15:31:16
|
||||
@@ -3,19 +3,18 @@
|
||||
function func(tabs)
|
||||
{
|
||||
let pyqcrm_conf = {};
|
||||
for (var j = 0; j < tabs.length; j++)
|
||||
|
||||
pyqcrm_conf[tabs.name] = {}
|
||||
for (var i = 0; i < tabs.children.length; i++)
|
||||
{
|
||||
pyqcrm_conf[tabs[j].name] = {}
|
||||
for (var i = 0; i < tabs[j].children.length; i++)
|
||||
if (tabs.children[i].name)
|
||||
{
|
||||
if (tabs[j].children[i].name)
|
||||
{
|
||||
if (!tabs[j].children[i].text.trim())
|
||||
return false
|
||||
pyqcrm_conf[tabs[j].name] [tabs[j].children[i].name] = tabs[j].children[i].text
|
||||
}
|
||||
if (!tabs.children[i].text.trim())
|
||||
return false
|
||||
pyqcrm_conf[tabs.name] [tabs.children[i].name] = tabs.children[i].text
|
||||
}
|
||||
}
|
||||
|
||||
return pyqcrm_conf
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ from PySide6.QtCore import QObject, Slot
|
||||
from .Vermasseln import Vermasseln
|
||||
import shutil
|
||||
from urllib.parse import urlparse
|
||||
from .DB.DbManager import DbManager
|
||||
import os
|
||||
|
||||
class ConfigLoader(QObject):
|
||||
@@ -31,31 +32,57 @@ class ConfigLoader(QObject):
|
||||
confile = confile[1:]
|
||||
shutil.copyfile(confile, self.config_dir+ '/pyqcrm.toml')
|
||||
|
||||
@Slot(dict)
|
||||
@Slot(dict, result= bool)
|
||||
def addAdminUser(self, admin_config):
|
||||
print(admin_config)
|
||||
return True
|
||||
|
||||
@Slot(dict, result= bool)
|
||||
def setConfig(self, app_config):
|
||||
try:
|
||||
with open (self.config_dir + '/pyqcrm.toml', 'w') as f:
|
||||
config = Vermasseln().oscarVermasseln(toml.dumps(app_config))
|
||||
f.write(config)
|
||||
except FileNotFoundError:
|
||||
print("Konnte die Konfiguration nicht speichern.")
|
||||
|
||||
conf = self.__checkDbConnection(app_config)
|
||||
if conf:
|
||||
try:
|
||||
with open (self.config_dir + '/pyqcrm.toml', 'w') as f:
|
||||
config = Vermasseln().oscarVermasseln(toml.dumps(app_config))
|
||||
f.write(config)
|
||||
except FileNotFoundError:
|
||||
conf = False
|
||||
print("Konnte die Konfiguration nicht speichern.")
|
||||
conf = self.__checkAdminUser()
|
||||
|
||||
return conf
|
||||
|
||||
|
||||
def __configLoad(self):
|
||||
try:
|
||||
with open (self.config_dir + '/pyqcrm.toml', 'r') as f:
|
||||
config = f.read()
|
||||
|
||||
self.__config = toml.loads(Vermasseln().entschluesseln(config))
|
||||
except FileNotFoundError:
|
||||
print("Konnte die Konfiguration nicht laden.")
|
||||
|
||||
except TypeError:
|
||||
print("Invalid Configuration")
|
||||
# except Exception as e:
|
||||
# print(str(e))
|
||||
|
||||
|
||||
def getConfig(self):
|
||||
|
||||
return self.__config
|
||||
|
||||
def createConfig(self):
|
||||
def __createConfig(self):
|
||||
|
||||
with open(self.config_dir + '/pyqcrm.toml', "w") as datei:
|
||||
datei.write("[pyqcrm]")
|
||||
|
||||
def __checkDbConnection(self, db_config):
|
||||
con = DbManager(db_config['database']).getConnection()
|
||||
if con:
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
def __checkAdminUser(self):
|
||||
pass
|
||||
|
||||
@@ -17,11 +17,19 @@ class Vermasseln:
|
||||
return storable_data
|
||||
|
||||
def entschluesseln(self, data):
|
||||
data_list = data.split(".")
|
||||
encoded_data = [b64decode(x) for x in data_list]
|
||||
cipher = self.__vermasslungsKobold()
|
||||
decrypted_data = cipher.decrypt_and_verify(encoded_data[0], encoded_data[1])
|
||||
decrypted_data = decrypted_data.decode("utf-8")
|
||||
try:
|
||||
data_list = data.split(".")
|
||||
encoded_data = [b64decode(x) for x in data_list]
|
||||
cipher = self.__vermasslungsKobold()
|
||||
decrypted_data = cipher.decrypt_and_verify(encoded_data[0], encoded_data[1])
|
||||
decrypted_data = decrypted_data.decode("utf-8")
|
||||
except (ValueError, IndexError):
|
||||
print("Configuration corrupted")
|
||||
decrypted_data = None
|
||||
|
||||
except Exception as e:
|
||||
print(str(e))
|
||||
decrypted_data = None
|
||||
|
||||
return decrypted_data
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
"images/filter.svg",
|
||||
"images/menu.svg",
|
||||
"images/search.svg",
|
||||
"lib/DB/DbManager.py"
|
||||
"lib/DB/DbManager.py",
|
||||
"Gui/DbConfiguration.qml"
|
||||
]
|
||||
}
|
||||
|
||||
3
qml.qrc
3
qml.qrc
@@ -2,5 +2,8 @@
|
||||
<qresource prefix="/">
|
||||
<file>Gui/TopBar.qml</file>
|
||||
<file>Gui/qmldir</file>
|
||||
<file>Gui/AdminUserConfig.qml</file>
|
||||
<file>Gui/EncryptionKey.qml</file>
|
||||
<file>Gui/DbConfiguration.qml</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
14
rc_pyqcrm.py
14
rc_pyqcrm.py
@@ -194,19 +194,19 @@ qt_resource_struct = b"\
|
||||
\x00\x00\x000\x00\x02\x00\x00\x00\x06\x00\x00\x00\x03\
|
||||
\x00\x00\x00\x00\x00\x00\x00\x00\
|
||||
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
|
||||
\x00\x00\x01\x93'.0\xcb\
|
||||
\x00\x00\x01\x93*\xc9x\xac\
|
||||
\x00\x00\x00\x80\x00\x00\x00\x00\x00\x01\x00\x00\x02\x9f\
|
||||
\x00\x00\x01\x93'\x05%\x0f\
|
||||
\x00\x00\x01\x93*\xd6\x0c\xbc\
|
||||
\x00\x00\x00\x94\x00\x00\x00\x00\x00\x01\x00\x00\x03Y\
|
||||
\x00\x00\x01\x93'\x05%\x0f\
|
||||
\x00\x00\x01\x93*\xd6\x0c\xbd\
|
||||
\x00\x00\x00\xc4\x00\x00\x00\x00\x00\x01\x00\x00\x05\x9a\
|
||||
\x00\x00\x01\x93'\x05%\x0f\
|
||||
\x00\x00\x01\x93*\xd6\x0c\xbc\
|
||||
\x00\x00\x00\x5c\x00\x00\x00\x00\x00\x01\x00\x00\x01B\
|
||||
\x00\x00\x01\x93'\x05%\x0f\
|
||||
\x00\x00\x01\x93*\xd6\x0c\xbc\
|
||||
\x00\x00\x00B\x00\x00\x00\x00\x00\x01\x00\x00\x00\x1c\
|
||||
\x00\x00\x01\x93'\x05%\x0f\
|
||||
\x00\x00\x01\x93*\xd6\x0c\xbd\
|
||||
\x00\x00\x00\xae\x00\x00\x00\x00\x00\x01\x00\x00\x04\xd5\
|
||||
\x00\x00\x01\x93'\x05%\x0f\
|
||||
\x00\x00\x01\x93*\xd6\x0c\xbd\
|
||||
"
|
||||
|
||||
def qInitResources():
|
||||
|
||||
267
rc_qml.py
267
rc_qml.py
@@ -7,40 +7,212 @@ from PySide6 import QtCore
|
||||
|
||||
qt_resource_data = b"\
|
||||
\x00\x00\x01\xba\
|
||||
\x00\
|
||||
\x00\x068x\xda\xb5TMo\xd40\x10\xbd\xaf\xb4\xff\
|
||||
\xc1\xca\x09\x84\x94\x16!\x0eD\xea\x81]8 Z\xa1\
|
||||
\xa2J\x9c\x1dg6q\xd7\xf1d\xc7cJ\x85\xfa\xdf\
|
||||
q\xe2m\x1c\xba(\x04\xa1\xfa\x10\xe5\xcd\xc7\xf3{c\
|
||||
it\xdb!\xb1\xb8\xe6k\xaf\xd5~\xbd\xd2\xbf\xe1|\
|
||||
\x8b\x96\x09\x8d;I\x5c\xca{\xf4\x1c\xe2\xeb\xd5W\xbc\
|
||||
\x8bh\xbd\xfa\xb9^\x89ptU\x08\xc6n#)b\
|
||||
\xd7I\xa5m]\x88\xf3\x88\x1b\xd0u\xc3\x85x\xf36\
|
||||
\xe2;]qS\x88N\x12X\xce\x07\x14\x13\xd2\xaa\x06\
|
||||
\xc9Ep$\xefO \x1f\xcb\xc3\x7fJ\x18\xd8\xf1\x98\
|
||||
\xe9A/0\xa6\x1f\x1e\x7f6\x9e\x19\xed\x09g/\xba\
|
||||
\x92\xae\xd9\xa0\xa4*\x85wF\x06F&\x0f\x93\xeb\xe1\
|
||||
G\x88\x1d\xdc\x0d\xbd\xc8>\x84\x96\xb2o\xc9^N\xb8\
|
||||
\xda\xceh\xa5\xf9[46\xd2\xe6\x8f\x89~\xaeA\xe2\
|
||||
\x90\x17\xaf\xc4\xeb\xf3\xd4\x8bv\x1bJ\xf6P\x15)6\
|
||||
\x919\x8c\xa5\xeb.QV@\xb9CO\x0a\xc4\x85H\
|
||||
:\xf2Ck\xb2T\xff\xf0/\xfe\xf7\xdeV`\x97\x9b\
|
||||
\xff<\xd4\xcf8\x8f\x84\xcfh{\xeb\x1dc\x0bt#\
|
||||
K\x03\xee\xd4\xfbR\xe7X\xde\xc2\x9e\x97;\xff2\xd4\
|
||||
\xcf8\x8f\x84s\xce\x97\x8bk5K*A3\xd0r\
|
||||
\x85W\xa9iF\xe6\x84\xfa\x19_\xe9c`\xc6{\xf8\
|
||||
\xdfG\x92%\x81j\xac\xb7\xf5\xf21\xbc\x1f{f\xa6\
|
||||
\x90\x88\xff6\x84Q\xe6'\x86\xf6\x8f\x22\x9b~\xdbM\
|
||||
\x1f*.\xc7|\xa7\x8d9^\x97\xd4.r\xcd\xf2\x16\
|
||||
\xdd$\xa6\xd0\x1eg[\x88\xec@\xaa8\xd3\xad\xac\xc1\
|
||||
\x9d\xb5`}\xee\xbe\xd7\xd9\x93b\x85\x06)\xd4\x12T\
|
||||
\xd9\xfc\xe4\x8eZ\xa9\xdf\xcfW\x92jm\x0b\xf1\xee\xc9\
|
||||
\x0e\x1d>\xbf\x00<\x0b\xa5\xbd\
|
||||
\x00\x00\x00#\
|
||||
(\
|
||||
\xb5/\xfd`\xdd\x04\x85\x0d\x00\xb6\x13=\x1f0s\x1e\
|
||||
\xb3\xfb\x92H\xd4\xdc\x08\xd0\xcdc\xdb\xa9\xa2\xa0\xc4\xa4\
|
||||
\xbco\x17:w\xe6&\x14T4\x0c\x034\x003\x00\
|
||||
4\x00{5\x07\x9f\x8a\x9d\x83\xa1\xb9\x87UdHh\
|
||||
\xae\x9a\xf1\xedE}\x17W\x7fsTl\x0c\xc4:]\
|
||||
a\x8c~\xed\xcfF\xa8l\xff\xd9\x0c\x89i^\xac\x94\
|
||||
\xa7\xb4\xf7\xbe\xac\x18M(4A\x9b,]>\xbe(\
|
||||
/+\x10M\x90n#\x02\xb8\x85n\x9a{\x0fs\xf5\
|
||||
o\xeeWb(\xdf^@\xba\xd4\xec\xff\xba\x081\xf6\
|
||||
\x18\x96\xd4\x1b\xbe\xb9\xd2O\xf6\x8f}Z\xfe\xb4C\xe2\
|
||||
\xfc\x91'\xdf\x8f\xd6\xe45\x9c\x99\x9a\xb2\x9c\xd6\xe2l\
|
||||
\xf5\xd3\xca\x80L\xa6f\xd5\x84\x22im\xa4\x96h\xfc\
|
||||
\xbc6\x95\x9c\xa9\xed\xc8u9\x8a5\x8c\x19\x8c\x85\x10\
|
||||
\xcd\xcdX\xf9J\x1eV\xd1#\x8a\xdd[\xf6\x8b*\x0e\
|
||||
\x95\xeadk@\xb9Z+\x0e\xdc\xf3M\xd4\xdc\xecG\
|
||||
;\xb3/e\xc4Ho/\x0a-\xfe\x87\xa2\x9au\xc2\
|
||||
N\xa0\x91\x1dB\x8a!\x91))LZ\x03@\x84\x18\
|
||||
\xc6\xec\x1c\x03\x00\xb53i!-\xd8t\x01r\x1e\xc8\
|
||||
R\xc2\x99\x15\xe6\xba7\xf5\xb1\x85]\xd9d4\xe6\x0c\
|
||||
\x07\x95\x88^\xe0\xf7\x96\x0d\xeb\xc7\xa2\xaeQ\xbf\x96\xfd\
|
||||
\x93\x9c\xd3\x1cX\x94L7\x1bB\xb5\xb0\xc2tNJ\
|
||||
\x5c\xf0x\x18\x1d\xd3vQ\x82w\xa5\xf6\x18\xb9\xbb\xaa\
|
||||
\x8d)z\x08\x8f\xf5\xb8\x80\xe7*\xab\xbd\x0f\xd2\x92;\
|
||||
\xc4\xaa@\x8bdyf\xa1\x0d\xc2[\xc6\xa0QD\x18\
|
||||
\x97p\xb1\x85\xf3m3\x04\x05\x95=^\xd8SU\xe5\
|
||||
6\x9e\x93%!~\x0d`\x01_\xdb(\x5c\xa0\xa7\x82\
|
||||
\x03\xf0\xd6\xb8\x0d\x97\xd8n\x056\x87\xb4\xaf%\xb4\x0d\
|
||||
\x83\xfb\x1b\xe6\x8aD\x22w*\
|
||||
\x00\x00\x03,\
|
||||
i\
|
||||
mport QtQuick\x0aim\
|
||||
port QtQuick.Con\
|
||||
trols\x0aimport QtQ\
|
||||
uick.Layouts\x0a\x0aGr\
|
||||
idLayout\x0a{\x0a i\
|
||||
d: passEncryptKe\
|
||||
yGrid\x0a column\
|
||||
s: 2\x0a columnS\
|
||||
pacing: 5\x0a ro\
|
||||
wSpacing: 9\x0a \
|
||||
// anchors.fill:\
|
||||
parent\x0a\x0a pro\
|
||||
perty string nam\
|
||||
e: \x22pyqcrm\x22\x0a\x0a \
|
||||
Label\x0a {\x0a \
|
||||
text: qsTr(\
|
||||
\x22Encryption Key \
|
||||
eingeben\x22)\x0a \
|
||||
font.pixelSiz\
|
||||
e: 40\x0a La\
|
||||
yout.columnSpan:\
|
||||
2\x0a Layou\
|
||||
t.alignment: Qt.\
|
||||
AlignHCenter\x0a \
|
||||
padding: 15\
|
||||
\x0a }\x0a\x0a\x0a Lab\
|
||||
el\x0a {\x0a \
|
||||
text: qsTr(\x22Enc\
|
||||
ryption Key:\x22)\x0a \
|
||||
Layout.al\
|
||||
ignment: Qt.Alig\
|
||||
nRight\x0a }\x0a\x0a \
|
||||
TextField\x0a \
|
||||
{\x0a id: pa\
|
||||
ssEncryptKey\x0a \
|
||||
placeholder\
|
||||
Text: qsTr(\x22Hier\
|
||||
Encryption Key \
|
||||
eingeben\x22)\x0a \
|
||||
Layout.fillWi\
|
||||
dth: true\x0a \
|
||||
height: 3\x0a \
|
||||
echoMode: Te\
|
||||
xtInput.Password\
|
||||
\x0a propert\
|
||||
y string name: \x22\
|
||||
ENCRYPT_KEY\x22\x0a \
|
||||
}\x0a\x0a Item\x0a \
|
||||
{\x0a Layou\
|
||||
t.fillHeight: tr\
|
||||
ue\x0a }\x0a}\x0a\
|
||||
\x00\x00\x00!\
|
||||
m\
|
||||
odule gui\x0d\x0aTopBa\
|
||||
r 1.0 TopBar.qml\
|
||||
\x0d\x0a\
|
||||
odule gui\x0aTopBar\
|
||||
1.0 TopBar.qml\x0a\
|
||||
\
|
||||
\x00\x00\x01\xd2\
|
||||
(\
|
||||
\xb5/\xfd`T\x06E\x0e\x006VE \x95\x1b\
|
||||
:\xbd\x94\x0a\x13I\xcc\x02\xb9\x88y\xd8\x9e\x053\x99\
|
||||
t\x01\xbd\x03\x9c\xf1\x18q\x02\xa4`\xa0 :\x00:\
|
||||
\x00;\x00\x0c\xafo\x1d\xad\x19&\x19\xca\x09\xdf\xc6\xb7\
|
||||
\xfe\xda\xc9\xe1\x1b'\x8d,z\xdb\x5c\xb5\x1c\x0f\x06\xcc\
|
||||
\xcc\x8f\xf4\xe4\xb4\x90\xf7\xde\xfd\xae\x8a\xa2\xe4\xd2j\xdf\
|
||||
+\x83z\x9elv\x97\xbf\xf0\xdb\xcam3\x16\xed\xd0\
|
||||
\xe4\xa8\xf7\xca\x09L\xde\x9aw\x94\xf6_\x9f\x0e\xf6x\
|
||||
\xc4\xbc?6&\x80\xbd\xee\x87\xe1\x87\xfaicQ2\
|
||||
\xf5\x8dX\xfc('\x86\xbdEg\xfb\xf7%@\xd5\x22\
|
||||
\x18j>\xb3\xc8Y\x86\x8d\xb5\xe6\xb3\x99m\xcf\xea\xb2\
|
||||
-i\xedt\x16\xa9\xa4=\x1f\x1f\xea\xeb}G\x9b\x98\
|
||||
\xc0\x04\xff\xd6J\xb0x\xa5\x82\x94\x91\xb3\xfd\xde\x8cJ\
|
||||
A\xfd\x85\xe1{o\xaeM\x1a\x0d\x0c\x9d\x22\x1c\x18\xf6\
|
||||
h\x06\xaf\xd4\xd5\xd6\x1f\xb1,\x05\xf5\x1d\xe7\x11\xd8\xb2\
|
||||
Nj'k\x09\xba7\xbe\x09\xe3\xb02\xb6o\xc6m\
|
||||
\x8f\xbe\xf3^8&\x0aJo\x91\x82\xa9Xl\xb5L\
|
||||
\x97U\xa96\x8bFw\xf6\x19v^N\x0d\xa5\x93\xe3\
|
||||
\x01J\xa0\x91\x11R\xce\x94\x88\x8d\x92(\x9b\x01p&\
|
||||
\x10\xab2\x0fZ\x99\xb8\xb1\x06\x06\x843+\xcd\x06\x5c\
|
||||
\xd3g\x83\xcec\x18b!$5\xb7q\xa5\x06\xd6A\
|
||||
\xa63M\x97\xcdDuH\x11\x0a\xb4\x94Q\xf3\xaa\xa2\
|
||||
\xc9bD\x0b\x11V?\x8e\x00\xc2\xe9l\xd46\x80\x22\
|
||||
\x8e\xd1\x9f\x9b\xe0A\x97\xcd\x17\xfa6\x16\x8a\x84;\xc4\
|
||||
\x84t\xc8#\x8b\x1d\x096\x95\xb2\xbb\xda\xa2*\xde,\
|
||||
\xbe\xc6\x8e\x1c\x08N2\xfcP(\x1c\x88.\x9a\xd8V\
|
||||
\x1d\xb5\x06\x82l\xcd\x85\x82\x86\xc6W~\xe3\xe5\x02X\
|
||||
\x9c[\xdcq\xca@{\xf0f\xady\xa9Z\x15\xbf\x87\
|
||||
\xe6\xe4\x05\xfd\xe5\xc2Z\x1e\xa6\x8a\x0f\xb8\x22!r\xf7\
|
||||
\x03\
|
||||
\x00\x00\x05C\
|
||||
i\
|
||||
mport QtQuick\x0aim\
|
||||
port QtQuick.Con\
|
||||
trols\x0aimport QtQ\
|
||||
uick.Layouts\x0a\x0aGr\
|
||||
idLayout\x0a{\x0a i\
|
||||
d: createUserGri\
|
||||
d\x0a columns: 2\
|
||||
\x0a columnSpaci\
|
||||
ng: 5\x0a rowSpa\
|
||||
cing: 9\x0a // a\
|
||||
nchors.fill: par\
|
||||
ent\x0a\x0a propert\
|
||||
y string name: \x22\
|
||||
pyqcrm\x22\x0a\x0a Lab\
|
||||
el\x0a {\x0a \
|
||||
text: qsTr(\x22Adm\
|
||||
in User erstelle\
|
||||
n\x22)\x0a font\
|
||||
.pixelSize: 40\x0a \
|
||||
Layout.co\
|
||||
lumnSpan: 2\x0a \
|
||||
Layout.align\
|
||||
ment: Qt.AlignHC\
|
||||
enter\x0a pa\
|
||||
dding: 15\x0a }\x0a\
|
||||
\x0a\x0a Label\x0a \
|
||||
{\x0a text: \
|
||||
qsTr(\x22Benutzerna\
|
||||
me:\x22)\x0a La\
|
||||
yout.alignment: \
|
||||
Qt.AlignRight\x0a \
|
||||
}\x0a\x0a TextFie\
|
||||
ld\x0a {\x0a \
|
||||
id: benutzerNam\
|
||||
e\x0a placeh\
|
||||
olderText: qsTr(\
|
||||
\x22Hier Benutzerna\
|
||||
me eingeben\x22)\x0a \
|
||||
Layout.fil\
|
||||
lWidth: true\x0a \
|
||||
height: 3\x0a \
|
||||
property \
|
||||
string name: \x22PY\
|
||||
QCRM_ADMIN\x22\x0a \
|
||||
}\x0a\x0a Label\x0a \
|
||||
{\x0a text:\
|
||||
qsTr(\x22Passwort:\
|
||||
\x22)\x0a Layou\
|
||||
t.alignment: Qt.\
|
||||
AlignRight\x0a }\
|
||||
\x0a\x0a TextField\x0a\
|
||||
{\x0a id\
|
||||
: password\x0a \
|
||||
echoMode: Tex\
|
||||
tInput.Password\x0a\
|
||||
placehol\
|
||||
derText: qsTr(\x22H\
|
||||
ier Passwort ein\
|
||||
geben\x22)\x0a \
|
||||
Layout.fillWidth\
|
||||
: true\x0a p\
|
||||
roperty string n\
|
||||
ame: \x22PYQCRM_ADM\
|
||||
IN_PASS\x22\x0a }\x0a \
|
||||
Label\x0a {\x0a \
|
||||
text: qsT\
|
||||
r(\x22Info:\x22)\x0a \
|
||||
Layout.alignm\
|
||||
ent: Qt.AlignRig\
|
||||
ht\x0a }\x0a\x0a Te\
|
||||
xtField\x0a {\x0a \
|
||||
id: gecos\x0a\
|
||||
placehol\
|
||||
derText: qsTr(\x22Z\
|
||||
us\xc3\xa4tzliche Info\
|
||||
\x22)\x0a Layou\
|
||||
t.fillWidth: tru\
|
||||
e\x0a proper\
|
||||
ty string name: \
|
||||
\x22PYQCRM_ADMIN_IN\
|
||||
FO\x22\x0a }\x0a\x0a I\
|
||||
tem\x0a {\x0a \
|
||||
Layout.fillHei\
|
||||
ght: true\x0a }\x0a\
|
||||
}\x0a\
|
||||
"
|
||||
|
||||
qt_resource_name = b"\
|
||||
@@ -52,21 +224,42 @@ qt_resource_name = b"\
|
||||
\x08\x8e<\xbc\
|
||||
\x00T\
|
||||
\x00o\x00p\x00B\x00a\x00r\x00.\x00q\x00m\x00l\
|
||||
\x00\x11\
|
||||
\x00\x11r\xdc\
|
||||
\x00E\
|
||||
\x00n\x00c\x00r\x00y\x00p\x00t\x00i\x00o\x00n\x00K\x00e\x00y\x00.\x00q\x00m\x00l\
|
||||
\
|
||||
\x00\x06\
|
||||
\x07\x84+\x02\
|
||||
\x00q\
|
||||
\x00m\x00l\x00d\x00i\x00r\
|
||||
\x00\x13\
|
||||
\x0aQ\xd8\x1c\
|
||||
\x00D\
|
||||
\x00b\x00C\x00o\x00n\x00f\x00i\x00g\x00u\x00r\x00a\x00t\x00i\x00o\x00n\x00.\x00q\
|
||||
\x00m\x00l\
|
||||
\x00\x13\
|
||||
\x01\xa7!\xbc\
|
||||
\x00A\
|
||||
\x00d\x00m\x00i\x00n\x00U\x00s\x00e\x00r\x00C\x00o\x00n\x00f\x00i\x00g\x00.\x00q\
|
||||
\x00m\x00l\
|
||||
"
|
||||
|
||||
qt_resource_struct = b"\
|
||||
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
|
||||
\x00\x00\x00\x00\x00\x00\x00\x00\
|
||||
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\
|
||||
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x02\
|
||||
\x00\x00\x00\x00\x00\x00\x00\x00\
|
||||
\x00\x00\x00&\x00\x00\x00\x00\x00\x01\x00\x00\x01\xbe\
|
||||
\x00\x00\x01\x93>1\xe8\xfe\
|
||||
\x00\x00\x00\x0c\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\
|
||||
\x00\x00\x01\x93>1\xe8\xfc\
|
||||
\x00\x00\x01\x93c~Y\x0a\
|
||||
\x00\x00\x00\x8c\x00\x00\x00\x00\x00\x01\x00\x00\x06\xe9\
|
||||
\x00\x00\x01\x93cIV\x9c\
|
||||
\x00\x00\x00N\x00\x00\x00\x00\x00\x01\x00\x00\x04\xee\
|
||||
\x00\x00\x01\x930& \x0f\
|
||||
\x00\x00\x00\x0c\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\
|
||||
\x00\x00\x01\x93*\xc9x\xab\
|
||||
\x00\x00\x00`\x00\x04\x00\x00\x00\x01\x00\x00\x05\x13\
|
||||
\x00\x00\x01\x93cI\x95\xbf\
|
||||
"
|
||||
|
||||
def qInitResources():
|
||||
|
||||
Reference in New Issue
Block a user