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 @@ + +
+

+ Pflege Fehlerkategorien +

+
+ + +
+ + +
+ +
+
+ + +
+
+ \ 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 +

+
+ + + @var rows_o = context['data'];@ + @for var key_s in rows_o@ + + @var row_o = rows_o[key_s];@ + + + @endfor@ +
NameID
#row_o['name']##row_o['id']#
+
+
+ + + +
+
+ + \ 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 @@ + +
+

+ Pflege Fehlerursachekategorien +

+
+ + +
+ + +
+ +
+
+ + +
+
+ \ 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 +

+
+ + + @var rows_o = context['data'];@ + @for var key_s in rows_o@ + + @var row_o = rows_o[key_s];@ + + + @endfor@ +
NameID
#row_o['name']##row_o['id']#
+
+
+ + + +
+
+ + \ No newline at end of file