FirstStart angepasst
This commit is contained in:
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
|
MouseArea
|
||||||
{
|
{
|
||||||
id: mouseArea
|
id: mouseArea
|
||||||
property bool hovered:false
|
property bool hovered: false
|
||||||
|
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
hoverEnabled: true
|
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
|
Item
|
||||||
{
|
{
|
||||||
ColumnLayout
|
anchors.fill: parent
|
||||||
|
StackView
|
||||||
{
|
{
|
||||||
|
id: firstStart
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
TabBar
|
initialItem: "DbConfiguration.qml"
|
||||||
|
}
|
||||||
|
RowLayout
|
||||||
|
{
|
||||||
|
anchors.bottom: parent.bottom
|
||||||
|
anchors.margins: 9
|
||||||
|
width: parent.width
|
||||||
|
|
||||||
|
|
||||||
|
Item
|
||||||
{
|
{
|
||||||
id: bar
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
}
|
||||||
|
|
||||||
TabButton
|
Button
|
||||||
|
{
|
||||||
|
id: cancelBtn
|
||||||
|
text: qsTr("Abbrechen")
|
||||||
|
onClicked:
|
||||||
{
|
{
|
||||||
text: qsTr("Benutzer erstellen")
|
Qt.quit()
|
||||||
}
|
|
||||||
|
|
||||||
TabButton
|
|
||||||
|
|
||||||
{
|
|
||||||
id: dbTab
|
|
||||||
text: qsTr("Datenbank einrichten")
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
onCurrentIndexChanged:
|
|
||||||
{
|
|
||||||
submitBtn.text = currentIndex === 0? "Weiter" : "Speichern"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
StackLayout
|
Button
|
||||||
{
|
{
|
||||||
Layout.fillWidth: true
|
id: submitBtn
|
||||||
Layout.fillHeight: true
|
text: qsTr("Speichern")
|
||||||
currentIndex: bar.currentIndex
|
property var grids: firstStart.currentItem
|
||||||
Layout.margins: 9
|
property var pyqcrm_conf: ({})
|
||||||
id: stackl
|
property var admin: Boolean
|
||||||
|
onClicked:
|
||||||
Item
|
|
||||||
{
|
{
|
||||||
id: createUser
|
if (firstStart.currentItem.name === "database")
|
||||||
Layout.fillWidth: parent.width
|
|
||||||
|
|
||||||
GridLayout
|
|
||||||
{
|
{
|
||||||
id: createUserGrid
|
pyqcrm_conf = Qmldict.func(submitBtn.grids)
|
||||||
columns: 2
|
if (pyqcrm_conf)
|
||||||
columnSpacing: 5
|
|
||||||
rowSpacing: 9
|
|
||||||
anchors.fill: parent
|
|
||||||
Layout.margins: 9
|
|
||||||
property string name: "pyqcrm"
|
|
||||||
|
|
||||||
Label
|
|
||||||
{
|
{
|
||||||
text: qsTr("Benutzername:")
|
admin = config.setConfig(pyqcrm_conf)
|
||||||
Layout.alignment: Qt.AlignRight
|
if (admin)
|
||||||
}
|
|
||||||
|
|
||||||
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)
|
|
||||||
{
|
{
|
||||||
config.setConfig(pyqcrm_conf)
|
firstStart.push("EncryptionKey.qml")
|
||||||
appLoader.source = "Dashboard.qml"
|
}
|
||||||
|
else
|
||||||
topBar.visible = true
|
{
|
||||||
|
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">
|
<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">
|
<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>
|
<root>
|
||||||
<mxCell id="0" />
|
<mxCell id="0" />
|
||||||
<mxCell id="1" parent="0" />
|
<mxCell id="1" parent="0" />
|
||||||
@@ -1234,7 +1234,7 @@
|
|||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</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">
|
<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>
|
||||||
<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">
|
<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" />
|
<mxGeometry y="30" width="180" height="30" as="geometry" />
|
||||||
@@ -1341,7 +1341,7 @@
|
|||||||
<mxPoint x="-30" y="160" as="sourcePoint" />
|
<mxPoint x="-30" y="160" as="sourcePoint" />
|
||||||
<mxPoint x="20" y="110" as="targetPoint" />
|
<mxPoint x="20" y="110" as="targetPoint" />
|
||||||
<Array as="points">
|
<Array as="points">
|
||||||
<mxPoint x="-600" y="255" />
|
<mxPoint x="-600" y="230" />
|
||||||
<mxPoint x="-600" y="380" />
|
<mxPoint x="-600" y="380" />
|
||||||
</Array>
|
</Array>
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
@@ -1351,7 +1351,7 @@
|
|||||||
<mxPoint x="-30" y="160" as="sourcePoint" />
|
<mxPoint x="-30" y="160" as="sourcePoint" />
|
||||||
<mxPoint x="20" y="110" as="targetPoint" />
|
<mxPoint x="20" y="110" as="targetPoint" />
|
||||||
<Array as="points">
|
<Array as="points">
|
||||||
<mxPoint x="-310" y="285" />
|
<mxPoint x="-310" y="260" />
|
||||||
<mxPoint x="-310" y="85" />
|
<mxPoint x="-310" y="85" />
|
||||||
</Array>
|
</Array>
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
@@ -2211,93 +2211,145 @@
|
|||||||
<mxPoint x="1330" y="740" as="targetPoint" />
|
<mxPoint x="1330" y="740" as="targetPoint" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</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" />
|
<mxGeometry x="-800" y="15" width="180" height="215" as="geometry" />
|
||||||
</mxCell>
|
</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" />
|
<mxGeometry y="30" width="180" height="35" as="geometry" />
|
||||||
</mxCell>
|
</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">
|
<mxGeometry width="30" height="35" as="geometry">
|
||||||
<mxRectangle width="30" height="35" as="alternateBounds" />
|
<mxRectangle width="30" height="35" as="alternateBounds" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</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">
|
<mxGeometry x="30" width="150" height="35" as="geometry">
|
||||||
<mxRectangle width="150" height="35" as="alternateBounds" />
|
<mxRectangle width="150" height="35" as="alternateBounds" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</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" />
|
<mxGeometry y="65" width="180" height="30" as="geometry" />
|
||||||
</mxCell>
|
</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">
|
<mxGeometry width="30" height="30" as="geometry">
|
||||||
<mxRectangle width="30" height="30" as="alternateBounds" />
|
<mxRectangle width="30" height="30" as="alternateBounds" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</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">
|
<mxGeometry x="30" width="150" height="30" as="geometry">
|
||||||
<mxRectangle width="150" height="30" as="alternateBounds" />
|
<mxRectangle width="150" height="30" as="alternateBounds" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</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" />
|
<mxGeometry y="95" width="180" height="30" as="geometry" />
|
||||||
</mxCell>
|
</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">
|
<mxGeometry width="30" height="30" as="geometry">
|
||||||
<mxRectangle width="30" height="30" as="alternateBounds" />
|
<mxRectangle width="30" height="30" as="alternateBounds" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</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">
|
<mxGeometry x="30" width="150" height="30" as="geometry">
|
||||||
<mxRectangle width="150" height="30" as="alternateBounds" />
|
<mxRectangle width="150" height="30" as="alternateBounds" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</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" />
|
<mxGeometry y="125" width="180" height="30" as="geometry" />
|
||||||
</mxCell>
|
</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">
|
<mxGeometry width="30" height="30" as="geometry">
|
||||||
<mxRectangle width="30" height="30" as="alternateBounds" />
|
<mxRectangle width="30" height="30" as="alternateBounds" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</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">
|
<mxGeometry x="30" width="150" height="30" as="geometry">
|
||||||
<mxRectangle width="150" height="30" as="alternateBounds" />
|
<mxRectangle width="150" height="30" as="alternateBounds" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</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">
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
<mxPoint x="-680" y="250" as="sourcePoint" />
|
<mxPoint x="-680" y="250" as="sourcePoint" />
|
||||||
<mxPoint x="-630" y="200" as="targetPoint" />
|
<mxPoint x="-630" y="200" as="targetPoint" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</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" />
|
<mxGeometry x="-800" y="150" width="180" height="30" as="geometry" />
|
||||||
</mxCell>
|
</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">
|
<mxGeometry width="30" height="30" as="geometry">
|
||||||
<mxRectangle width="30" height="30" as="alternateBounds" />
|
<mxRectangle width="30" height="30" as="alternateBounds" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</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" />
|
<mxGeometry x="-800" y="180" width="180" height="30" as="geometry" />
|
||||||
</mxCell>
|
</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">
|
<mxGeometry width="30" height="30" as="geometry">
|
||||||
<mxRectangle width="30" height="30" as="alternateBounds" />
|
<mxRectangle width="30" height="30" as="alternateBounds" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</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">
|
<mxGeometry x="-770" y="200" width="150" height="30" as="geometry">
|
||||||
<mxRectangle width="150" height="30" as="alternateBounds" />
|
<mxRectangle width="150" height="30" as="alternateBounds" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</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">
|
<mxGeometry x="-770" y="170" width="150" height="30" as="geometry">
|
||||||
<mxRectangle width="150" height="30" as="alternateBounds" />
|
<mxRectangle width="150" height="30" as="alternateBounds" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</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>
|
</root>
|
||||||
</mxGraphModel>
|
</mxGraphModel>
|
||||||
</diagram>
|
</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)
|
function func(tabs)
|
||||||
{
|
{
|
||||||
let pyqcrm_conf = {};
|
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] = {}
|
if (tabs.children[i].name)
|
||||||
for (var i = 0; i < tabs[j].children.length; i++)
|
|
||||||
{
|
{
|
||||||
if (tabs[j].children[i].name)
|
if (!tabs.children[i].text.trim())
|
||||||
{
|
return false
|
||||||
if (!tabs[j].children[i].text.trim())
|
pyqcrm_conf[tabs.name] [tabs.children[i].name] = tabs.children[i].text
|
||||||
return false
|
|
||||||
pyqcrm_conf[tabs[j].name] [tabs[j].children[i].name] = tabs[j].children[i].text
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return pyqcrm_conf
|
return pyqcrm_conf
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ from PySide6.QtCore import QObject, Slot
|
|||||||
from .Vermasseln import Vermasseln
|
from .Vermasseln import Vermasseln
|
||||||
import shutil
|
import shutil
|
||||||
from urllib.parse import urlparse
|
from urllib.parse import urlparse
|
||||||
|
from .DB.DbManager import DbManager
|
||||||
import os
|
import os
|
||||||
|
|
||||||
class ConfigLoader(QObject):
|
class ConfigLoader(QObject):
|
||||||
@@ -31,31 +32,57 @@ class ConfigLoader(QObject):
|
|||||||
confile = confile[1:]
|
confile = confile[1:]
|
||||||
shutil.copyfile(confile, self.config_dir+ '/pyqcrm.toml')
|
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):
|
def setConfig(self, app_config):
|
||||||
try:
|
|
||||||
with open (self.config_dir + '/pyqcrm.toml', 'w') as f:
|
conf = self.__checkDbConnection(app_config)
|
||||||
config = Vermasseln().oscarVermasseln(toml.dumps(app_config))
|
if conf:
|
||||||
f.write(config)
|
try:
|
||||||
except FileNotFoundError:
|
with open (self.config_dir + '/pyqcrm.toml', 'w') as f:
|
||||||
print("Konnte die Konfiguration nicht speichern.")
|
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):
|
def __configLoad(self):
|
||||||
try:
|
try:
|
||||||
with open (self.config_dir + '/pyqcrm.toml', 'r') as f:
|
with open (self.config_dir + '/pyqcrm.toml', 'r') as f:
|
||||||
config = f.read()
|
config = f.read()
|
||||||
|
|
||||||
self.__config = toml.loads(Vermasseln().entschluesseln(config))
|
self.__config = toml.loads(Vermasseln().entschluesseln(config))
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
print("Konnte die Konfiguration nicht laden.")
|
print("Konnte die Konfiguration nicht laden.")
|
||||||
|
except TypeError:
|
||||||
|
print("Invalid Configuration")
|
||||||
|
# except Exception as e:
|
||||||
|
# print(str(e))
|
||||||
|
|
||||||
|
|
||||||
def getConfig(self):
|
def getConfig(self):
|
||||||
|
|
||||||
return self.__config
|
return self.__config
|
||||||
|
|
||||||
def createConfig(self):
|
def __createConfig(self):
|
||||||
|
|
||||||
with open(self.config_dir + '/pyqcrm.toml', "w") as datei:
|
with open(self.config_dir + '/pyqcrm.toml', "w") as datei:
|
||||||
datei.write("[pyqcrm]")
|
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
|
||||||
|
|||||||
13
lib/Test.py
Normal file
13
lib/Test.py
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
import toml
|
||||||
|
|
||||||
|
|
||||||
|
class Singleton(object):
|
||||||
|
def __new__(cls):
|
||||||
|
if not hasattr(cls, "__instance"):
|
||||||
|
cls.__instance = super().__new__(cls)
|
||||||
|
return cls.__instance
|
||||||
|
|
||||||
|
class DbManager(Singleton):
|
||||||
|
def __init__(self, dbconf):
|
||||||
|
toml.
|
||||||
|
|
||||||
@@ -17,11 +17,19 @@ class Vermasseln:
|
|||||||
return storable_data
|
return storable_data
|
||||||
|
|
||||||
def entschluesseln(self, data):
|
def entschluesseln(self, data):
|
||||||
data_list = data.split(".")
|
try:
|
||||||
encoded_data = [b64decode(x) for x in data_list]
|
data_list = data.split(".")
|
||||||
cipher = self.__vermasslungsKobold()
|
encoded_data = [b64decode(x) for x in data_list]
|
||||||
decrypted_data = cipher.decrypt_and_verify(encoded_data[0], encoded_data[1])
|
cipher = self.__vermasslungsKobold()
|
||||||
decrypted_data = decrypted_data.decode("utf-8")
|
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
|
return decrypted_data
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
"images/filter.svg",
|
"images/filter.svg",
|
||||||
"images/menu.svg",
|
"images/menu.svg",
|
||||||
"images/search.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="/">
|
<qresource prefix="/">
|
||||||
<file>Gui/TopBar.qml</file>
|
<file>Gui/TopBar.qml</file>
|
||||||
<file>Gui/qmldir</file>
|
<file>Gui/qmldir</file>
|
||||||
|
<file>Gui/AdminUserConfig.qml</file>
|
||||||
|
<file>Gui/EncryptionKey.qml</file>
|
||||||
|
<file>Gui/DbConfiguration.qml</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</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\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\x00\x00\x00\x00\x00\x00\x00\x00\x01\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\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\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\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\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\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\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():
|
def qInitResources():
|
||||||
|
|||||||
267
rc_qml.py
267
rc_qml.py
@@ -7,40 +7,212 @@ from PySide6 import QtCore
|
|||||||
|
|
||||||
qt_resource_data = b"\
|
qt_resource_data = b"\
|
||||||
\x00\x00\x01\xba\
|
\x00\x00\x01\xba\
|
||||||
\x00\
|
(\
|
||||||
\x00\x068x\xda\xb5TMo\xd40\x10\xbd\xaf\xb4\xff\
|
\xb5/\xfd`\xdd\x04\x85\x0d\x00\xb6\x13=\x1f0s\x1e\
|
||||||
\xc1\xca\x09\x84\x94\x16!\x0eD\xea\x81]8 Z\xa1\
|
\xb3\xfb\x92H\xd4\xdc\x08\xd0\xcdc\xdb\xa9\xa2\xa0\xc4\xa4\
|
||||||
\xa2J\x9c\x1dg6q\xd7\xf1d\xc7cJ\x85\xfa\xdf\
|
\xbco\x17:w\xe6&\x14T4\x0c\x034\x003\x00\
|
||||||
q\xe2m\x1c\xba(\x04\xa1\xfa\x10\xe5\xcd\xc7\xf3{c\
|
4\x00{5\x07\x9f\x8a\x9d\x83\xa1\xb9\x87UdHh\
|
||||||
it\xdb!\xb1\xb8\xe6k\xaf\xd5~\xbd\xd2\xbf\xe1|\
|
\xae\x9a\xf1\xedE}\x17W\x7fsTl\x0c\xc4:]\
|
||||||
\x8b\x96\x09\x8d;I\x5c\xca{\xf4\x1c\xe2\xeb\xd5W\xbc\
|
a\x8c~\xed\xcfF\xa8l\xff\xd9\x0c\x89i^\xac\x94\
|
||||||
\x8bh\xbd\xfa\xb9^\x89ptU\x08\xc6n#)b\
|
\xa7\xb4\xf7\xbe\xac\x18M(4A\x9b,]>\xbe(\
|
||||||
\xd7I\xa5m]\x88\xf3\x88\x1b\xd0u\xc3\x85x\xf36\
|
/+\x10M\x90n#\x02\xb8\x85n\x9a{\x0fs\xf5\
|
||||||
\xe2;]qS\x88N\x12X\xce\x07\x14\x13\xd2\xaa\x06\
|
o\xeeWb(\xdf^@\xba\xd4\xec\xff\xba\x081\xf6\
|
||||||
\xc9Ep$\xefO \x1f\xcb\xc3\x7fJ\x18\xd8\xf1\x98\
|
\x18\x96\xd4\x1b\xbe\xb9\xd2O\xf6\x8f}Z\xfe\xb4C\xe2\
|
||||||
\xe9A/0\xa6\x1f\x1e\x7f6\x9e\x19\xed\x09g/\xba\
|
\xfc\x91'\xdf\x8f\xd6\xe45\x9c\x99\x9a\xb2\x9c\xd6\xe2l\
|
||||||
\x92\xae\xd9\xa0\xa4*\x85wF\x06F&\x0f\x93\xeb\xe1\
|
\xf5\xd3\xca\x80L\xa6f\xd5\x84\x22im\xa4\x96h\xfc\
|
||||||
G\x88\x1d\xdc\x0d\xbd\xc8>\x84\x96\xb2o\xc9^N\xb8\
|
\xbc6\x95\x9c\xa9\xed\xc8u9\x8a5\x8c\x19\x8c\x85\x10\
|
||||||
\xda\xceh\xa5\xf9[46\xd2\xe6\x8f\x89~\xaeA\xe2\
|
\xcd\xcdX\xf9J\x1eV\xd1#\x8a\xdd[\xf6\x8b*\x0e\
|
||||||
\x90\x17\xaf\xc4\xeb\xf3\xd4\x8bv\x1bJ\xf6P\x15)6\
|
\x95\xeadk@\xb9Z+\x0e\xdc\xf3M\xd4\xdc\xecG\
|
||||||
\x919\x8c\xa5\xeb.QV@\xb9CO\x0a\xc4\x85H\
|
;\xb3/e\xc4Ho/\x0a-\xfe\x87\xa2\x9au\xc2\
|
||||||
:\xf2Ck\xb2T\xff\xf0/\xfe\xf7\xdeV`\x97\x9b\
|
N\xa0\x91\x1dB\x8a!\x91))LZ\x03@\x84\x18\
|
||||||
\xff<\xd4\xcf8\x8f\x84\xcfh{\xeb\x1dc\x0bt#\
|
\xc6\xec\x1c\x03\x00\xb53i!-\xd8t\x01r\x1e\xc8\
|
||||||
K\x03\xee\xd4\xfbR\xe7X\xde\xc2\x9e\x97;\xff2\xd4\
|
R\xc2\x99\x15\xe6\xba7\xf5\xb1\x85]\xd9d4\xe6\x0c\
|
||||||
\xcf8\x8f\x84s\xce\x97\x8bk5K*A3\xd0r\
|
\x07\x95\x88^\xe0\xf7\x96\x0d\xeb\xc7\xa2\xaeQ\xbf\x96\xfd\
|
||||||
\x85W\xa9iF\xe6\x84\xfa\x19_\xe9c`\xc6{\xf8\
|
\x93\x9c\xd3\x1cX\x94L7\x1bB\xb5\xb0\xc2tNJ\
|
||||||
\xdfG\x92%\x81j\xac\xb7\xf5\xf21\xbc\x1f{f\xa6\
|
\x5c\xf0x\x18\x1d\xd3vQ\x82w\xa5\xf6\x18\xb9\xbb\xaa\
|
||||||
\x90\x88\xff6\x84Q\xe6'\x86\xf6\x8f\x22\x9b~\xdbM\
|
\x8d)z\x08\x8f\xf5\xb8\x80\xe7*\xab\xbd\x0f\xd2\x92;\
|
||||||
\x1f*.\xc7|\xa7\x8d9^\x97\xd4.r\xcd\xf2\x16\
|
\xc4\xaa@\x8bdyf\xa1\x0d\xc2[\xc6\xa0QD\x18\
|
||||||
\xdd$\xa6\xd0\x1eg[\x88\xec@\xaa8\xd3\xad\xac\xc1\
|
\x97p\xb1\x85\xf3m3\x04\x05\x95=^\xd8SU\xe5\
|
||||||
\x9d\xb5`}\xee\xbe\xd7\xd9\x93b\x85\x06)\xd4\x12T\
|
6\x9e\x93%!~\x0d`\x01_\xdb(\x5c\xa0\xa7\x82\
|
||||||
\xd9\xfc\xe4\x8eZ\xa9\xdf\xcfW\x92jm\x0b\xf1\xee\xc9\
|
\x03\xf0\xd6\xb8\x0d\x97\xd8n\x056\x87\xb4\xaf%\xb4\x0d\
|
||||||
\x0e\x1d>\xbf\x00<\x0b\xa5\xbd\
|
\x83\xfb\x1b\xe6\x8aD\x22w*\
|
||||||
\x00\x00\x00#\
|
\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\
|
m\
|
||||||
odule gui\x0d\x0aTopBa\
|
odule gui\x0aTopBar\
|
||||||
r 1.0 TopBar.qml\
|
1.0 TopBar.qml\x0a\
|
||||||
\x0d\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"\
|
qt_resource_name = b"\
|
||||||
@@ -52,21 +224,42 @@ qt_resource_name = b"\
|
|||||||
\x08\x8e<\xbc\
|
\x08\x8e<\xbc\
|
||||||
\x00T\
|
\x00T\
|
||||||
\x00o\x00p\x00B\x00a\x00r\x00.\x00q\x00m\x00l\
|
\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\
|
\x00\x06\
|
||||||
\x07\x84+\x02\
|
\x07\x84+\x02\
|
||||||
\x00q\
|
\x00q\
|
||||||
\x00m\x00l\x00d\x00i\x00r\
|
\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"\
|
qt_resource_struct = b"\
|
||||||
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
|
\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\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\
|
||||||
\x00\x00\x00&\x00\x00\x00\x00\x00\x01\x00\x00\x01\xbe\
|
\x00\x00\x00&\x00\x00\x00\x00\x00\x01\x00\x00\x01\xbe\
|
||||||
\x00\x00\x01\x93>1\xe8\xfe\
|
\x00\x00\x01\x93c~Y\x0a\
|
||||||
\x00\x00\x00\x0c\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\
|
\x00\x00\x00\x8c\x00\x00\x00\x00\x00\x01\x00\x00\x06\xe9\
|
||||||
\x00\x00\x01\x93>1\xe8\xfc\
|
\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():
|
def qInitResources():
|
||||||
|
|||||||
Reference in New Issue
Block a user