diff --git a/Praktikum3/bt/app/__pycache__/navigation.cpython-36.pyc b/Praktikum3/bt/app/__pycache__/navigation.cpython-36.pyc
index 6e67770..9e0547f 100644
Binary files a/Praktikum3/bt/app/__pycache__/navigation.cpython-36.pyc and b/Praktikum3/bt/app/__pycache__/navigation.cpython-36.pyc differ
diff --git a/Praktikum3/bt/app/__pycache__/staff.cpython-36.pyc b/Praktikum3/bt/app/__pycache__/staff.cpython-36.pyc
index e9c9f81..4cc09ce 100644
Binary files a/Praktikum3/bt/app/__pycache__/staff.cpython-36.pyc and b/Praktikum3/bt/app/__pycache__/staff.cpython-36.pyc differ
diff --git a/Praktikum3/bt/app/navigation.py b/Praktikum3/bt/app/navigation.py
index 29bfc84..232fcb6 100755
--- a/Praktikum3/bt/app/navigation.py
+++ b/Praktikum3/bt/app/navigation.py
@@ -36,7 +36,8 @@ class Navigation_cl(object):
{'action': 'fehler' , 'text': 'Bearbeitung Fehlerdaten'},
{'action': 'projekt' , 'text': 'Pflege Projekte'},
{'action': 'komponente' , 'text': 'Pflege Komponenten'},
- {'action': 'mitarbeiter' , 'text': 'Pflege Daten Mitarbeiter'},
+ {'action': 'qsmitarbeiter' , 'text': 'Pflege Daten QS-Mitarbeiter'},
+ {'action': 'swentwickler' , 'text': 'Pflege Daten SW-Entwickler'},
{'action': 'kategorien' , 'text': 'Pflege Kategorien'},
{'action': 'prolist' , 'text': 'Auswertung Projekte/Fehler'},
{'action': 'catlist' , 'text': 'Auswertung Kategorien/Fehler'}
diff --git a/Praktikum3/bt/app/staff.py b/Praktikum3/bt/app/staff.py
index 743e976..a9efd3d 100644
--- a/Praktikum3/bt/app/staff.py
+++ b/Praktikum3/bt/app/staff.py
@@ -3,14 +3,27 @@
import json
import cherrypy
-#from .database import SourceDatabase_cl, EvaluatedDatabase_cl
+from .database import QsMitarbeiterDatabase_cl, SwEntwicklerDatabase_cl
# Method-Dispatching!
# Übersicht Anforderungen / Methoden
# (beachte: / relativ zu /navigation, siehe Konfiguration Server!)
+#-------------------------------------------------------
+def adjustId_p(id_spl, data_opl):
+#-------------------------------------------------------
+ if id_spl == None:
+ data_opl['id'] = ''
+ elif id_spl == '':
+ data_opl['id'] = ''
+ elif id_spl == '0':
+ data_opl['id'] = ''
+ else:
+ data_opl['id'] = id_spl
+ return data_opl
+
"""
Anforderung GET PUT POST DELETE
-----------------------------------------------------------------------------------------
@@ -32,27 +45,87 @@ class QsMitarbeiter_cl(object):
#-------------------------------------------------------
def __init__(self):
#-------------------------------------------------------
- pass
+ self.db_o = QsMitarbeiterDatabase_cl()
#-------------------------------------------------------
- def GET(self):
+ def GET(self, id = None):
#-------------------------------------------------------
- return json.dumps(retVal_o)
+ retVal_o = {
+ 'data': None
+ }
+ if id == None:
+ # Anforderung der Liste
+ retVal_o['data'] = self.db_o.read_px()
+ else:
+ # Anforderung eines Dokuments
+ data_o = self.db_o.read_px(id)
+ if data_o != None:
+ retVal_o['data'] = adjustId_p(id, data_o)
+
+ return retVal_o
#-------------------------------------------------------
- def PUT(self):
+ def PUT(self, data_opl):
#-------------------------------------------------------
- return json.dumps(retVal_o)
+ # Sichern der Daten: jetzt wird keine vollständige Seite
+ # zurückgeliefert, sondern nur noch die Information, ob das
+ # Speichern erfolgreich war
+
+ retVal_o = {
+ 'id': None
+ }
+
+ # data_opl: Dictionary mit den gelieferten key-value-Paaren
+ # hier müsste man prüfen, ob die Daten korrekt vorliegen!
+
+ id_s = data_opl["id_s"]
+ data_o = {
+ 'name': data_opl["name_s"],
+ 'id': data_opl["id_s"]
+ }
+ # Update-Operation
+ retVal_o['id'] = id_s
+ if self.db_o.update_px(id_s, data_o):
+ pass
+ else:
+ retVal_o['id'] = None
+
+ return retVal_o
#-------------------------------------------------------
- def POST(self):
+ def POST(self, data_opl):
#-------------------------------------------------------
- return json.dumps(retVal_o)
+ retVal_o = {
+ 'id': None
+ }
+
+ # data_opl: Dictionary mit den gelieferten key-value-Paaren
+
+ # hier müsste man prüfen, ob die Daten korrekt vorliegen!
+
+ data_o = {
+ 'name': data_opl["name_s"]
+ }
+ # Create-Operation
+ id_s = self.db_o.create_px(data_o)
+ retVal_o['id'] = id_s
+
+ return retVal_o
#-------------------------------------------------------
- def DELETE(self):
+ def DELETE(self, id):
#-------------------------------------------------------
- return json.dumps(retVal_o)
+ # Eintrag löschen, nur noch Rückmeldung liefern
+ retVal_o = {
+ 'id': id
+ }
+
+ if self.db_o.delete_px(id):
+ pass
+ else:
+ retVal_o['id'] = None
+
+ return retVal_o
@@ -75,26 +148,86 @@ class SwEntwickler_cl(object):
#-------------------------------------------------------
def __init__(self):
#-------------------------------------------------------
- pass
+ self.db_o = SwEntwicklerDatabase_cl()
#-------------------------------------------------------
- def GET(self):
+ def GET(self, id = None):
#-------------------------------------------------------
- return json.dumps(retVal_o)
+ retVal_o = {
+ 'data': None
+ }
+ if id == None:
+ # Anforderung der Liste
+ retVal_o['data'] = self.db_o.read_px()
+ else:
+ # Anforderung eines Dokuments
+ data_o = self.db_o.read_px(id)
+ if data_o != None:
+ retVal_o['data'] = adjustId_p(id, data_o)
+
+ return retVal_o
#-------------------------------------------------------
- def PUT(self):
+ def PUT(self, data_opl):
#-------------------------------------------------------
- return json.dumps(retVal_o)
+ # Sichern der Daten: jetzt wird keine vollständige Seite
+ # zurückgeliefert, sondern nur noch die Information, ob das
+ # Speichern erfolgreich war
+
+ retVal_o = {
+ 'id': None
+ }
+
+ # data_opl: Dictionary mit den gelieferten key-value-Paaren
+ # hier müsste man prüfen, ob die Daten korrekt vorliegen!
+
+ id_s = data_opl["id_s"]
+ data_o = {
+ 'name': data_opl["name_s"],
+ 'id': data_opl["id_s"]
+ }
+ # Update-Operation
+ retVal_o['id'] = id_s
+ if self.db_o.update_px(id_s, data_o):
+ pass
+ else:
+ retVal_o['id'] = None
+
+ return retVal_o
#-------------------------------------------------------
- def POST(self):
+ def POST(self, data_opl):
#-------------------------------------------------------
- return json.dumps(retVal_o)
+ retVal_o = {
+ 'id': None
+ }
+
+ # data_opl: Dictionary mit den gelieferten key-value-Paaren
+
+ # hier müsste man prüfen, ob die Daten korrekt vorliegen!
+
+ data_o = {
+ 'name': data_opl["name_s"]
+ }
+ # Create-Operation
+ id_s = self.db_o.create_px(data_o)
+ retVal_o['id'] = id_s
+
+ return retVal_o
#-------------------------------------------------------
- def DELETE(self):
+ def DELETE(self, id):
#-------------------------------------------------------
- return json.dumps(retVal_o)
+ # Eintrag löschen, nur noch Rückmeldung liefern
+ retVal_o = {
+ 'id': id
+ }
+
+ if self.db_o.delete_px(id):
+ pass
+ else:
+ retVal_o['id'] = None
+
+ return retVal_o
# EOF
\ No newline at end of file
diff --git a/Praktikum3/bt/data/qsmitarbeiter/1.dat b/Praktikum3/bt/data/qsmitarbeiter/1.dat
new file mode 100644
index 0000000..f051322
--- /dev/null
+++ b/Praktikum3/bt/data/qsmitarbeiter/1.dat
@@ -0,0 +1,4 @@
+{
+ "name": "QS-Mitarbeiter1",
+ "id": "1"
+}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/qsmitarbeiter/2.dat b/Praktikum3/bt/data/qsmitarbeiter/2.dat
new file mode 100644
index 0000000..af54c23
--- /dev/null
+++ b/Praktikum3/bt/data/qsmitarbeiter/2.dat
@@ -0,0 +1,4 @@
+{
+ "name": "QS-Mitarbeiter2",
+ "id": "2"
+}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/qsmitarbeiter/3.dat b/Praktikum3/bt/data/qsmitarbeiter/3.dat
new file mode 100644
index 0000000..40b2719
--- /dev/null
+++ b/Praktikum3/bt/data/qsmitarbeiter/3.dat
@@ -0,0 +1,4 @@
+{
+ "name": "QS-Mitarbeiter3",
+ "id": "3"
+}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/qsmitarbeiter/4.dat b/Praktikum3/bt/data/qsmitarbeiter/4.dat
new file mode 100644
index 0000000..8ca0776
--- /dev/null
+++ b/Praktikum3/bt/data/qsmitarbeiter/4.dat
@@ -0,0 +1,4 @@
+{
+ "name": "QS-Mitarbeiter4",
+ "id": "4"
+}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/qsmitarbeiter/maxid.dat b/Praktikum3/bt/data/qsmitarbeiter/maxid.dat
index c227083..7813681 100755
--- a/Praktikum3/bt/data/qsmitarbeiter/maxid.dat
+++ b/Praktikum3/bt/data/qsmitarbeiter/maxid.dat
@@ -1 +1 @@
-0
\ No newline at end of file
+5
\ No newline at end of file
diff --git a/Praktikum3/bt/data/swentwickler/1.dat b/Praktikum3/bt/data/swentwickler/1.dat
new file mode 100644
index 0000000..3f29f53
--- /dev/null
+++ b/Praktikum3/bt/data/swentwickler/1.dat
@@ -0,0 +1,4 @@
+{
+ "name": "SW-Entwickler1",
+ "id": "1"
+}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/swentwickler/2.dat b/Praktikum3/bt/data/swentwickler/2.dat
new file mode 100644
index 0000000..c9b2369
--- /dev/null
+++ b/Praktikum3/bt/data/swentwickler/2.dat
@@ -0,0 +1,4 @@
+{
+ "name": "SW-Entwickler2",
+ "id": "2"
+}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/swentwickler/3.dat b/Praktikum3/bt/data/swentwickler/3.dat
new file mode 100644
index 0000000..6499972
--- /dev/null
+++ b/Praktikum3/bt/data/swentwickler/3.dat
@@ -0,0 +1,4 @@
+{
+ "name": "SW-Entwickler3",
+ "id": "3"
+}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/swentwickler/5.dat b/Praktikum3/bt/data/swentwickler/5.dat
new file mode 100644
index 0000000..5fdf5bd
--- /dev/null
+++ b/Praktikum3/bt/data/swentwickler/5.dat
@@ -0,0 +1,4 @@
+{
+ "name": "SW-Entwickler5",
+ "id": "5"
+}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/swentwickler/maxid.dat b/Praktikum3/bt/data/swentwickler/maxid.dat
index c227083..7813681 100755
--- a/Praktikum3/bt/data/swentwickler/maxid.dat
+++ b/Praktikum3/bt/data/swentwickler/maxid.dat
@@ -1 +1 @@
-0
\ No newline at end of file
+5
\ No newline at end of file
diff --git a/Praktikum3/bt/static/js/app.js b/Praktikum3/bt/static/js/app.js
index 0d763b5..a273d31 100755
--- a/Praktikum3/bt/static/js/app.js
+++ b/Praktikum3/bt/static/js/app.js
@@ -27,6 +27,12 @@ APP.Application_cl = class {
this.listKomponente_o = new APP.ListView_cl('komponente', '/komponente/', 'komponentelist.tpl');
this.detailKomponente_o = new APP.DetailView_cl('komponente', '/komponente/', 'komponentedetail.tpl');
+ this.listQsMitarbeiter_o = new APP.ListView_cl('qsmitarbeiter', '/qsmitarbeiter/', 'qsmitarbeiterlist.tpl');
+ this.detailQsMitarbeiter_o = new APP.DetailView_cl('qsmitarbeiter', '/qsmitarbeiter/', 'qsmitarbeiterdetail.tpl');
+
+ this.listSwEntwickler_o = new APP.ListView_cl('swentwickler', '/swentwickler/', 'swentwicklerlist.tpl');
+ this.detailSwEntwickler_o = new APP.DetailView_cl('swentwickler', '/swentwickler/', 'swentwicklerdetail.tpl');
+
// this.listSources_o = new APP.ListView_cl('source', '/source/', 'sourceslist.tpl');
// this.detailSources_o = new APP.SourceDetailView_cl('source', '/source/', 'sourcedetail.tpl');
// this.listEvaluated_o = new APP.ListView_cl('evaluated', '/evaluated/', 'evaluatedlist.tpl');
@@ -69,6 +75,28 @@ APP.Application_cl = class {
// Detailformular im Content-Bereich anzeigen
self_opl.setContent_p(self_opl.detailKomponente_o, data_apl[1]);
break;
+ case 'qsmitarbeiter':
+ self_opl.setContent_p(self_opl.listQsMitarbeiter_o, data_apl[1]);
+ break;
+ case 'qsmitarbeiter.add':
+ // (leeres) Detailformular im Content-Bereich anzeigen
+ self_opl.setContent_p(self_opl.detailQsMitarbeiter_o, data_apl[1]);
+ break;
+ case 'qsmitarbeiter.edit':
+ // Detailformular im Content-Bereich anzeigen
+ self_opl.setContent_p(self_opl.detailQsMitarbeiter_o, data_apl[1]);
+ break;
+ case 'swentwickler':
+ self_opl.setContent_p(self_opl.listSwEntwickler_o, data_apl[1]);
+ break;
+ case 'swentwickler.add':
+ // (leeres) Detailformular im Content-Bereich anzeigen
+ self_opl.setContent_p(self_opl.detailSwEntwickler_o, data_apl[1]);
+ break;
+ case 'swentwickler.edit':
+ // Detailformular im Content-Bereich anzeigen
+ self_opl.setContent_p(self_opl.detailSwEntwickler_o, data_apl[1]);
+ break;
default:
console.warn('[Application_cl] unbekannte app-Notification: '+data_apl[0]);
break;
diff --git a/Praktikum3/bt/templates/.DS_Store b/Praktikum3/bt/templates/.DS_Store
index 4d51cc9..8790c54 100644
Binary files a/Praktikum3/bt/templates/.DS_Store and b/Praktikum3/bt/templates/.DS_Store differ
diff --git a/Praktikum3/bt/templates/qsmitarbeiterdetail.tpl b/Praktikum3/bt/templates/qsmitarbeiterdetail.tpl
new file mode 100644
index 0000000..d017ab6
--- /dev/null
+++ b/Praktikum3/bt/templates/qsmitarbeiterdetail.tpl
@@ -0,0 +1,20 @@
+
+
+
\ No newline at end of file
diff --git a/Praktikum3/bt/templates/qsmitarbeiterlist.tpl b/Praktikum3/bt/templates/qsmitarbeiterlist.tpl
new file mode 100755
index 0000000..258cb8d
--- /dev/null
+++ b/Praktikum3/bt/templates/qsmitarbeiterlist.tpl
@@ -0,0 +1,25 @@
+
+
+
+ Pflege QS-Mitarbeiter
+
+
+
+
Name
ID
+ @var rows_o = context['data'];@
+ @for var key_s in rows_o@
+
+ @var row_o = rows_o[key_s];@
+
#row_o['name']#
#row_o['id']#
+
+ @endfor@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Praktikum3/bt/templates/swentwicklerdetail.tpl b/Praktikum3/bt/templates/swentwicklerdetail.tpl
new file mode 100644
index 0000000..e8d18f7
--- /dev/null
+++ b/Praktikum3/bt/templates/swentwicklerdetail.tpl
@@ -0,0 +1,20 @@
+
+
+
\ No newline at end of file
diff --git a/Praktikum3/bt/templates/swentwicklerlist.tpl b/Praktikum3/bt/templates/swentwicklerlist.tpl
new file mode 100755
index 0000000..15b7c76
--- /dev/null
+++ b/Praktikum3/bt/templates/swentwicklerlist.tpl
@@ -0,0 +1,25 @@
+
+
+
+ Pflege SW-Mitarbeiter
+
+
+
+
Name
ID
+ @var rows_o = context['data'];@
+ @for var key_s in rows_o@
+