fishished

This commit is contained in:
darthsandmann 2017-01-19 17:28:35 +01:00
parent 0f6cd32fa7
commit 2f677551bb
75 changed files with 322 additions and 230 deletions

BIN
Praktikum3/.DS_Store vendored

Binary file not shown.

Binary file not shown.

View File

@ -8,6 +8,7 @@ from .projekt import Projekt_cl, ProjektKomponenten_cl, Komponente_cl
from .staff import QsMitarbeiter_cl, SwEntwickler_cl
from .error import KatFehler_cl, KatUrsache_cl, Fehler_cl
from .eval import ProList_cl, KatList_cl
from .database import KatfehlerDatabase_cl, KatursacheDatabase_cl, FehlerDatabase_cl, KomponenteDatabase_cl, QsMitarbeiterDatabase_cl, SwEntwicklerDatabase_cl, ProjektDatabase_cl
#----------------------------------------------------------
class Application_cl(object):
@ -18,20 +19,29 @@ class Application_cl(object):
#-------------------------------------------------------
def __init__(self):
#-------------------------------------------------------
self.database_o = {
'projekt': ProjektDatabase_cl(),
'komponente': KomponenteDatabase_cl(),
'qsmitarbeiter': QsMitarbeiterDatabase_cl(),
'swentwickler': SwEntwicklerDatabase_cl(),
'katfehler': KatfehlerDatabase_cl(),
'katursache': KatursacheDatabase_cl(),
'fehler': FehlerDatabase_cl()
}
self.handler_o = {
'projekt': Projekt_cl(),
'projektkomponenten': ProjektKomponenten_cl(),
'komponente': Komponente_cl(),
'projekt': Projekt_cl(self.database_o),
'projektkomponenten': ProjektKomponenten_cl(self.database_o),
'komponente': Komponente_cl(self.database_o),
'qsmitarbeiter': QsMitarbeiter_cl(),
'swentwickler': SwEntwickler_cl(),
'qsmitarbeiter': QsMitarbeiter_cl(self.database_o),
'swentwickler': SwEntwickler_cl(self.database_o),
'katfehler': KatFehler_cl(),
'katursache': KatUrsache_cl(),
'fehler': Fehler_cl(),
'katfehler': KatFehler_cl(self.database_o),
'katursache': KatUrsache_cl(self.database_o),
'fehler': Fehler_cl(self.database_o),
'prolist': ProList_cl(),
'katlist': KatList_cl()
'prolist': ProList_cl(self.database_o),
'katlist': KatList_cl(self.database_o)
}
# es wird keine index-Methode vorgesehen, weil stattdessen
@ -40,6 +50,7 @@ class Application_cl(object):
#-------------------------------------------------------
def GET(self, path_spl = 'projekt', id=None, **data_opl):
#-------------------------------------------------------
retVal_o = {
'data': None
}
@ -72,6 +83,7 @@ class Application_cl(object):
if retVal_o['id'] == None:
cherrypy.response.status = 409
return json.dumps(retVal_o)
#-------------------------------------------------------

View File

@ -10,19 +10,6 @@ import json
class Database_cl(object):
#----------------------------------------------------------
# Daten in dieser Variante dauerhaft (persistent) speichern
# dazu jedes Element in einer Datei, die entsprechend der id benannt ist, speichern
# alle Elemente werden zur Laufzeit des Servers zur Vereinfachung auch im
# Hauptspeicher abgelegt
# die nächste zu vergebende Id wird ebenfalls dauerhaft gespeichert
# zur Vereinfachung wird hier fest vorgegebenen, dass sich die Daten
# im Unterverzeichnis "data/<type>" befinden (siehe Konstruktor)
# es wird ferner angenommen, dass die Datei "data/<type>/maxid.dat" bereits existiert
# und als einzigen Eintrag den aktuellen Wert der maximalen Id enthält
#-------------------------------------------------------
def __init__(self, type_spl):
#-------------------------------------------------------
@ -122,6 +109,23 @@ class Database_cl(object):
return maxId_s
#----------------------------------------------------------
class LoadDatabase_cl(Database_cl):
#----------------------------------------------------------
#-------------------------------------------------------
def __init__(self):
#-------------------------------------------------------
super().__init__('projekt')
super().__init__('komponente')
super().__init__('qsmitarbeiter')
super().__init__('swentwickler')
super().__init__('projekt')
super().__init__('fehler')
super().__init__('katursache')
super().__init__('katfehler')
#----------------------------------------------------------
class ProjektDatabase_cl(Database_cl):
#----------------------------------------------------------
@ -162,10 +166,14 @@ class KomponenteDatabase_cl(Database_cl):
#-------------------------------------------------------
def deleteDependencies_px(self, id):
#-------------------------------------------------------
komponenten = {}
for komponente in list(self.data_o):
print(komponente)
if self.data_o[komponente]['projektid'] == id:
self.delete_px(komponente)
return id
komponenten[komponente] = komponente
return komponenten
#----------------------------------------------------------
class QsMitarbeiterDatabase_cl(Database_cl):
@ -272,10 +280,8 @@ class FehlerDatabase_cl(Database_cl):
#-------------------------------------------------------
# hier zur Vereinfachung:
# Aufruf ohne id: alle Einträge liefern
print(self.data_o)
data_o = {}
for entry in self.data_o:
print(self.data_o[entry])
if self.data_o[entry]['status'] != "geprueft":
data_o[entry] = self.data_o[entry]
@ -286,12 +292,16 @@ class FehlerDatabase_cl(Database_cl):
#-------------------------------------------------------
# hier zur Vereinfachung:
# Aufruf ohne id: alle Einträge liefern
print(self.data_o)
data_o = {}
for entry in self.data_o:
print(self.data_o[entry])
if self.data_o[entry]['status'] == "geprueft":
data_o[entry] = self.data_o[entry]
return data_o
#-------------------------------------------------------
def deleteDependencies_px(self, id):
#-------------------------------------------------------
for fehler in list(self.data_o):
if self.data_o[fehler]['komponenteid'] == id:
self.delete_px(fehler)
# EOF

