diff --git a/Praktikum3/bt/.DS_Store b/Praktikum3/bt/.DS_Store
index b0e8eb5..7dddf57 100644
Binary files a/Praktikum3/bt/.DS_Store and b/Praktikum3/bt/.DS_Store differ
diff --git a/Praktikum3/bt/app/__pycache__/database.cpython-36.pyc b/Praktikum3/bt/app/__pycache__/database.cpython-36.pyc
index 2aa4c57..3661965 100644
Binary files a/Praktikum3/bt/app/__pycache__/database.cpython-36.pyc and b/Praktikum3/bt/app/__pycache__/database.cpython-36.pyc differ
diff --git a/Praktikum3/bt/app/__pycache__/error.cpython-36.pyc b/Praktikum3/bt/app/__pycache__/error.cpython-36.pyc
index 4a2e475..f6ac613 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__/projekt.cpython-36.pyc b/Praktikum3/bt/app/__pycache__/projekt.cpython-36.pyc
index cc31d2d..fc6a11c 100644
Binary files a/Praktikum3/bt/app/__pycache__/projekt.cpython-36.pyc and b/Praktikum3/bt/app/__pycache__/projekt.cpython-36.pyc differ
diff --git a/Praktikum3/bt/app/database.py b/Praktikum3/bt/app/database.py
index ae0e588..57ba5db 100755
--- a/Praktikum3/bt/app/database.py
+++ b/Praktikum3/bt/app/database.py
@@ -159,6 +159,14 @@ class KomponenteDatabase_cl(Database_cl):
'projektid': ''
}
+ #-------------------------------------------------------
+ def deleteDependencies_px(self, id):
+ #-------------------------------------------------------
+ for komponente in list(self.data_o):
+ if self.data_o[komponente]['projektid'] == id:
+ self.delete_px(komponente)
+ return id
+
#----------------------------------------------------------
class QsMitarbeiterDatabase_cl(Database_cl):
#----------------------------------------------------------
@@ -252,7 +260,11 @@ class FehlerDatabase_cl(Database_cl):
'katursacheid': '',
'qsmitarbeiterid': '',
'swentwicklerid': '',
- 'status': ''
+ 'status': '',
+ 'beschreibung': '',
+ 'beschreibungursache': '',
+ 'zeiterfasst': '',
+ 'zeitbehoben': ''
}
#-------------------------------------------------------
diff --git a/Praktikum3/bt/app/error.py b/Praktikum3/bt/app/error.py
index 6fa757f..216eed2 100644
--- a/Praktikum3/bt/app/error.py
+++ b/Praktikum3/bt/app/error.py
@@ -3,6 +3,9 @@
import json
import cherrypy
+
+import time
+from datetime import datetime
from .database import KatfehlerDatabase_cl, KatursacheDatabase_cl, FehlerDatabase_cl, KomponenteDatabase_cl, QsMitarbeiterDatabase_cl, SwEntwicklerDatabase_cl
# Method-Dispatching!
@@ -309,8 +312,14 @@ class Fehler_cl(object):
'katursacheid': data_opl["katursacheid_s"],
'qsmitarbeiterid': data_opl["qsmitarbeiterid_s"],
'swentwicklerid': data_opl["swentwicklerid_s"],
- 'status': data_opl["status_s"]
- }
+ 'status': data_opl["status_s"],
+ 'beschreibung': data_opl["beschreibung_s"],
+ 'beschreibungursache': data_opl["beschreibungursache_s"],
+ 'zeiterfasst': data_opl["zeiterfasst_s"],
+ 'zeitbehoben': data_opl["zeitbehoben_s"]
+ }
+ if data_o['status'] == 'behoben' and data_o['zeitbehoben'] == "":
+ data_o['zeitbehoben'] = datetime.now().strftime("%d.%m.%Y-%H:%M")
# Update-Operation
retVal_o['id'] = id_s
if self.db_o.update_px(id_s, data_o):
@@ -339,8 +348,13 @@ class Fehler_cl(object):
'katursacheid': data_opl["katursacheid_s"],
'qsmitarbeiterid': data_opl["qsmitarbeiterid_s"],
'swentwicklerid': data_opl["swentwicklerid_s"],
- 'status': data_opl["status_s"]
+ 'status': data_opl["status_s"],
+ 'beschreibung': data_opl["beschreibung_s"],
+ 'beschreibungursache': data_opl["beschreibungursache_s"],
+ 'zeitbehoben': '',
+ 'zeiterfasst': datetime.now().strftime("%d.%m.%Y-%H:%M")
}
+
# Create-Operation
id_s = self.db_o.create_px(data_o)
retVal_o['id'] = id_s
diff --git a/Praktikum3/bt/app/projekt.py b/Praktikum3/bt/app/projekt.py
index 9061a9f..c58578e 100644
--- a/Praktikum3/bt/app/projekt.py
+++ b/Praktikum3/bt/app/projekt.py
@@ -47,6 +47,7 @@ class Projekt_cl(object):
def __init__(self):
#-------------------------------------------------------
self.db_o = ProjektDatabase_cl()
+ self.dbKomponente_o = KomponenteDatabase_cl()
#-------------------------------------------------------
def GET(self, id = None):
@@ -122,7 +123,7 @@ class Projekt_cl(object):
}
if self.db_o.delete_px(id):
- pass
+ self.dbKomponente_o.deleteDependencies_px(id)
else:
retVal_o['id'] = None
diff --git a/Praktikum3/bt/data/fehler/14.dat b/Praktikum3/bt/data/fehler/14.dat
new file mode 100644
index 0000000..d096ee3
--- /dev/null
+++ b/Praktikum3/bt/data/fehler/14.dat
@@ -0,0 +1,14 @@
+{
+ "name": "Fehler1",
+ "id": "14",
+ "komponenteid": "1",
+ "katfehlerid": "1",
+ "katursacheid": "1",
+ "qsmitarbeiterid": "1",
+ "swentwicklerid": "5",
+ "status": "geprueft",
+ "beschreibung": "Beschreibung1",
+ "beschreibungursache": "Fehlerbeschreibun",
+ "zeiterfasst": "19.01.2017-09:44",
+ "zeitbehoben": "19.01.2017-09:54"
+}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/fehler/15.dat b/Praktikum3/bt/data/fehler/15.dat
new file mode 100644
index 0000000..20f09da
--- /dev/null
+++ b/Praktikum3/bt/data/fehler/15.dat
@@ -0,0 +1,14 @@
+{
+ "name": "Fehler2",
+ "id": "15",
+ "komponenteid": "1",
+ "katfehlerid": "",
+ "katursacheid": "",
+ "qsmitarbeiterid": "",
+ "swentwicklerid": "",
+ "status": "protokolliert",
+ "beschreibung": "Beschreibung2",
+ "beschreibungursache": "",
+ "zeiterfasst": "19.01.2017-09:49",
+ "zeitbehoben": ""
+}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/fehler/3.dat b/Praktikum3/bt/data/fehler/3.dat
deleted file mode 100644
index 5762010..0000000
--- a/Praktikum3/bt/data/fehler/3.dat
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "name": "Fehler3",
- "id": "3",
- "komponenteid": "1",
- "katfehlerid": "3",
- "katursacheid": "7",
- "qsmitarbeiterid": "3",
- "swentwicklerid": "3",
- "status": "geprueft"
-}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/fehler/4.dat b/Praktikum3/bt/data/fehler/4.dat
deleted file mode 100644
index 72a5dcd..0000000
--- a/Praktikum3/bt/data/fehler/4.dat
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "name": "Fehler4",
- "id": "4",
- "komponenteid": "2",
- "katfehlerid": "",
- "katursacheid": "",
- "qsmitarbeiterid": "",
- "swentwicklerid": "",
- "status": "protokolliert"
-}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/fehler/maxid.dat b/Praktikum3/bt/data/fehler/maxid.dat
index bf0d87a..3f10ffe 100755
--- a/Praktikum3/bt/data/fehler/maxid.dat
+++ b/Praktikum3/bt/data/fehler/maxid.dat
@@ -1 +1 @@
-4
\ No newline at end of file
+15
\ No newline at end of file
diff --git a/Praktikum3/bt/data/komponente/1.dat b/Praktikum3/bt/data/komponente/1.dat
deleted file mode 100644
index 8efacf6..0000000
--- a/Praktikum3/bt/data/komponente/1.dat
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "Komponente1",
- "projektid": "3",
- "id": "1"
-}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/komponente/2.dat b/Praktikum3/bt/data/komponente/2.dat
deleted file mode 100644
index fddd974..0000000
--- a/Praktikum3/bt/data/komponente/2.dat
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "Komponente2",
- "projektid": "3",
- "id": "2"
-}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/komponente/3.dat b/Praktikum3/bt/data/komponente/3.dat
deleted file mode 100644
index 5c92f4d..0000000
--- a/Praktikum3/bt/data/komponente/3.dat
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "Komponente3",
- "projektid": "4",
- "id": "3"
-}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/komponente/4.dat b/Praktikum3/bt/data/komponente/4.dat
deleted file mode 100644
index 0c8d366..0000000
--- a/Praktikum3/bt/data/komponente/4.dat
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "Komponente4",
- "projektid": "5",
- "id": "4"
-}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/komponente/5.dat b/Praktikum3/bt/data/komponente/5.dat
deleted file mode 100644
index dc33069..0000000
--- a/Praktikum3/bt/data/komponente/5.dat
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "Komponente5",
- "projektid": "6",
- "id": "5"
-}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/projekt/3.dat b/Praktikum3/bt/data/projekt/3.dat
deleted file mode 100644
index 51b1f3d..0000000
--- a/Praktikum3/bt/data/projekt/3.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "Projekt3",
- "id": "3"
-}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/projekt/5.dat b/Praktikum3/bt/data/projekt/5.dat
deleted file mode 100644
index 6bab9fa..0000000
--- a/Praktikum3/bt/data/projekt/5.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "Projekt5",
- "id": "5"
-}
\ No newline at end of file
diff --git a/Praktikum3/bt/data/projekt/6.dat b/Praktikum3/bt/data/projekt/6.dat
deleted file mode 100644
index 4dcc9b3..0000000
--- a/Praktikum3/bt/data/projekt/6.dat
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "Projekt6",
- "id": "6"
-}
\ No newline at end of file
diff --git a/Praktikum3/bt/doc/Praktikum4.html b/Praktikum3/bt/doc/Praktikum4.html
new file mode 100644
index 0000000..c1a2fdc
--- /dev/null
+++ b/Praktikum3/bt/doc/Praktikum4.html
@@ -0,0 +1,360 @@
+
+
+
+
+
+
+
+
+
+
+
+
WEB Praktikum
+
Termin 4
+
+
Datum: 19.1.2017
+
Gruppe A
+
+
Kai Wansart: 921862
+
Felix Hoster:
+
+
+
Einleitung
+
Allgemeine Beschreibung der Lösung
+
Die Lösung beschreibt einen Bug-Tracker, welcher in der Lage ist, Fehler zu verwalten. Es gibt die Möglichkeit einen Bug zu "melden"/hinzuzufügen, welcher dann von den Rollen "QS-Mitarbeiter" und "SW-Entwickler" verwaltet und verarbeitet werden kann. Hier gibt es die Möglichkeit, den Fehler, sowie den "Bug-Fix", zu Kategorisieren. Um die "Bugs" vernünftig einzusortieren, gibt es eine Einteilung in Komponenten, welche eingeteilt sind in Projekte. Sowohl die Komponenten, als auch die Projekte können verwaltet werden. Es gibt eine Auswertung für die Fehler, sowohl für die Projekte, als auch die Fehlerkategorien.
+
Implementierung des Servers
+
REST-Interface
+
+
/projekt/
+
+
GET
+
+
alle anfordern
+
einzelnen Eintrag anfordern (":id")
+
+
PUT
+
+
neuen Eintrag speichern (Daten übergeben)
+
+
POST
+
+
Eintrag ändern (":id")
+
+
DELETE
+
+
Eintrag löschen (":id")
+
+
+
/projektkomponenten/
+
+
GET
+
+
alle Komponenten eines Projekts anfordern (":id")
+
+
+
/komponente/
+
+
GET
+
+
alle anfordern
+
einzelnen Eintrag anfordern (":id")
+
+
PUT
+
+
neuen Eintrag speichern (Daten übergeben)
+
+
POST
+
+
Eintrag ändern (":id")
+
+
DELETE
+
+
Eintrag löschen (":id")
+
+
+
/qsmitarbeiter/
+
+
GET
+
+
alle anfordern
+
einzelnen Eintrag anfordern (":id")
+
+
PUT
+
+
neuen Eintrag speichern (Daten übergeben)
+
+
POST
+
+
Eintrag ändern (":id")
+
+
DELETE
+
+
Eintrag löschen (":id")
+
+
+
/swentwickler/
+
+
GET
+
+
alle anfordern
+
einzelnen Eintrag anfordern (":id")
+
+
PUT
+
+
neuen Eintrag speichern (Daten übergeben)
+
+
POST
+
+
Eintrag ändern (":id")
+
+
DELETE
+
+
Eintrag löschen (":id")
+
+
+
/katfehler/
+
+
GET
+
+
alle anfordern
+
einzelnen Eintrag anfordern (":id")
+
+
PUT
+
+
neuen Eintrag speichern (Daten übergeben)
+
+
POST
+
+
Eintrag ändern (":id")
+
+
DELETE
+
+
Eintrag löschen (":id")
+
+
+
/katursache/
+
+
GET
+
+
alle anfordern
+
einzelnen Eintrag anfordern (":id")
+
+
PUT
+
+
neuen Eintrag speichern (Daten übergeben)
+
+
POST
+
+
Eintrag ändern (":id")
+
+
DELETE
+
+
Eintrag löschen (":id")
+
+
+
/fehler/
+
+
GET
+
+
alle anfordern
+
einzelnen Eintrag anfordern (":id")
+
alle erkannten Fehler anfordern ("?type=erkannt")
+
alle behobenen Fehler anfordern ("?type=behoben")
+
+
PUT
+
+
neuen Eintrag speichern (Daten übergeben)
+
+
POST
+
+
Eintrag ändern (":id")
+
+
DELETE
+
+
Eintrag löschen (":id")
+
+
+
/prolist/
+
+
GET
+
+
Auswertung Fehler nach Projekt/Komponente/Status als Liste anfordern
+
+
+
/katlist/
+
+
GET
+
+
Auswertung Fehler nach Kategorie/Status als Liste anfordern
+
+
+
/templates/
+
+
GET
+
+
Templates im JSON-Format
+
+
+
+
Module
+
+
Server - Verwaltung der Anfragen/von CherryPy
+
+
Application - Weiterleitung der Anfragen zu Modulen/Fehlerrückgabe
+
+
Database - Verwaltung der Datensätze
+
+
Database - Verwaltung der jeweils instanzierten Datenbank
+
+
ProjektDatabase - Funktionen für die Projekt-Datenbank
+
+
getDefault_px - Rückgabe der Default-Werte
+
+
KomponenteDatabase - Funktionen für die Komponenten-Datenbank
+
+
getDefault_px - Rückgabe der Default-Werte
+
+
QsMitarbeiterDatabase - Funktionen für die QS-Mitarbeiter-Datenbank
+
+
getDefault_px - Rückgabe der Default-Werte
+
+
SwEntwicklerDatabase - Funktionen für die SW-Entwickler-Datenbank
+
+
getDefault_px - Rückgabe der Default-Werte
+
+
KatFehlerDatabase - Funktionen für die Fehlerkategorien-Datenbank
+
+
getDefault_px - Rückgabe der Default-Werte
+
+
KatUrsacheDatabase - Funktionen für die Fehlerursachen-Datenbank
+
+
getDefault_px - Rückgabe der Default-Werte
+
+
FehlerDatabase - Funktionen für die Fehler-Datenbank
+
+
getDefault_px - Rückgabe der Default-Werte
+
+
+
+
Error - Verwaltung der Fehler + deren Kategorien und Ursachen
+
+
KatFehler - Fehlerkategorien
+
+
GET - Rückgabe von Daten
+
PUT - Verändern von Daten
+
POST - Hinzufügen von Daten
+
DELETE - Löschen von Daten
+
+
KatUrsache - Fehlerursachen
+
+
GET - Rückgabe von Daten
+
PUT - Verändern von Daten
+
POST - Hinzufügen von Daten
+
DELETE - Löschen von Daten
+
+
Fehler
+
+
GET - Rückgabe von Daten
+
PUT - Verändern von Daten
+
POST - Hinzufügen von Daten
+
DELETE - Löschen von Daten
+
+
+
Eval - Auswertung der Daten
+
+
ProList - Auswertung nach Projekten
+
+
GET - Rückgabe von Daten
+
+
KatList - Auswertung nach Kategorien
+
+
GET - Rückgabe von Daten
+
+
+
Navigation - Inhalt der Navigationsleiste
+
+
Navigation
+
+
GET - Rückgabe von Daten
+
+
+
Projekt - Verwaltung der Projekte + deren Kategorien
+
+
Projekt
+
+
GET - Rückgabe von Daten
+
PUT - Verändern von Daten
+
POST - Hinzufügen von Daten
+
DELETE - Löschen von Daten
+
+
ProjektKomponenten - Komponenten eines Projektes
+
+
GET - Rückgabe von Daten
+
+
Komponente
+
+
GET - Rückgabe von Daten
+
PUT - Verändern von Daten
+
POST - Hinzufügen von Daten
+
DELETE - Löschen von Daten
+
+
+
Staff - Verwaltung der Benutzer
+
+
QsMitarbeiter - QS-Mitarbeiter
+
+
GET - Rückgabe von Daten
+
PUT - Verändern von Daten
+
POST - Hinzufügen von Daten
+
DELETE - Löschen von Daten
+
+
SWEntwickler - SW-Entwickler
+
+
GET - Rückgabe von Daten
+
PUT - Verändern von Daten
+
POST - Hinzufügen von Daten
+
DELETE - Löschen von Daten
+
+
+
Templates - Verwaltung der Templates
+
+
Templates
+
+
GET - Rückgabe von Daten ### Datenhaltung
+
+
+
+
+
Datensatz - für die jeweiligen Instanzen
+
+
projekt
+
komponenten
+
qsmitarbeiter
+
swentwickler
+
katfehler
+
katursache
+
fehler
+
+
+
Implementierung des Clients
+
Klassen
+
+
Application - Instanzieren aller Klassen, Verwalten der Anfragen (durch Eventservice)
+
+
DetailView - Verwalten der Detail-Ansicht
+
ListView - Verwalten der List-Ansicht
+
Nav - Verwalten des Navigationsbereiches
+
+
EventService
+
Generator
+
TemplateManager
+
+
Eventservice
+
Der Eventservice implementiert das "Publish-Subscriber-Muster". Das bedeutet, dass es einen, oder mehrere "Subscriber" und einen "Publisher" gibt. Melden die "Subscriber" sich bei dem System an, erhalten sie jegliche "Notifications", die der "Publisher" sendet. Der Vorteil dieses Systems ist es, dass die Subscriber Nachrichten von Objekten erhalten können, von dessen Existenz sie garnicht wissen.
+
Templateverarbeitung
+
Die Templates liegen in Form von modifizierten "HTML-Dateien" vor. Diese wurde um Code der Sprache "Javascript" erweitert und mit einer speziellen Syntax gekennzeichnet. Die Template-Engine kann hiermit dynamisch Inhalt erzeugen.
+
Prüfung Markup und Stilregeln
+
+
diff --git a/Praktikum3/bt/doc/Praktikum4.md b/Praktikum3/bt/doc/Praktikum4.md
new file mode 100644
index 0000000..c5df111
--- /dev/null
+++ b/Praktikum3/bt/doc/Praktikum4.md
@@ -0,0 +1,200 @@
+# WEB Praktikum
+## Termin 4
+- Datum: 19.1.2017
+- Gruppe A
+ - Kai Wansart: 921862
+ - Felix Hoster:
+
+## Einleitung
+### Allgemeine Beschreibung der Lösung
+Die Lösung beschreibt einen Bug-Tracker, welcher in der Lage ist, Fehler zu verwalten.
+Es gibt die Möglichkeit einen Bug zu "melden"/hinzuzufügen, welcher dann von den Rollen "QS-Mitarbeiter" und "SW-Entwickler" verwaltet und verarbeitet werden kann. Hier gibt es die Möglichkeit, den Fehler, sowie den "Bug-Fix", zu Kategorisieren.
+Um die "Bugs" vernünftig einzusortieren, gibt es eine Einteilung in Komponenten, welche eingeteilt sind in Projekte. Sowohl die Komponenten, als auch die Projekte können verwaltet werden.
+Es gibt eine Auswertung für die Fehler, sowohl für die Projekte, als auch die Fehlerkategorien.
+
+## Implementierung des Servers
+### REST-Interface
+- /projekt/
+ - GET
+ - alle anfordern
+ - einzelnen Eintrag anfordern (":id")
+ - PUT
+ - neuen Eintrag speichern (Daten übergeben)
+ - POST
+ - Eintrag ändern (":id")
+ - DELETE
+ - Eintrag löschen (":id")
+- /projektkomponenten/
+ - GET
+ - alle Komponenten eines Projekts anfordern (":id")
+- /komponente/
+ - GET
+ - alle anfordern
+ - einzelnen Eintrag anfordern (":id")
+ - PUT
+ - neuen Eintrag speichern (Daten übergeben)
+ - POST
+ - Eintrag ändern (":id")
+ - DELETE
+ - Eintrag löschen (":id")
+- /qsmitarbeiter/
+ - GET
+ - alle anfordern
+ - einzelnen Eintrag anfordern (":id")
+ - PUT
+ - neuen Eintrag speichern (Daten übergeben)
+ - POST
+ - Eintrag ändern (":id")
+ - DELETE
+ - Eintrag löschen (":id")
+- /swentwickler/
+ - GET
+ - alle anfordern
+ - einzelnen Eintrag anfordern (":id")
+ - PUT
+ - neuen Eintrag speichern (Daten übergeben)
+ - POST
+ - Eintrag ändern (":id")
+ - DELETE
+ - Eintrag löschen (":id")
+- /katfehler/
+ - GET
+ - alle anfordern
+ - einzelnen Eintrag anfordern (":id")
+ - PUT
+ - neuen Eintrag speichern (Daten übergeben)
+ - POST
+ - Eintrag ändern (":id")
+ - DELETE
+ - Eintrag löschen (":id")
+- /katursache/
+ - GET
+ - alle anfordern
+ - einzelnen Eintrag anfordern (":id")
+ - PUT
+ - neuen Eintrag speichern (Daten übergeben)
+ - POST
+ - Eintrag ändern (":id")
+ - DELETE
+ - Eintrag löschen (":id")
+- /fehler/
+ - GET
+ - alle anfordern
+ - einzelnen Eintrag anfordern (":id")
+ - alle erkannten Fehler anfordern ("?type=erkannt")
+ - alle behobenen Fehler anfordern ("?type=behoben")
+ - PUT
+ - neuen Eintrag speichern (Daten übergeben)
+ - POST
+ - Eintrag ändern (":id")
+ - DELETE
+ - Eintrag löschen (":id")
+- /prolist/
+ - GET
+ - Auswertung Fehler nach Projekt/Komponente/Status als Liste anfordern
+- /katlist/
+ - GET
+ - Auswertung Fehler nach Kategorie/Status als Liste anfordern
+- /templates/
+ - GET
+ - Templates im JSON-Format
+
+### Module
+- Server - Verwaltung der Anfragen/von CherryPy
+ - Application - Weiterleitung der Anfragen zu Modulen/Fehlerrückgabe
+ - Database - Verwaltung der Datensätze
+ - Database - Verwaltung der jeweils instanzierten Datenbank
+ - ProjektDatabase - Funktionen für die Projekt-Datenbank
+ - getDefault_px - Rückgabe der Default-Werte
+ - KomponenteDatabase - Funktionen für die Komponenten-Datenbank
+ - getDefault_px - Rückgabe der Default-Werte
+ - QsMitarbeiterDatabase - Funktionen für die QS-Mitarbeiter-Datenbank
+ - getDefault_px - Rückgabe der Default-Werte
+ - SwEntwicklerDatabase - Funktionen für die SW-Entwickler-Datenbank
+ - getDefault_px - Rückgabe der Default-Werte
+ - KatFehlerDatabase - Funktionen für die Fehlerkategorien-Datenbank
+ - getDefault_px - Rückgabe der Default-Werte
+ - KatUrsacheDatabase - Funktionen für die Fehlerursachen-Datenbank
+ - getDefault_px - Rückgabe der Default-Werte
+ - FehlerDatabase - Funktionen für die Fehler-Datenbank
+ - getDefault_px - Rückgabe der Default-Werte
+ - Error - Verwaltung der Fehler + deren Kategorien und Ursachen
+ - KatFehler - Fehlerkategorien
+ - GET - Rückgabe von Daten
+ - PUT - Verändern von Daten
+ - POST - Hinzufügen von Daten
+ - DELETE - Löschen von Daten
+ - KatUrsache - Fehlerursachen
+ - GET - Rückgabe von Daten
+ - PUT - Verändern von Daten
+ - POST - Hinzufügen von Daten
+ - DELETE - Löschen von Daten
+ - Fehler
+ - GET - Rückgabe von Daten
+ - PUT - Verändern von Daten
+ - POST - Hinzufügen von Daten
+ - DELETE - Löschen von Daten
+ - Eval - Auswertung der Daten
+ - ProList - Auswertung nach Projekten
+ - GET - Rückgabe von Daten
+ - KatList - Auswertung nach Kategorien
+ - GET - Rückgabe von Daten
+ - Navigation - Inhalt der Navigationsleiste
+ - Navigation
+ - GET - Rückgabe von Daten
+ - Projekt - Verwaltung der Projekte + deren Kategorien
+ - Projekt
+ - GET - Rückgabe von Daten
+ - PUT - Verändern von Daten
+ - POST - Hinzufügen von Daten
+ - DELETE - Löschen von Daten
+ - ProjektKomponenten - Komponenten eines Projektes
+ - GET - Rückgabe von Daten
+ - Komponente
+ - GET - Rückgabe von Daten
+ - PUT - Verändern von Daten
+ - POST - Hinzufügen von Daten
+ - DELETE - Löschen von Daten
+ - Staff - Verwaltung der Benutzer
+ - QsMitarbeiter - QS-Mitarbeiter
+ - GET - Rückgabe von Daten
+ - PUT - Verändern von Daten
+ - POST - Hinzufügen von Daten
+ - DELETE - Löschen von Daten
+ - SWEntwickler - SW-Entwickler
+ - GET - Rückgabe von Daten
+ - PUT - Verändern von Daten
+ - POST - Hinzufügen von Daten
+ - DELETE - Löschen von Daten
+ - Templates - Verwaltung der Templates
+ - Templates
+ - GET - Rückgabe von Daten
+### Datenhaltung
+- Datensatz - für die jeweiligen Instanzen
+ - projekt
+ - komponenten
+ - qsmitarbeiter
+ - swentwickler
+ - katfehler
+ - katursache
+ - fehler
+
+## Implementierung des Clients
+### Klassen
+- Application - Instanzieren aller Klassen, Verwalten der Anfragen (durch Eventservice)
+ - DetailView - Verwalten der Detail-Ansicht
+ - ListView - Verwalten der List-Ansicht
+ - Nav - Verwalten des Navigationsbereiches
+
+- EventService
+- Generator
+- TemplateManager
+
+### Eventservice
+Der Eventservice implementiert das "Publish-Subscriber-Muster". Das bedeutet, dass es einen, oder mehrere "Subscriber" und einen "Publisher" gibt. Melden die "Subscriber" sich bei dem System an, erhalten sie jegliche "Notifications", die der "Publisher" sendet.
+Der Vorteil dieses Systems ist es, dass die Subscriber Nachrichten von Objekten erhalten können, von dessen Existenz sie garnicht wissen.
+
+### Templateverarbeitung
+Die Templates liegen in Form von modifizierten "HTML-Dateien" vor. Diese wurde um Code der Sprache "Javascript" erweitert und mit einer speziellen Syntax gekennzeichnet. Die Template-Engine kann hiermit dynamisch Inhalt erzeugen.
+
+## Prüfung Markup und Stilregeln
\ No newline at end of file
diff --git a/Praktikum3/bt/static/js/detail.js b/Praktikum3/bt/static/js/detail.js
index f44659b..6648fa8 100755
--- a/Praktikum3/bt/static/js/detail.js
+++ b/Praktikum3/bt/static/js/detail.js
@@ -112,7 +112,9 @@ APP.DetailView_cl = class {
var id_s = $('#id_s').val();
var name_s = $('#name_s').val();
var komponenteid_s = $('#komponenteid_s').val();
- var data_s = "id_s=" + id_s + "&status_s=protokolliert&name_s=" + name_s + "&komponenteid_s=" + komponenteid_s + "&katfehlerid_s=&katursacheid_s=&qsmitarbeiterid_s=&swentwicklerid_s=";
+ var beschreibung_s = $('#beschreibung_s').val();
+ var zeiterfasst_s = $('#zeiterfasst_s').val();
+ var data_s = "id_s=" + id_s + "&status_s=protokolliert&name_s=" + name_s + "&komponenteid_s=" + komponenteid_s + "&katfehlerid_s=&katursacheid_s=&qsmitarbeiterid_s=&swentwicklerid_s=&beschreibungursache_s=&zeitbehoben_s&beschreibung_s=" + beschreibung_s + "&zeiterfasst_s=" + zeiterfasst_s;
if (id_s == '') {
type_s = 'POST';
}
@@ -153,22 +155,4 @@ APP.DetailView_cl = class {
}
}
-// ----------------------------------------------
-APP.SourceDetailView_cl = class extends APP.DetailView_cl {
-// ----------------------------------------------
- //constructor (name_spl, path_spl, template_spl) {
- // super.constructor(name_spl, path_spl, template_spl)
- //}
- checkContent_p () {
- // hier nur zur Demonstration Prüfung des Typs gegen eine Werteliste
- // (das realisiert man besser mit einer Liste)
- var status_b = true;
- var typ_s = $("#typ_s").val();
- if ((typ_s != "Typ1") && (typ_s != "Typ2")) {
- status_b = false;
- }
- return status_b;
- }
-}
-
// EOF
\ No newline at end of file
diff --git a/Praktikum3/bt/templates/fehlerdetail.tpl b/Praktikum3/bt/templates/fehlerdetail.tpl
index 02a5d5b..e9395dc 100644
--- a/Praktikum3/bt/templates/fehlerdetail.tpl
+++ b/Praktikum3/bt/templates/fehlerdetail.tpl
@@ -11,10 +11,17 @@
+
+
+