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 .staff import QsMitarbeiter_cl, SwEntwickler_cl
from .error import KatFehler_cl, KatUrsache_cl, Fehler_cl from .error import KatFehler_cl, KatUrsache_cl, Fehler_cl
from .eval import ProList_cl, KatList_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): class Application_cl(object):
@ -18,20 +19,29 @@ class Application_cl(object):
#------------------------------------------------------- #-------------------------------------------------------
def __init__(self): 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 = { self.handler_o = {
'projekt': Projekt_cl(), 'projekt': Projekt_cl(self.database_o),
'projektkomponenten': ProjektKomponenten_cl(), 'projektkomponenten': ProjektKomponenten_cl(self.database_o),
'komponente': Komponente_cl(), 'komponente': Komponente_cl(self.database_o),
'qsmitarbeiter': QsMitarbeiter_cl(), 'qsmitarbeiter': QsMitarbeiter_cl(self.database_o),
'swentwickler': SwEntwickler_cl(), 'swentwickler': SwEntwickler_cl(self.database_o),
'katfehler': KatFehler_cl(), 'katfehler': KatFehler_cl(self.database_o),
'katursache': KatUrsache_cl(), 'katursache': KatUrsache_cl(self.database_o),
'fehler': Fehler_cl(), 'fehler': Fehler_cl(self.database_o),
'prolist': ProList_cl(), 'prolist': ProList_cl(self.database_o),
'katlist': KatList_cl() 'katlist': KatList_cl(self.database_o)
} }
# es wird keine index-Methode vorgesehen, weil stattdessen # 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): def GET(self, path_spl = 'projekt', id=None, **data_opl):
#------------------------------------------------------- #-------------------------------------------------------
retVal_o = { retVal_o = {
'data': None 'data': None
} }
@ -71,6 +82,7 @@ class Application_cl(object):
if retVal_o['id'] == None: if retVal_o['id'] == None:
cherrypy.response.status = 409 cherrypy.response.status = 409
return json.dumps(retVal_o) return json.dumps(retVal_o)

View File

@ -10,19 +10,6 @@ import json
class Database_cl(object): 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): def __init__(self, type_spl):
#------------------------------------------------------- #-------------------------------------------------------
@ -122,6 +109,23 @@ class Database_cl(object):
return maxId_s 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): class ProjektDatabase_cl(Database_cl):
#---------------------------------------------------------- #----------------------------------------------------------
@ -162,10 +166,14 @@ class KomponenteDatabase_cl(Database_cl):
#------------------------------------------------------- #-------------------------------------------------------
def deleteDependencies_px(self, id): def deleteDependencies_px(self, id):
#------------------------------------------------------- #-------------------------------------------------------
komponenten = {}
for komponente in list(self.data_o): for komponente in list(self.data_o):
print(komponente)
if self.data_o[komponente]['projektid'] == id: if self.data_o[komponente]['projektid'] == id:
self.delete_px(komponente) self.delete_px(komponente)
return id komponenten[komponente] = komponente
return komponenten
#---------------------------------------------------------- #----------------------------------------------------------
class QsMitarbeiterDatabase_cl(Database_cl): class QsMitarbeiterDatabase_cl(Database_cl):
@ -272,10 +280,8 @@ class FehlerDatabase_cl(Database_cl):
#------------------------------------------------------- #-------------------------------------------------------
# hier zur Vereinfachung: # hier zur Vereinfachung:
# Aufruf ohne id: alle Einträge liefern # Aufruf ohne id: alle Einträge liefern
print(self.data_o)
data_o = {} data_o = {}
for entry in self.data_o: for entry in self.data_o:
print(self.data_o[entry])
if self.data_o[entry]['status'] != "geprueft": if self.data_o[entry]['status'] != "geprueft":
data_o[entry] = self.data_o[entry] data_o[entry] = self.data_o[entry]
@ -286,12 +292,16 @@ class FehlerDatabase_cl(Database_cl):
#------------------------------------------------------- #-------------------------------------------------------
# hier zur Vereinfachung: # hier zur Vereinfachung:
# Aufruf ohne id: alle Einträge liefern # Aufruf ohne id: alle Einträge liefern
print(self.data_o)
data_o = {} data_o = {}
for entry in self.data_o: for entry in self.data_o:
print(self.data_o[entry])
if self.data_o[entry]['status'] == "geprueft": if self.data_o[entry]['status'] == "geprueft":
data_o[entry] = self.data_o[entry] data_o[entry] = self.data_o[entry]
return data_o 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 # EOF

View File

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

View File

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

View File

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

View File