View File

@ -43,9 +43,9 @@ class KatFehler_cl(object):
exposed = True # gilt für alle Methoden
#-------------------------------------------------------
def __init__(self):
def __init__(self, database_o):
#-------------------------------------------------------
self.db_o = KatfehlerDatabase_cl()
self.db_o = database_o
#-------------------------------------------------------
def GET(self, id=None):
@ -55,10 +55,10 @@ class KatFehler_cl(object):
}
if id == None:
# Anforderung der Liste
retVal_o['data'] = self.db_o.read_px()
retVal_o['data'] = self.db_o['katfehler'].read_px()
else:
# Anforderung eines Dokuments
data_o = self.db_o.read_px(id)
data_o = self.db_o['katfehler'].read_px(id)
if data_o != None:
retVal_o['data'] = adjustId_p(id, data_o)
@ -85,7 +85,7 @@ class KatFehler_cl(object):
}
# Update-Operation
retVal_o['id'] = id_s
if self.db_o.update_px(id_s, data_o):
if self.db_o['katfehler'].update_px(id_s, data_o):
pass
else:
retVal_o['id'] = None
@ -107,7 +107,7 @@ class KatFehler_cl(object):
'name': data_opl["name_s"]
}
# Create-Operation
id_s = self.db_o.create_px(data_o)
id_s = self.db_o['katfehler'].create_px(data_o)
retVal_o['id'] = id_s
return retVal_o
@ -120,7 +120,7 @@ class KatFehler_cl(object):
'id': id
}
if self.db_o.delete_px(id):
if self.db_o['katfehler'].delete_px(id):
pass
else:
retVal_o['id'] = None
@ -146,9 +146,9 @@ class KatUrsache_cl(object):
exposed = True # gilt für alle Methoden
#-------------------------------------------------------
def __init__(self):
def __init__(self, database_o):
#-------------------------------------------------------
self.db_o = KatursacheDatabase_cl()
self.db_o = database_o
#-------------------------------------------------------
def GET(self, id = None):
@ -158,10 +158,10 @@ class KatUrsache_cl(object):
}
if id == None:
# Anforderung der Liste
retVal_o['data'] = self.db_o.read_px()
retVal_o['data'] = self.db_o['katursache'].read_px()
else:
# Anforderung eines Dokuments
data_o = self.db_o.read_px(id)
data_o = self.db_o['katursache'].read_px(id)
if data_o != None:
retVal_o['data'] = adjustId_p(id, data_o)
@ -188,7 +188,7 @@ class KatUrsache_cl(object):
}
# Update-Operation
retVal_o['id'] = id_s
if self.db_o.update_px(id_s, data_o):
if self.db_o['katursache'].update_px(id_s, data_o):
pass
else:
retVal_o['id'] = None
@ -210,7 +210,7 @@ class KatUrsache_cl(object):
'name': data_opl["name_s"]
}
# Create-Operation
id_s = self.db_o.create_px(data_o)
id_s = self.db_o['katursache'].create_px(data_o)
retVal_o['id'] = id_s
return retVal_o
@ -223,7 +223,7 @@ class KatUrsache_cl(object):
'id': id
}
if self.db_o.delete_px(id):
if self.db_o['katursache'].delete_px(id):
pass
else:
retVal_o['id'] = None
@ -252,14 +252,9 @@ class Fehler_cl(object):
exposed = True # gilt für alle Methoden
#-------------------------------------------------------
def __init__(self):
def __init__(self, database_o):
#-------------------------------------------------------
self.db_o = FehlerDatabase_cl()
self.dbKomponente_o = KomponenteDatabase_cl()
self.dbQsMitarbeiter_o = QsMitarbeiterDatabase_cl()
self.dbSwEntwickler_o = SwEntwicklerDatabase_cl()
self.dbKatFehler_o = KatfehlerDatabase_cl()
self.dbKatUrsache_o = KatursacheDatabase_cl()
self.db_o = database_o
#-------------------------------------------------------
def GET(self, id=None, type=None):
@ -271,21 +266,21 @@ class Fehler_cl(object):
# Anforderung der Liste
print('true')
if type == 'erkannt':
retVal_o['data'] = self.db_o.readErkannt_px()
retVal_o['data'] = self.db_o['fehler'].readErkannt_px()
elif type == 'behoben':
retVal_o['data'] = self.db_o.readBehoben_px()
retVal_o['data'] = self.db_o['fehler'].readBehoben_px()
else:
retVal_o['data'] = self.db_o.read_px()
retVal_o['data'] = self.db_o['fehler'].read_px()
else:
# Anforderung eines Dokuments
data_o = self.db_o.read_px(id)
data_o = self.db_o['fehler'].read_px(id)
if data_o != None:
retVal_o['data'] = adjustId_p(id, data_o)
retVal_o['komponente'] = self.dbKomponente_o.read_px()
retVal_o['qsmitarbeiter'] = self.dbQsMitarbeiter_o.read_px()
retVal_o['swentwickler'] = self.dbSwEntwickler_o.read_px()
retVal_o['katfehler'] = self.dbKatFehler_o.read_px()
retVal_o['katursache'] = self.dbKatUrsache_o.read_px()
retVal_o['komponente'] = self.db_o['komponente'].read_px()
retVal_o['qsmitarbeiter'] = self.db_o['qsmitarbeiter'].read_px()
retVal_o['swentwickler'] = self.db_o['swentwickler'].read_px()
retVal_o['katfehler'] = self.db_o['katfehler'].read_px()
retVal_o['katursache'] = self.db_o['katursache'].read_px()
return retVal_o
@ -322,7 +317,7 @@ class Fehler_cl(object):
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):
if self.db_o['fehler'].update_px(id_s, data_o):
pass
else:
retVal_o['id'] = None
@ -356,7 +351,7 @@ class Fehler_cl(object):
}
# Create-Operation
id_s = self.db_o.create_px(data_o)
id_s = self.db_o['fehler'].create_px(data_o)
retVal_o['id'] = id_s
return retVal_o
@ -369,7 +364,7 @@ class Fehler_cl(object):
'id': id
}
if self.db_o.delete_px(id):
if self.db_o['fehler'].delete_px(id):
pass
else:
retVal_o['id'] = None

