diff --git a/Praktikum3/bt/app/__pycache__/error.cpython-36.pyc b/Praktikum3/bt/app/__pycache__/error.cpython-36.pyc
index c557787..c66344e 100644
Binary files a/Praktikum3/bt/app/__pycache__/error.cpython-36.pyc and b/Praktikum3/bt/app/__pycache__/error.cpython-36.pyc differ
diff --git a/Praktikum3/bt/app/__pycache__/navigation.cpython-36.pyc b/Praktikum3/bt/app/__pycache__/navigation.cpython-36.pyc
index 9e0547f..afe2dcb 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/error.py b/Praktikum3/bt/app/error.py
index a0d7027..455afe9 100644
--- a/Praktikum3/bt/app/error.py
+++ b/Praktikum3/bt/app/error.py
@@ -3,13 +3,25 @@
import json
import cherrypy
-#from .database import SourceDatabase_cl, EvaluatedDatabase_cl
+from .database import KatfehlerDatabase_cl, KatursacheDatabase_cl, FehlerDatabase_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
@@ -30,27 +42,87 @@ class KatFehler_cl(object):
#-------------------------------------------------------
def __init__(self):
#-------------------------------------------------------
- pass
+ self.db_o = KatfehlerDatabase_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
@@ -73,27 +145,87 @@ class KatUrsache_cl(object):
#-------------------------------------------------------
def __init__(self):
#-------------------------------------------------------
- pass
+ self.db_o = KatursacheDatabase_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
@@ -119,22 +251,87 @@ class Fehler_cl(object):
#-------------------------------------------------------
def __init__(self):
#-------------------------------------------------------
- pass
+ self.db_o = FehlerDatabase_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, id):
+ #-------------------------------------------------------
+ # 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/app/navigation.py b/Praktikum3/bt/app/navigation.py
index 232fcb6..0e30ed9 100755
--- a/Praktikum3/bt/app/navigation.py
+++ b/Praktikum3/bt/app/navigation.py
@@ -38,7 +38,8 @@ class Navigation_cl(object):
{'action': 'komponente' , 'text': 'Pflege Komponenten'},
{'action': 'qsmitarbeiter' , 'text': 'Pflege Daten QS-Mitarbeiter'},
{'action': 'swentwickler' , 'text': 'Pflege Daten SW-Entwickler'},
- {'action': 'kategorien' , 'text': 'Pflege Kategorien'},
+ {'action': 'katfehler' , 'text': 'Pflege Fehler-Kategorien'},
+ {'action': 'katursache' , 'text': 'Pflege Fehlerursachen-Kategorien'},
{'action': 'prolist' , 'text': 'Auswertung Projekte/Fehler'},
{'action': 'catlist' , 'text': 'Auswertung Kategorien/Fehler'}
]
diff --git a/Praktikum3/bt/data/katfehler/1.dat b/Praktikum3/bt/data/katfehler/1.dat
new file mode 100644
index 0000000..fc37623
--- /dev/null
+++ b/Praktikum3/bt/data/katfehler/1.dat
@@ -0,0 +1,4 @@
+{
+ "name": "Fehlerkategorie1",
+ "id": "1"
+}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/katfehler/2.dat b/Praktikum3/bt/data/katfehler/2.dat
new file mode 100644
index 0000000..201fc95
--- /dev/null
+++ b/Praktikum3/bt/data/katfehler/2.dat
@@ -0,0 +1,4 @@
+{
+ "name": "Fehlerkategorie2",
+ "id": "2"
+}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/katfehler/3.dat b/Praktikum3/bt/data/katfehler/3.dat
new file mode 100644
index 0000000..4e887a4
--- /dev/null
+++ b/Praktikum3/bt/data/katfehler/3.dat
@@ -0,0 +1,4 @@
+{
+ "name": "Fehlerkategorie3",
+ "id": "3"
+}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/katfehler/5.dat b/Praktikum3/bt/data/katfehler/5.dat
new file mode 100644
index 0000000..f7f1a91
--- /dev/null
+++ b/Praktikum3/bt/data/katfehler/5.dat
@@ -0,0 +1,4 @@
+{
+ "name": "Fehlerkategorie5",
+ "id": "5"
+}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/katfehler/6.dat b/Praktikum3/bt/data/katfehler/6.dat
new file mode 100644
index 0000000..2aa9797
--- /dev/null
+++ b/Praktikum3/bt/data/katfehler/6.dat
@@ -0,0 +1,4 @@
+{
+ "name": "Fehlerkategorie6",
+ "id": "6"
+}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/katfehler/maxid.dat b/Praktikum3/bt/data/katfehler/maxid.dat
index c227083..62f9457 100755
--- a/Praktikum3/bt/data/katfehler/maxid.dat
+++ b/Praktikum3/bt/data/katfehler/maxid.dat
@@ -1 +1 @@
-0
\ No newline at end of file
+6
\ No newline at end of file
diff --git a/Praktikum3/bt/data/katursache/1.dat b/Praktikum3/bt/data/katursache/1.dat
new file mode 100644
index 0000000..81a3401
--- /dev/null
+++ b/Praktikum3/bt/data/katursache/1.dat
@@ -0,0 +1,4 @@
+{
+ "name": "Fehlerursachekategorie1",
+ "id": "1"
+}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/katursache/2.dat b/Praktikum3/bt/data/katursache/2.dat
new file mode 100644
index 0000000..148ce15
--- /dev/null
+++ b/Praktikum3/bt/data/katursache/2.dat
@@ -0,0 +1,4 @@
+{
+ "name": "Fehlerursachekategorie2",
+ "id": "2"
+}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/katursache/3.dat b/Praktikum3/bt/data/katursache/3.dat
new file mode 100644
index 0000000..ad8313d
--- /dev/null
+++ b/Praktikum3/bt/data/katursache/3.dat
@@ -0,0 +1,4 @@
+{
+ "name": "Fehlerursachekategorie3",
+ "id": "3"
+}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/katursache/4.dat b/Praktikum3/bt/data/katursache/4.dat
new file mode 100644
index 0000000..8ccc006
--- /dev/null
+++ b/Praktikum3/bt/data/katursache/4.dat
@@ -0,0 +1,4 @@
+{
+ "name": "Fehlerursachekategorie4",
+ "id": "4"
+}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/katursache/6.dat b/Praktikum3/bt/data/katursache/6.dat
new file mode 100644
index 0000000..73a4c4b
--- /dev/null
+++ b/Praktikum3/bt/data/katursache/6.dat
@@ -0,0 +1,4 @@
+{
+ "name": "Fehlerursachekategorie6",
+ "id": "6"
+}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/katursache/7.dat b/Praktikum3/bt/data/katursache/7.dat
new file mode 100644
index 0000000..a76a77e
--- /dev/null
+++ b/Praktikum3/bt/data/katursache/7.dat
@@ -0,0 +1,4 @@
+{
+ "name": "Fehlerursachekategorie7",
+ "id": "7"
+}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/katursache/maxid.dat b/Praktikum3/bt/data/katursache/maxid.dat
index c227083..c793025 100755
--- a/Praktikum3/bt/data/katursache/maxid.dat
+++ b/Praktikum3/bt/data/katursache/maxid.dat
@@ -1 +1 @@
-0
\ No newline at end of file
+7
\ No newline at end of file
diff --git a/Praktikum3/bt/static/js/app.js b/Praktikum3/bt/static/js/app.js
index a273d31..45b2c2d 100755
--- a/Praktikum3/bt/static/js/app.js
+++ b/Praktikum3/bt/static/js/app.js
@@ -33,6 +33,12 @@ APP.Application_cl = class {
this.listSwEntwickler_o = new APP.ListView_cl('swentwickler', '/swentwickler/', 'swentwicklerlist.tpl');
this.detailSwEntwickler_o = new APP.DetailView_cl('swentwickler', '/swentwickler/', 'swentwicklerdetail.tpl');
+ this.listKatFehler_o = new APP.ListView_cl('katfehler', '/katfehler/', 'katfehlerlist.tpl');
+ this.detailKatFehler_o = new APP.DetailView_cl('katfehler', '/katfehler/', 'katfehlerdetail.tpl');
+
+ this.listKatUrsache_o = new APP.ListView_cl('katursache', '/katursache/', 'katursachelist.tpl');
+ this.detailKatUrsache_o = new APP.DetailView_cl('katursache', '/katursache/', 'katursachedetail.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');
@@ -97,6 +103,28 @@ APP.Application_cl = class {
// Detailformular im Content-Bereich anzeigen
self_opl.setContent_p(self_opl.detailSwEntwickler_o, data_apl[1]);
break;
+ case 'katfehler':
+ self_opl.setContent_p(self_opl.listKatFehler_o, data_apl[1]);
+ break;
+ case 'katfehler.add':
+ // (leeres) Detailformular im Content-Bereich anzeigen
+ self_opl.setContent_p(self_opl.detailKatFehler_o, data_apl[1]);
+ break;
+ case 'katfehler.edit':
+ // Detailformular im Content-Bereich anzeigen
+ self_opl.setContent_p(self_opl.detailKatFehler_o, data_apl[1]);
+ break;
+ case 'katursache':
+ self_opl.setContent_p(self_opl.listKatUrsache_o, data_apl[1]);
+ break;
+ case 'katursache.add':
+ // (leeres) Detailformular im Content-Bereich anzeigen
+ self_opl.setContent_p(self_opl.detailKatUrsache_o, data_apl[1]);
+ break;
+ case 'katursache.edit':
+ // Detailformular im Content-Bereich anzeigen
+ self_opl.setContent_p(self_opl.detailKatUrsache_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 8790c54..cf404a5 100644
Binary files a/Praktikum3/bt/templates/.DS_Store and b/Praktikum3/bt/templates/.DS_Store differ
diff --git a/Praktikum3/bt/templates/katfehlerdetail.tpl b/Praktikum3/bt/templates/katfehlerdetail.tpl
new file mode 100644
index 0000000..91057ff
--- /dev/null
+++ b/Praktikum3/bt/templates/katfehlerdetail.tpl
@@ -0,0 +1,20 @@
+
+
+
\ No newline at end of file
diff --git a/Praktikum3/bt/templates/katfehlerlist.tpl b/Praktikum3/bt/templates/katfehlerlist.tpl
new file mode 100755
index 0000000..d53f3f4
--- /dev/null
+++ b/Praktikum3/bt/templates/katfehlerlist.tpl
@@ -0,0 +1,25 @@
+
+
+
+ Pflege Fehlerkategorien
+
+
+
+
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/katursachedetail.tpl b/Praktikum3/bt/templates/katursachedetail.tpl
new file mode 100644
index 0000000..79940ca
--- /dev/null
+++ b/Praktikum3/bt/templates/katursachedetail.tpl
@@ -0,0 +1,20 @@
+
+
+
\ No newline at end of file
diff --git a/Praktikum3/bt/templates/katursachelist.tpl b/Praktikum3/bt/templates/katursachelist.tpl
new file mode 100755
index 0000000..9cfba25
--- /dev/null
+++ b/Praktikum3/bt/templates/katursachelist.tpl
@@ -0,0 +1,25 @@
+
+
+
+ Pflege Fehlerursachekategorien
+
+
+
+
Name
ID
+ @var rows_o = context['data'];@
+ @for var key_s in rows_o@
+