@ -43,9 +43,9 @@ class QsMitarbeiter_cl(object):
exposed = True # gilt für alle Methoden 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): def GET(self, id = None):
@ -55,10 +55,10 @@ class QsMitarbeiter_cl(object):
} }
if id == None: if id == None:
# Anforderung der Liste # Anforderung der Liste
retVal_o['data'] = self.db_o.read_px() retVal_o['data'] = self.db_o['qsmitarbeiter'].read_px()
else: else:
# Anforderung eines Dokuments # Anforderung eines Dokuments
data_o = self.db_o.read_px(id) data_o = self.db_o['qsmitarbeiter'].read_px(id)
if data_o != None: if data_o != None:
retVal_o['data'] = adjustId_p(id, data_o) retVal_o['data'] = adjustId_p(id, data_o)
@ -85,7 +85,7 @@ class QsMitarbeiter_cl(object):
} }
# Update-Operation # Update-Operation
retVal_o['id'] = id_s 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 pass
else: else:
retVal_o['id'] = None retVal_o['id'] = None
@ -107,7 +107,7 @@ class QsMitarbeiter_cl(object):
'name': data_opl["name_s"] 'name': data_opl["name_s"]
} }
# Create-Operation # 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 retVal_o['id'] = id_s
return retVal_o return retVal_o
@ -120,7 +120,7 @@ class QsMitarbeiter_cl(object):
'id': id 'id': id
} }
if self.db_o.delete_px(id): if self.db_o['qsmitarbeiter'].delete_px(id):
pass pass
else: else:
retVal_o['id'] = None retVal_o['id'] = None
@ -146,9 +146,9 @@ class SwEntwickler_cl(object):
exposed = True # gilt für alle Methoden 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): def GET(self, id = None):
@ -158,10 +158,10 @@ class SwEntwickler_cl(object):
} }
if id == None: if id == None:
# Anforderung der Liste # Anforderung der Liste
retVal_o['data'] = self.db_o.read_px() retVal_o['data'] = self.db_o['swentwickler'].read_px()
else: else:
# Anforderung eines Dokuments # Anforderung eines Dokuments
data_o = self.db_o.read_px(id) data_o = self.db_o['swentwickler'].read_px(id)
if data_o != None: if data_o != None:
retVal_o['data'] = adjustId_p(id, data_o) retVal_o['data'] = adjustId_p(id, data_o)
@ -188,7 +188,7 @@ class SwEntwickler_cl(object):
} }
# Update-Operation # Update-Operation
retVal_o['id'] = id_s 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 pass
else: else:
retVal_o['id'] = None retVal_o['id'] = None
@ -210,7 +210,7 @@ class SwEntwickler_cl(object):
'name': data_opl["name_s"] 'name': data_opl["name_s"]
} }
# Create-Operation # 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 retVal_o['id'] = id_s
return retVal_o return retVal_o
@ -223,7 +223,7 @@ class SwEntwickler_cl(object):
'id': id 'id': id
} }
if self.db_o.delete_px(id): if self.db_o['swentwickler'].delete_px(id):
pass pass
else: else:
retVal_o['id'] = None 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", "name": "Test",
"id": "15", "id": "28",
"komponenteid": "1", "komponenteid": "26",
"katfehlerid": "", "katfehlerid": "",
"katursacheid": "", "katursacheid": "",
"qsmitarbeiterid": "", "qsmitarbeiterid": "",
"swentwicklerid": "", "swentwicklerid": "",
"status": "protokolliert", "status": "protokolliert",
"beschreibung": "Beschreibung2", "beschreibung": "Test",
"beschreibungursache": "", "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", "name": "Fehlerkategorie1",
"id": "1" "id": "12"
} }

View File

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

View File

@ -1,4 +1,4 @@
{ {
"name": "Fehlerkategorie3", "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> <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> <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> <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> </body>
</html> </html>

View File

@ -195,6 +195,4 @@ Der Eventservice implementiert das "Publish-Subscriber-Muster". Das bedeutet, da
Der Vorteil dieses Systems ist es, dass die Subscriber Nachrichten von Objekten erhalten können, von dessen Existenz sie garnicht wissen. Der Vorteil dieses Systems ist es, dass die Subscriber Nachrichten von Objekten erhalten können, von dessen Existenz sie garnicht wissen.
### Templateverarbeitung ### 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. 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; 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": case "saver":
// kein klassisches submit, es wird auch keine neue Anzeige vorgenommen // kein klassisches submit, es wird auch keine neue Anzeige vorgenommen
var path_s = this.path_s; var path_s = this.path_s;

View File

@ -5,12 +5,15 @@
</h2> </h2>
<div id="idContentArea" class="clContentArea"> <div id="idContentArea" class="clContentArea">
<table id="idList"> <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'];@ @var rows_o = context['data'];@
@for var key_s in rows_o@ @for var key_s in rows_o@
<tr id='#key_s#'> <tr id='#key_s#'>
@var row_o = rows_o[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> </tr>
@endfor@ @endfor@
</table> </table>

View File

@ -70,7 +70,7 @@
</div> </div>
<div id="idButtonArea" class="clButtonArea"> <div id="idButtonArea" class="clButtonArea">
<button data-action="back" class="clButton">Zurück</button> <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> </div>
</form> </form>
<!-- EOF --> <!-- EOF -->

View File

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

View File

@ -62,7 +62,7 @@
</div> </div>
<div id="idButtonArea" class="clButtonArea"> <div id="idButtonArea" class="clButtonArea">
<button data-action="back" class="clButton">Zurück</button> <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> </div>
</form> </form>
<!-- EOF --> <!-- EOF -->

View File

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

View File

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