View File

@ -26,11 +26,9 @@ class ProList_cl(object):
exposed = True # gilt für alle Methoden
#-------------------------------------------------------
def __init__(self):
def __init__(self, database_o):
#-------------------------------------------------------
self.dbFehler_o = FehlerDatabase_cl()
self.dbProjekt_o = ProjektDatabase_cl()
self.dbKomponente_o = KomponenteDatabase_cl()
self.db_o = database_o
#-------------------------------------------------------
def GET(self, id=None):
@ -38,11 +36,11 @@ class ProList_cl(object):
data_o = {}
retVal_o = {}
retVal_o['data'] = {}
data_o['Fehler'] = self.dbFehler_o.read_px()
data_o['Projekt'] = self.dbProjekt_o.read_px()
data_o['Komponente'] = self.dbKomponente_o.read_px()
data_o['Fehler'] = self.db_o['fehler'].read_px()
data_o['Projekt'] = self.db_o['projekt'].read_px()
data_o['Komponente'] = self.db_o['komponente'].read_px()
for projektid in data_o['Projekt']:
print(projektid)
projekt = data_o['Projekt'][projektid]['name']
retVal_o['data'][projekt] = 'None'
for komponente in data_o['Komponente']:
@ -61,13 +59,11 @@ class ProList_cl(object):
retVal_o['data'][projekt][fehler]['fehlerstatus'] = 'erkannt'
else:
retVal_o['data'][projekt][fehler]['fehlerstatus'] = 'beseitigt'
print(retVal_o)
return retVal_o
"""
Anforderung GET PUT POST DELETE
-----------------------------------------------------------------------------------------
@ -81,10 +77,9 @@ class KatList_cl(object):
exposed = True # gilt für alle Methoden
#-------------------------------------------------------
def __init__(self):
def __init__(self, database_o):
#-------------------------------------------------------
self.dbFehler_o = FehlerDatabase_cl()
self.dbKatFehler_o = KatfehlerDatabase_cl()
self.db_o = database_o
#-------------------------------------------------------
def GET(self, id=None):
@ -92,10 +87,8 @@ class KatList_cl(object):
data_o = {}
retVal_o = {}
retVal_o['data'] = {}
data_o['Fehler'] = self.dbFehler_o.read_px()
data_o['Kategorie'] = self.dbKatFehler_o.read_px()
print(data_o)
data_o['Fehler'] = self.db_o['fehler'].read_px()
data_o['Kategorie'] = self.db_o['katfehler'].read_px()
for kategorieid in data_o['Kategorie']:
kategorie = data_o['Kategorie'][kategorieid]['name']
@ -103,7 +96,7 @@ class KatList_cl(object):
for fehler in data_o['Fehler']:
if retVal_o['data'][kategorie] == 'None':
retVal_o['data'][kategorie] = {}
retVal_o['data'][kategorie][fehler] = 'None'
retVal_o['data'][kategorie][fehler] = 'None'
if data_o['Fehler'][fehler]['katfehlerid'] == kategorieid:
if retVal_o['data'][kategorie][fehler] == 'None':
retVal_o['data'][kategorie][fehler] = {}
@ -112,6 +105,8 @@ class KatList_cl(object):
retVal_o['data'][kategorie][fehler]['fehlerstatus'] = 'erkannt'
else:
retVal_o['data'][kategorie][fehler]['fehlerstatus'] = 'beseitigt'
print (retVal_o)
print (retVal_o)
return retVal_o

View File

@ -3,7 +3,7 @@
import json
import cherrypy
from .database import ProjektDatabase_cl, KomponenteDatabase_cl
from .database import ProjektDatabase_cl, KomponenteDatabase_cl, FehlerDatabase_cl
# Method-Dispatching!
# Übersicht Anforderungen / Methoden
@ -44,11 +44,9 @@ class Projekt_cl(object):
exposed = True # gilt für alle Methoden
#-------------------------------------------------------
def __init__(self):
def __init__(self, database_o):
#-------------------------------------------------------
self.db_o = ProjektDatabase_cl()
self.dbKomponente_o = KomponenteDatabase_cl()
self.db_o = database_o
#-------------------------------------------------------
def GET(self, id = None):
#-------------------------------------------------------
@ -57,10 +55,10 @@ class Projekt_cl(object):
}
if id == None:
# Anforderung der Liste
retVal_o['data'] = self.db_o.read_px()
retVal_o['data'] = self.db_o['projekt'].read_px()
else:
# Anforderung eines Dokuments
data_o = self.db_o.read_px(id)
data_o = self.db_o['projekt'].read_px(id)
if data_o != None:
retVal_o['data'] = adjustId_p(id, data_o)
@ -87,7 +85,7 @@ class Projekt_cl(object):
}
# Update-Operation
retVal_o['id'] = id_s
if self.db_o.update_px(id_s, data_o):
if self.db_o['projekt'].update_px(id_s, data_o):
pass
else:
retVal_o['id'] = None
@ -109,7 +107,7 @@ class Projekt_cl(object):
'name': data_opl["name_s"]
}
# Create-Operation
id_s = self.db_o.create_px(data_o)
id_s = self.db_o['projekt'].create_px(data_o)
retVal_o['id'] = id_s
return retVal_o
@ -123,7 +121,8 @@ class Projekt_cl(object):
}
if self.db_o.delete_px(id):
self.dbKomponente_o.deleteDependencies_px(id)
kid = self.db_o['komponente'].deleteDependencies_px(id)
self.db_o['fehler'].deleteDependencies_px(kid)
else:
retVal_o['id'] = None
@ -145,9 +144,9 @@ class ProjektKomponenten_cl(object):
exposed = True # gilt für alle Methoden
#-------------------------------------------------------
def __init__(self):
def __init__(self, database_o):
#-------------------------------------------------------
self.db_o = KomponenteDatabase_cl()
self.db_o = database_o
#-------------------------------------------------------
def GET(self):
@ -157,10 +156,10 @@ class ProjektKomponenten_cl(object):
}
if id == None:
# Anforderung der Liste
retVal_o['data'] = self.db_o.read_px()
retVal_o['data'] = self.db_o['komponente'].read_px()
else:
# Anforderung eines Dokuments
data_o = self.db_o.read_px(id)
data_o = self.db_o['komponente'].read_px(id)
if data_o != None:
retVal_o['data'] = adjustId_p(id, data_o)
@ -187,13 +186,12 @@ class Komponente_cl(object):
exposed = True # gilt für alle Methoden
#-------------------------------------------------------
def __init__(self):
def __init__(self, database_o):
#-------------------------------------------------------
self.db_o = KomponenteDatabase_cl()
self.dbProjekt_o = ProjektDatabase_cl()
self.db_o = database_o
#-------------------------------------------------------
def GET(self, id = None):
def GET(self, database, id = None):
#-------------------------------------------------------
retVal_o = {
'data': None,
@ -201,14 +199,14 @@ class Komponente_cl(object):
}
if id == None:
# Anforderung der Liste
retVal_o['data'] = self.db_o.read_px()
retVal_o['data'] = self.db_o['komponente'].read_px()
else:
# Anforderung eines Dokuments
data_o = self.db_o.read_px(id)
data_o = database['komponente'].read_px(id)
if data_o != None:
retVal_o['data'] = adjustId_p(id, data_o)
retVal_o['projekt'] = self.dbProjekt_o.read_px()
retVal_o['projekt'] = self.db_o['projekt'].read_px()
return retVal_o
@ -234,7 +232,7 @@ class Komponente_cl(object):
}
# Update-Operation
retVal_o['id'] = id_s
if self.db_o.update_px(id_s, data_o):
if self.db_o['komponente'].update_px(id_s, data_o):
pass
else:
retVal_o['id'] = None
@ -257,7 +255,7 @@ class Komponente_cl(object):
'projektid': data_opl["projektid_s"]
}
# Create-Operation
id_s = self.db_o.create_px(data_o)
id_s = self.db_o['komponente'].create_px(data_o)
retVal_o['id'] = id_s
return retVal_o
@ -270,7 +268,7 @@ class Komponente_cl(object):
'id': id
}
if self.db_o.delete_px(id):
if self.db_o['komponente'].delete_px(id):
pass
else:
retVal_o['id'] = None

View File

@ -43,9 +43,9 @@ class QsMitarbeiter_cl(object):
exposed = True # gilt für alle Methoden
#-------------------------------------------------------
def __init__(self):
def __init__(self, database_o):
#-------------------------------------------------------
self.db_o = QsMitarbeiterDatabase_cl()
self.db_o = database_o
#-------------------------------------------------------
def GET(self, id = None):
@ -55,10 +55,10 @@ class QsMitarbeiter_cl(object):
}
if id == None:
# Anforderung der Liste
retVal_o['data'] = self.db_o.read_px()
retVal_o['data'] = self.db_o['qsmitarbeiter'].read_px()
else:
# Anforderung eines Dokuments
data_o = self.db_o.read_px(id)
data_o = self.db_o['qsmitarbeiter'].read_px(id)
if data_o != None:
retVal_o['data'] = adjustId_p(id, data_o)
@ -85,7 +85,7 @@ class QsMitarbeiter_cl(object):
}
# Update-Operation
retVal_o['id'] = id_s
if self.db_o.update_px(id_s, data_o):
if self.db_o['qsmitarbeiter'].update_px(id_s, data_o):
pass
else:
retVal_o['id'] = None
@ -107,7 +107,7 @@ class QsMitarbeiter_cl(object):
'name': data_opl["name_s"]
}
# Create-Operation
id_s = self.db_o.create_px(data_o)
id_s = self.db_o['qsmitarbeiter'].create_px(data_o)
retVal_o['id'] = id_s
return retVal_o
@ -120,7 +120,7 @@ class QsMitarbeiter_cl(object):
'id': id
}
if self.db_o.delete_px(id):
if self.db_o['qsmitarbeiter'].delete_px(id):
pass
else:
retVal_o['id'] = None
@ -146,9 +146,9 @@ class SwEntwickler_cl(object):
exposed = True # gilt für alle Methoden
#-------------------------------------------------------
def __init__(self):
def __init__(self, database_o):
#-------------------------------------------------------
self.db_o = SwEntwicklerDatabase_cl()
self.db_o = database_o
#-------------------------------------------------------
def GET(self, id = None):
@ -158,10 +158,10 @@ class SwEntwickler_cl(object):
}
if id == None:
# Anforderung der Liste
retVal_o['data'] = self.db_o.read_px()
retVal_o['data'] = self.db_o['swentwickler'].read_px()
else:
# Anforderung eines Dokuments
data_o = self.db_o.read_px(id)
data_o = self.db_o['swentwickler'].read_px(id)
if data_o != None:
retVal_o['data'] = adjustId_p(id, data_o)
@ -188,7 +188,7 @@ class SwEntwickler_cl(object):
}
# Update-Operation
retVal_o['id'] = id_s
if self.db_o.update_px(id_s, data_o):
if self.db_o['swentwickler'].update_px(id_s, data_o):
pass
else:
retVal_o['id'] = None
@ -210,7 +210,7 @@ class SwEntwickler_cl(object):
'name': data_opl["name_s"]
}
# Create-Operation
id_s = self.db_o.create_px(data_o)
id_s = self.db_o['swentwickler'].create_px(data_o)
retVal_o['id'] = id_s
return retVal_o
@ -223,7 +223,7 @@ class SwEntwickler_cl(object):
'id': id
}
if self.db_o.delete_px(id):
if self.db_o['swentwickler'].delete_px(id):
pass
else:
retVal_o['id'] = None

Binary file not shown.

View File

@ -1,14 +0,0 @@
{
"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"
}

View File

@ -0,0 +1,14 @@
{
"name": "Fehler1",
"id": "25",
"komponenteid": "26",
"katfehlerid": "12",
"katursacheid": "15",
"qsmitarbeiterid": "10",
"swentwicklerid": "9",
"status": "geprueft",
"beschreibung": "Fehler2",
"beschreibungursache": "Fehlerbeschreibung",
"zeiterfasst": "19.01.2017-15:26",
"zeitbehoben": "19.01.2017-15:27"
}

View File

@ -0,0 +1,14 @@
{
"name": "Fehler2",
"id": "26",
"komponenteid": "27",
"katfehlerid": "12",
"katursacheid": "15",
"qsmitarbeiterid": "8",
"swentwicklerid": "8",
"status": "geprueft",
"beschreibung": "Beschreibung2",
"beschreibungursache": "Beschreibung",
"zeiterfasst": "19.01.2017-15:31",
"zeitbehoben": "19.01.2017-15:31"
}

View File

@ -0,0 +1,14 @@
{
"name": "Fehler3",
"id": "27",
"komponenteid": "26",
"katfehlerid": "",
"katursacheid": "",
"qsmitarbeiterid": "",
"swentwicklerid": "",
"status": "protokolliert",
"beschreibung": "Beschreibung3",
"beschreibungursache": "",
"zeitbehoben": "",
"zeiterfasst": "19.01.2017-15:47"
}

View File

@ -1,14 +1,14 @@
{
"name": "Fehler2",
"id": "15",
"komponenteid": "1",
"name": "Test",
"id": "28",
"komponenteid": "26",
"katfehlerid": "",
"katursacheid": "",
"qsmitarbeiterid": "",
"swentwicklerid": "",
"status": "protokolliert",
"beschreibung": "Beschreibung2",
"beschreibung": "Test",
"beschreibungursache": "",
"zeiterfasst": "19.01.2017-09:49",
"zeitbehoben": ""
"zeitbehoben": "",
"zeiterfasst": "19.01.2017-15:49"
}

View File

@ -0,0 +1,14 @@
{
"name": "Test2",
"id": "29",
"komponenteid": "28",
"katfehlerid": "12",
"katursacheid": "14",
"qsmitarbeiterid": "8",
"swentwicklerid": "9",
"status": "geprueft",
"beschreibung": "Test2",
"beschreibungursache": "teset",
"zeiterfasst": "19.01.2017-15:50",
"zeitbehoben": "19.01.2017-15:51"
}

View File

@ -1 +1 @@
15
29

View File

@ -1,4 +1,4 @@
{
"name": "Fehlerkategorie1",
"id": "1"
"id": "12"
}

View File

@ -1,4 +1,4 @@
{
"name": "Fehlerkategorie2",
"id": "2"
"id": "13"
}

View File

@ -1,4 +1,4 @@
{
"name": "Fehlerkategorie3",
"id": "3"
"id": "14"
}

View File

@ -1,4 +0,0 @@
{
"name": "Fehlerkategorie5",
"id": "5"
}

View File

@ -1,4 +0,0 @@
{
"name": "Fehlerkategorie6",
"id": "6"
}

View File

@ -1 +1 @@
6
14

View File

@ -1,4 +0,0 @@
{
"name": "Fehlerursachekategorie1",
"id": "1"
}

View File

@ -0,0 +1,4 @@
{
"name": "Fehlerursache1",
"id": "14"
}

View File

@ -0,0 +1,4 @@
{
"name": "Fehlerursache2",
"id": "15"
}

View File

@ -0,0 +1,4 @@
{
"name": "Fehlerursache3",
"id": "16"
}

View File

@ -1,4 +0,0 @@
{
"name": "Fehlerursachekategorie2",
"id": "2"
}

View File

@ -1,4 +0,0 @@
{
"name": "Fehlerursachekategorie3",
"id": "3"
}

View File

@ -1,4 +0,0 @@
{
"name": "Fehlerursachekategorie4",
"id": "4"
}

View File

@ -1,4 +0,0 @@
{
"name": "Fehlerursachekategorie6",
"id": "6"
}

View File

@ -1,4 +0,0 @@
{
"name": "Fehlerursachekategorie7",
"id": "7"
}

View File

@ -1 +1 @@
7
16

View File

@ -0,0 +1,5 @@
{
"name": "Komponente1",
"projektid": "19",
"id": "24"
}

View File

@ -0,0 +1,5 @@
{
"name": "Komponente2",
"projektid": "19",
"id": "25"
}

View File

@ -0,0 +1,5 @@
{
"name": "Komponente3",
"projektid": "21",
"id": "26"
}

View File

@ -0,0 +1,5 @@
{
"name": "Komponente4",
"projektid": "20",
"id": "27"
}

View File

@ -0,0 +1,5 @@
{
"name": "Test",
"projektid": "19",
"id": "28"
}

View File

@ -1 +1 @@
6
28

View File

@ -0,0 +1,4 @@
{
"name": "Projekt1",
"id": "19"
}

View File

@ -0,0 +1,4 @@
{
"name": "Projekt2",
"id": "20"
}

View File

@ -0,0 +1,4 @@
{
"name": "Projekt3",
"id": "21"
}

View File

@ -1,4 +0,0 @@
{
"name": "Projekt4",
"id": "4"
}

View File

@ -1,4 +0,0 @@
{
"name": "Projekt7",
"id": "7"
}

View File

@ -1 +1 @@
7
21

View File

@ -1,4 +0,0 @@
{
"name": "QS-Mitarbeiter1",
"id": "1"
}

View File

@ -0,0 +1,4 @@
{
"name": "QsMitarbeiter3",
"id": "10"
}

View File

@ -1,4 +0,0 @@
{
"name": "QS-Mitarbeiter2",
"id": "2"
}

View File

@ -1,4 +0,0 @@
{
"name": "QS-Mitarbeiter3",
"id": "3"
}

View File

@ -1,4 +0,0 @@
{
"name": "QS-Mitarbeiter4",
"id": "4"
}

View File

@ -0,0 +1,4 @@
{
"name": "QsMitarbeiter1",
"id": "8"
}

View File

@ -0,0 +1,4 @@
{
"name": "QsMitarbeiter2",
"id": "9"
}

View File

@ -1 +1 @@
5
10

View File

@ -1,4 +0,0 @@
{
"name": "SW-Entwickler1",
"id": "1"
}

View File

@ -0,0 +1,4 @@
{
"name": "SwMitarbeiter3",
"id": "10"
}

View File

@ -1,4 +0,0 @@
{
"name": "SW-Entwickler2",
"id": "2"
}

View File

@ -1,4 +0,0 @@
{
"name": "SW-Entwickler3",
"id": "3"
}

View File

@ -1,4 +0,0 @@
{
"name": "SW-Entwickler5",
"id": "5"
}

View File

@ -0,0 +1,4 @@
{
"name": "SwMitarbeiter1",
"id": "8"
}

View File

@ -0,0 +1,4 @@
{
"name": "SwMitarbeiter2",
"id": "9"
}

View File

@ -1 +1 @@
5
10

View File

@ -355,6 +355,5 @@
<p>Der Eventservice implementiert das &quot;Publish-Subscriber-Muster&quot;. Das bedeutet, dass es einen, oder mehrere &quot;Subscriber&quot; und einen &quot;Publisher&quot; gibt. Melden die &quot;Subscriber&quot; sich bei dem System an, erhalten sie jegliche &quot;Notifications&quot;, die der &quot;Publisher&quot; sendet. Der Vorteil dieses Systems ist es, dass die Subscriber Nachrichten von Objekten erhalten können, von dessen Existenz sie garnicht wissen.</p>
<h3 id="templateverarbeitung">Templateverarbeitung</h3>
<p>Die Templates liegen in Form von modifizierten &quot;HTML-Dateien&quot; vor. Diese wurde um Code der Sprache &quot;Javascript&quot; erweitert und mit einer speziellen Syntax gekennzeichnet. Die Template-Engine kann hiermit dynamisch Inhalt erzeugen.</p>
<h2 id="prüfung-markup-und-stilregeln">Prüfung Markup und Stilregeln</h2>
</body>
</html>

View File

@ -196,5 +196,3 @@ Der Vorteil dieses Systems ist es, dass die Subscriber Nachrichten von Objekten
### 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

View File

@ -105,6 +105,41 @@ APP.DetailView_cl = class {
}
}
break;
case "saven":
// Formularinhalt prüfen
if (this.checkContent_p()) {
// kein klassisches submit, es wird auch keine neue Anzeige vorgenommen
var path_s = this.path_s;
var data_s = $("#idForm").serialize();
console.log(data_s);
var type_s = 'PUT';
var id_s = $('#id_s').val();
if (id_s == '') {
type_s = 'POST';
}
$.ajax({
context: this,
dataType: "json",
data: data_s,
url: path_s,
type: type_s
})
.done(function (data_opl) {
// Umwandlung der JSON-Daten vom Server bereits erfolgt
$('#id_s').val(data_opl['id']);
// aktuellen Formularinhalt speichern
// (das Formular wird ja nicht mehr neu geladen!)
this.storeFormContent_p();
alert("Speichern ausgeführt!");
})
.fail(function(jqXHR_opl, textStatus_spl) {
alert( "Fehler bei Anforderung: " + textStatus_spl );
});
} else {
alert("Bitte prüfen Sie die Eingaben in den Formularfeldern!")
}
break;
case "saver":
// kein klassisches submit, es wird auch keine neue Anzeige vorgenommen
var path_s = this.path_s;

View File

@ -5,12 +5,15 @@
</h2>
<div id="idContentArea" class="clContentArea">
<table id="idList">
<tr class="listheader"><th>Name</th><th>ID</th><th>Komponente-ID</th><th>(KatFehler-ID)</th><th>(KatUrsache-ID)</th><th>(QS)</th><th>(SW)</th><th>Status</th></tr>
<tr class="listheader"><th>Name</th><th>ID</th><th>Komponente-ID</th><th>Status</th></tr>
@var rows_o = context['data'];@
@for var key_s in rows_o@
<tr id='#key_s#'>
@var row_o = rows_o[key_s];@
<td>#row_o['name']#</td><td>#row_o['id']#</td><td>#row_o['komponenteid']#</td><td>#row_o['katfehlerid']#</td><td>#row_o['katursacheid']#</td><td>#row_o['qsmitarbeiterid']#</td><td>#row_o['swentwicklerid']#</td><td>#row_o['status']#</td>
<td>#row_o['name']#</td>
<td>#row_o['id']#</td>
<td>#row_o['komponenteid']#</td>
<td>#row_o['status']#</td>
</tr>
@endfor@
</table>

View File

@ -70,7 +70,7 @@
</div>
<div id="idButtonArea" class="clButtonArea">
<button data-action="back" class="clButton">Zurück</button>
<button data-action="save" class="clButton">Entwickler zuweisen</button>
<button data-action="saven" class="clButton">Entwickler zuweisen</button>
</div>
</form>
<!-- EOF -->

View File

@ -57,7 +57,7 @@
</div>
<div id="idButtonArea" class="clButtonArea">
<button data-action="back" class="clButton">Zurück</button>
<button data-action="save" class="clButton">Pruefung erfolgreich</button>
<button data-action="saven" class="clButton">Pruefung erfolgreich</button>
<button data-action="saver" class="clButton">Pruefung nicht erfolgreich</button>
</div>
</form>

View File

@ -62,7 +62,7 @@
</div>
<div id="idButtonArea" class="clButtonArea">
<button data-action="back" class="clButton">Zurück</button>
<button data-action="save" class="clButton">Abschluss melden</button>
<button data-action="saven" class="clButton">Abschluss melden</button>
</div>
</form>
<!-- EOF -->

View File

@ -13,8 +13,10 @@
@for var keyFehler_s in rowsFehler_o@
@if rowsFehler_o[keyFehler_s] != 'None'@
<tr>
<td>#rowsFehler_o[keyFehler_s]['fehlername']#</td>
<td>#rowsFehler_o[keyFehler_s]['fehlerstatus']#</td>
</tr>
@endif@
@endfor@
</table>

View File

@ -13,9 +13,11 @@
@for var keyFehler_s in rowsFehler_o@
@if rowsFehler_o[keyFehler_s] != 'None'@
<tr>
<td>#rowsFehler_o[keyFehler_s]['fehlername']#</td>
<td>#rowsFehler_o[keyFehler_s]['komponentename']#</td>
<td>#rowsFehler_o[keyFehler_s]['fehlerstatus']#</td>
</tr>
@endif@
@endfor@
</table>