Feature Complete
This commit is contained in:
parent
08eb4edae5
commit
aa300044f6
@ -1,36 +1,57 @@
|
||||
# Web-Praktikum Gruppe K
|
||||
## Kai Wansart und Felix Hoster
|
||||
### 16.11.2016
|
||||
|
||||
## Beschreibung der Lösung
|
||||
### Aufgabe der Anwendung:
|
||||
Die Praktikumsaufgabe war, eine Ünterstützung der Betreuung von Praxisphasen mit einer Web-Anwendung zu erstellen. Praxisphasen werden
|
||||
von externen Partnern (Firmen) angeboten, Studenten können diese Angebote nutzen, wenn sie einen Lehrenden als Betreuer
|
||||
finden
|
||||
|
||||
#### Übersicht der fachlichen Funktion
|
||||
- Datenpflege Studenten: Eine Liste mit allen erstellten Studenten (Name, Vorname, Matrikelnummer)
|
||||
- Datenpflege Lehrende: Eine Übersicht mit allen Lehrenden (Name, Titel, Lehrgebiet)
|
||||
- Datenpflege Firmenverzeichniss: Eine Liste mit einer kleinen Übersicht über einzelne Firmen (Schwerpunkt, Sitz, Name, Branche, Mitarbeiteranzahl)
|
||||
- Datenpflege Praxisphase: Erhält man eine kurze Übersicht über Angebote für die Studenten (Firmenbetreuer, Beschreibung, Name, Voraussetzung, Firma)
|
||||
- Auswahl Praxisphasen: Dort können die Studenten mit einem Professor sich eine Praxisphase aussuchen
|
||||
- Auswertung Firma: Hier werden die Firmen bewertet, die ein Angebot für die Praxisphase bewertet
|
||||
- Auswertung Praxisphasen nach Studenten: Hier sieht man die Bewertung der Studenten über die einzelnen Angebote
|
||||
- Auswertung Praxisphase nach Betreuern: Hier sieht man die Bewertung der Praxisphasen - Betreuer
|
||||
|
||||
|
||||
## Beschreibung des Servers
|
||||
#### Zweck
|
||||
|
||||
#### Aufbau (Bestandteile der Komponente)
|
||||
|
||||
#### Zusammenwirken mit anderen Komponenten
|
||||
|
||||
#### API (Programmierschnittstellen), die die Leistung der Komponente anbieten
|
||||
|
||||
## Datenablage
|
||||
Die Daten werden mittels der Kategorie abgespeichert, die als Variable behandelt wird. Mit dieser Variable wird die Datei immer wieder neu gespeichert, wenn etwas gelöscht bzw. geändert wird. Das Format der Datei ist eine JSON-Datei, die im Ordner 'Data' und der darauffolgenden Kategorie abgespeichert wird.
|
||||
|
||||
## Konfiguration
|
||||
|
||||
# Web-Praktikum Gruppe A
|
||||
## Kai Wansart 921862 und Felix Hoster xxxxxx
|
||||
### 15.12.2016
|
||||
|
||||
## Beschreibung der Lösung
|
||||
### Aufgabe der Anwendung:
|
||||
- Entwickeln und Umsetzen eines Praxisphasenmanagers (PPM).
|
||||
- Schnittstelle für Firmen, Dozenten und Studenten
|
||||
- Verwaltung der Daten, zB. Benutzerverwaltung und Angebotverwaltung
|
||||
|
||||
|
||||
|
||||
#### Übersicht der fachlichen Funktion
|
||||
- Datenpflege Studenten:
|
||||
- Ausgabe Studenten im System
|
||||
- Verwaltung bestehender Datensätze
|
||||
- Erstellen neuer Datensätze
|
||||
- Datenpflege Lehrende:
|
||||
- Ausgabe Lehrenden im System
|
||||
- Verwaltung bestehender Datensätze
|
||||
- Erstellen neuer Datensätze
|
||||
- Datenpflege Firmenverzeichnis:
|
||||
- Ausgabe Firmen im System
|
||||
- Verwaltung bestehender Datensätze
|
||||
- Erstellen neuer Datensätze
|
||||
- Datenpflege Praxisphase:
|
||||
- Ausgabe Angebote Praxiphasenplätze im System
|
||||
- Verwaltung bestehender Datensätze
|
||||
- Erstellen neuer Datensätze
|
||||
- Auswahl Praxisphasen:
|
||||
- Schnittstelle für Studenten, um sich in Praxisphasenplatz einzuschreiben, mit Angabe von Zeitraum
|
||||
- Auswertung Firma:
|
||||
- Ausgabe aller Firmen mit den jeweiligen Studenten, die sich bei Ihnen zu einem Praxisphasenplatz eingeschrieben haben
|
||||
- Auswertung Praxisphasen nach Studenten:
|
||||
- Ausgabe aller Studenten mit Informationen, bei welcher Firma sie wann ihre Praxisphase machen / gemacht haben
|
||||
- Auswertung Praxisphase nach Betreuern:
|
||||
- Ausgabe aller Betreuer mit den jeweiligen Studenten, die sie betreuen.
|
||||
|
||||
## Beschreibung des Servers
|
||||
#### Zweck
|
||||
- Firmen die Möglichkeit geben, Studenten Praxisphasenplätze anzubieten
|
||||
- Studenten die Möglichkeit geben, Praxisphasenplätze auszuwählen
|
||||
- Auswertungen anbieten
|
||||
|
||||
#### Aufbau (Bestandteile der Komponente)
|
||||
-
|
||||
|
||||
#### Zusammenwirken mit anderen Komponenten
|
||||
|
||||
#### API (Programmierschnittstellen), die die Leistung der Komponente anbieten
|
||||
|
||||
## Datenablage
|
||||
Die Daten werden mittels der Kategorie abgespeichert, die als Variable behandelt wird. Mit dieser Variable wird die Datei immer wieder neu gespeichert, wenn etwas gelöscht bzw. geändert wird. Das Format der Datei ist eine JSON-Datei, die im Ordner 'Data' und der darauffolgenden Kategorie abgespeichert wird.
|
||||
|
||||
## Konfiguration
|
||||
|
||||
## Durchführung und Ergebnis der geforderten Prüfungen
|
Binary file not shown.
@ -1,332 +0,0 @@
|
||||
import json
|
||||
import cherrypy
|
||||
from app import database
|
||||
from app import view
|
||||
|
||||
#----------------------------------------------------------
|
||||
class Application_cl(object):
|
||||
#----------------------------------------------------------
|
||||
exposed = True
|
||||
|
||||
#----------------------------------------------------------
|
||||
def __init__(self):
|
||||
#----------------------------------------------------------
|
||||
self.db_o = database.Database_cl()
|
||||
self.view_o = view.View_cl()
|
||||
|
||||
#----------------------------------------------------------
|
||||
def GET(self, cat=None, id=None):
|
||||
#----------------------------------------------------------
|
||||
|
||||
return json.dumps(retVal)
|
||||
|
||||
#----------------------------------------------------------
|
||||
def PUT(self, **data):
|
||||
#----------------------------------------------------------
|
||||
|
||||
return json.dumps(retVal)
|
||||
|
||||
#----------------------------------------------------------
|
||||
def POST(self, cat, id, **data_opl):
|
||||
#----------------------------------------------------------
|
||||
|
||||
return json.dumps(retVal)
|
||||
|
||||
#----------------------------------------------------------
|
||||
def DELETE(self, cat, id):
|
||||
#----------------------------------------------------------
|
||||
|
||||
return json.dumps(retVal)
|
||||
|
||||
#----------------------------------------------------------
|
||||
def default(self, *arguments, **kwargs):
|
||||
#----------------------------------------------------------
|
||||
msg_s = "unbekannte Anforderung: " + \
|
||||
str(arguments) + \
|
||||
' ' + \
|
||||
str(kwargs)
|
||||
raise cherrypy.HTTPError(404, msg_s)
|
||||
|
||||
# /* import cherrypy
|
||||
# from .database import Database_cl
|
||||
# from .view import View_cl
|
||||
# import collections
|
||||
# orderedDict = collections.OrderedDict()
|
||||
# from collections import OrderedDict
|
||||
|
||||
# #----------------------------------------------------------
|
||||
# class Application_cl(object):
|
||||
# #----------------------------------------------------------
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# # Request Processing
|
||||
# #-------------------------------------------------------
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def __init__(self):
|
||||
# #-------------------------------------------------------
|
||||
# # spezielle Initialisierung können hier eingetragen werden
|
||||
# self.db = Database_cl()
|
||||
# self.view = View_cl()
|
||||
# @cherrypy.expose
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def index(self):
|
||||
# #-------------------------------------------------------
|
||||
# print("Index\n")
|
||||
# return self.GenerateIndex()
|
||||
# @cherrypy.expose
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def category(self, cat=None):
|
||||
# #-------------------------------------------------------
|
||||
# print("Category: ", cat, "\n")
|
||||
# if(cat==None):
|
||||
# return self.GenerateIndex()
|
||||
# else:
|
||||
# return self.GenerateList(cat)
|
||||
# @cherrypy.expose
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def choice(self):
|
||||
# #-------------------------------------------------------
|
||||
# print("Choice \n")
|
||||
# return self.GenerateListChoice()
|
||||
# @cherrypy.expose
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def eval(self, cat):
|
||||
# #-------------------------------------------------------
|
||||
# print("Eval \n")
|
||||
# self.db.CheckDates()
|
||||
# return self.GenerateListEval(cat)
|
||||
# @cherrypy.expose
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def detail(self, cat=None, id=None):
|
||||
# #-------------------------------------------------------
|
||||
# if(cat!=None):
|
||||
# if(id!=None):
|
||||
# print("Cat=", cat, " id=", id)
|
||||
# return self.GenerateDetail(cat, id)
|
||||
# else:
|
||||
# print("ID=None Cat=", cat)
|
||||
# return self.GenerateDetail(cat)
|
||||
# else:
|
||||
# return self.GenerateIndex()
|
||||
# @cherrypy.expose
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def detailchoice(self, id):
|
||||
# #-------------------------------------------------------
|
||||
# print("id=", id)
|
||||
# return self.GenerateDetailChoice(id)
|
||||
|
||||
# @cherrypy.expose
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def save(self, cat=None, **data):
|
||||
# #-------------------------------------------------------
|
||||
# print("Save: ", cat)
|
||||
# dataTmp = data
|
||||
# return self.GenerateSave(dataTmp, cat)
|
||||
# @cherrypy.expose
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def saveChoice(self, **data):
|
||||
# #-------------------------------------------------------
|
||||
# print("Save: Choice")
|
||||
# dataTmp = data
|
||||
# return self.GenerateSaveChoice(dataTmp)
|
||||
# @cherrypy.expose
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def delete(self, cat=None, id=None):
|
||||
# #-------------------------------------------------------
|
||||
# print("Delete",cat,id)
|
||||
# return self.GenerateDelete(cat, id)
|
||||
# @cherrypy.expose
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def default(self, *arguments, **kwargs):
|
||||
# #-------------------------------------------------------
|
||||
# msg_s = "unbekannte Anforderung: " + \
|
||||
# str(arguments) + \
|
||||
# ''+ \
|
||||
# str(kwargs)
|
||||
# raise cherrypy.HTTPError(404, msg_s)
|
||||
# default.exposed= True
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# # Functions
|
||||
# #-------------------------------------------------------
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def GenerateIndex(self):
|
||||
# #-------------------------------------------------------
|
||||
# return self.view.CreateIndex()
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def GenerateList(self, category):
|
||||
# #-------------------------------------------------------
|
||||
# self.db.ReadAll()
|
||||
# data = {}
|
||||
# data['content'] = {}
|
||||
# data['headings'] = {}
|
||||
# data['category'] = category
|
||||
# data['content'] = self.db.data[category]
|
||||
# if(len(data['content']) != 0):
|
||||
# print(len(data['content']))
|
||||
# contentFirst = list(data['content'].keys())[0]
|
||||
# data['headings'] = list(data['content'][contentFirst].keys())
|
||||
# print(data)
|
||||
# return self.view.CreateList(data)
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def GenerateListChoice(self):
|
||||
# #-------------------------------------------------------
|
||||
# self.db.ReadAll()
|
||||
# data = {}
|
||||
# data['content'] = {}
|
||||
# offerings = self.db.data['Angebote']
|
||||
# for key, value in offerings.items():
|
||||
# for key2, value2 in value.items():
|
||||
# if(key2 == 'Status'):
|
||||
# if(value2 == 'Angebot'):
|
||||
# data['content'][key] = value
|
||||
|
||||
# print(data)
|
||||
# return self.view.CreateListChoice(data)
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def GenerateDetail(self, category, id=None):
|
||||
# #-------------------------------------------------------
|
||||
# self.db.ReadAll()
|
||||
# data = {}
|
||||
# data['category'] = category
|
||||
# print("Detail",category,id)
|
||||
# if(id != None):
|
||||
# data['id'] = id
|
||||
# data['content'] = self.db.ReadEntry(category, id)
|
||||
# else:
|
||||
# data['id'] = None
|
||||
# data['content'] = self.db.GetDefault(category)
|
||||
# print(data['content'])
|
||||
# if(category == 'Angebote'):
|
||||
# print("Angebote")
|
||||
# data['Firmen'] = self.db.data['Firmen']
|
||||
# print(data, "\n")
|
||||
# return self.view.CreateDetail(data)
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def GenerateDetailChoice(self, id):
|
||||
# #-------------------------------------------------------
|
||||
# self.db.ReadAll()
|
||||
# data = {}
|
||||
# data['id'] = id
|
||||
# data = self.db.data['Angebote'][id]
|
||||
# data['Studenten'] = self.db.data['Studenten']
|
||||
# data['Lehrender'] = self.db.data['Lehrender']
|
||||
# print(data, "\n")
|
||||
# return self.view.CreateDetailChoice(data)
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def GenerateListEval(self, cat):
|
||||
# #-------------------------------------------------------
|
||||
# self.db.ReadAll()
|
||||
# data = {}
|
||||
# Studenten = self.db.data['Studenten']
|
||||
# Lehrender = self.db.data['Lehrender']
|
||||
# Firmen = self.db.data['Firmen']
|
||||
# Angebote = self.db.data['Angebote']
|
||||
|
||||
# data['category'] = cat
|
||||
# if(cat == 'Firmen'):
|
||||
# for keyFirma, valueFirma in sorted(Firmen.items()):
|
||||
# data[valueFirma['Name']] = {}
|
||||
# data[valueFirma['Name']]['Name'] = valueFirma['Name']
|
||||
# data[valueFirma['Name']]['Angebote'] = {}
|
||||
# data[valueFirma['Name']]['Angebote']['Angebot'] = {}
|
||||
# data[valueFirma['Name']]['Angebote']['aktuell'] = {}
|
||||
# data[valueFirma['Name']]['Angebote']['abgeschlossen'] = {}
|
||||
# for keyAngebote, valueAngebote in Angebote.items():
|
||||
# if(valueAngebote['Firma'] == valueFirma['Name']):
|
||||
# data[valueFirma['Name']]['Angebote'][valueAngebote['Status']][valueAngebote['Name']] = {}
|
||||
# data[valueFirma['Name']]['Angebote'][valueAngebote['Status']][valueAngebote['Name']]['Name'] = valueAngebote['Name']
|
||||
# if(valueAngebote['Student'] != ''):
|
||||
# data[valueFirma['Name']]['Angebote'][valueAngebote['Status']][valueAngebote['Name']]['Student'] = Studenten[valueAngebote['Student']]['Name']
|
||||
# else:
|
||||
# data[valueFirma['Name']]['Angebote'][valueAngebote['Status']][valueAngebote['Name']]['Student'] = ''
|
||||
# if(valueAngebote['Lehrender'] != ''):
|
||||
# data[valueFirma['Name']]['Angebote'][valueAngebote['Status']][valueAngebote['Name']]['Lehrender'] = Lehrender[valueAngebote['Lehrender']]['Name']
|
||||
# else:
|
||||
# data[valueFirma['Name']]['Angebote'][valueAngebote['Status']][valueAngebote['Name']]['Lehrender'] = ''
|
||||
# data[valueFirma['Name']]['Angebote'][valueAngebote['Status']][valueAngebote['Name']]['ZeitraumVon'] = valueAngebote['ZeitraumVon']
|
||||
# data[valueFirma['Name']]['Angebote'][valueAngebote['Status']][valueAngebote['Name']]['ZeitraumBis'] = valueAngebote['ZeitraumBis']
|
||||
# print(data)
|
||||
# return self.view.CreateListEval(data)
|
||||
# elif(cat == 'Studenten'):
|
||||
# for keyStudent, valueStudent in Studenten.items():
|
||||
# data[valueStudent['Name']] = {}
|
||||
# data[valueStudent['Name']]['Angebote'] = {}
|
||||
# data[valueStudent['Name']]['Angebote']['Angebot'] = {}
|
||||
# data[valueStudent['Name']]['Angebote']['aktuell'] = {}
|
||||
# data[valueStudent['Name']]['Angebote']['abgeschlossen'] = {}
|
||||
# for keyAngebot, valueAngebot in Angebote.items():
|
||||
# if(valueAngebot['Student'] == valueStudent['id']):
|
||||
# data[valueStudent['Name']]['Angebote'][valueAngebot['Status']][keyAngebot] = {}
|
||||
# data[valueStudent['Name']]['Angebote'][valueAngebot['Status']][keyAngebot]['Lehrender'] = Lehrender[valueAngebot['Lehrender']]['Name']
|
||||
# data[valueStudent['Name']]['Angebote'][valueAngebot['Status']][keyAngebot]['Status'] = valueAngebot['Status']
|
||||
# data[valueStudent['Name']]['Angebote'][valueAngebot['Status']][keyAngebot]['Praxisphase'] = valueAngebot['Name']
|
||||
# data[valueStudent['Name']]['Angebote'][valueAngebot['Status']][keyAngebot]['Firma'] = valueAngebot['Firma']
|
||||
# data[valueStudent['Name']]['Angebote'][valueAngebot['Status']][keyAngebot]['ZeitraumVon'] = valueAngebot['ZeitraumVon']
|
||||
# data[valueStudent['Name']]['Angebote'][valueAngebot['Status']][keyAngebot]['ZeitraumBis'] = valueAngebot['ZeitraumBis']
|
||||
# elif(cat == 'Lehrender'):
|
||||
# for keyLehrende, valueLehrende in Lehrender.items():
|
||||
# data[valueLehrende['Name']] = {}
|
||||
# data[valueLehrende['Name']]['Angebote'] = {}
|
||||
# data[valueLehrende['Name']]['Angebote']['Angebot'] = {}
|
||||
# data[valueLehrende['Name']]['Angebote']['aktuell'] = {}
|
||||
# data[valueLehrende['Name']]['Angebote']['abgeschlossen'] = {}
|
||||
# for keyAngebot, valueAngebot in Angebote.items():
|
||||
# if(valueAngebot['Lehrender'] == valueLehrende['id']):
|
||||
# data[valueLehrende['Name']]['Angebote'][valueAngebot['Status']][keyAngebot] = {}
|
||||
# data[valueLehrende['Name']]['Angebote'][valueAngebot['Status']][keyAngebot]['Student'] = Studenten[valueAngebot['Student']]['Name']
|
||||
# data[valueLehrende['Name']]['Angebote'][valueAngebot['Status']][keyAngebot]['Status'] = valueAngebot['Status']
|
||||
# data[valueLehrende['Name']]['Angebote'][valueAngebot['Status']][keyAngebot]['Praxisphase'] = valueAngebot['Name']
|
||||
# data[valueLehrende['Name']]['Angebote'][valueAngebot['Status']][keyAngebot]['Firma'] = valueAngebot['Firma']
|
||||
# data[valueLehrende['Name']]['Angebote'][valueAngebot['Status']][keyAngebot]['ZeitraumVon'] = valueAngebot['ZeitraumVon']
|
||||
# data[valueLehrende['Name']]['Angebote'][valueAngebot['Status']][keyAngebot]['ZeitraumBis'] = valueAngebot['ZeitraumBis']
|
||||
|
||||
# return self.view.CreateListEval(data)
|
||||
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def GenerateSave(self, dataTmp, category):
|
||||
# #-------------------------------------------------------
|
||||
# if(category == None):
|
||||
# return self.view.CreateIndex()
|
||||
# else:
|
||||
# self.db.Save(dataTmp, category)
|
||||
# return self.GenerateList(category)
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def GenerateSaveChoice(self, dataTmp):
|
||||
# #-------------------------------------------------------
|
||||
# if(dataTmp['Student'] != ''):
|
||||
# angebote = self.db.CheckOfferings(dataTmp['Student'])
|
||||
# print(angebote)
|
||||
# if(angebote == 0):
|
||||
# print("Save")
|
||||
# self.db.Save(dataTmp, 'Angebote')
|
||||
# return self.GenerateListChoice()
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def GenerateDelete(self, category, id):
|
||||
# #-------------------------------------------------------
|
||||
# if(category == None or id == None):
|
||||
# return self.view.CreateIndex()
|
||||
# else:
|
||||
# self.db.Delete(category, id)
|
||||
# return self.GenerateList(category)
|
||||
# #EOF
|
@ -16,16 +16,34 @@ class Choice(object):
|
||||
self.db = database.Database()
|
||||
|
||||
#-------------------------------------------------------
|
||||
def GET(self):
|
||||
def GET(self, view, id=None):
|
||||
#-------------------------------------------------------
|
||||
self.db.ReadAll()
|
||||
data = {}
|
||||
data['content'] = {}
|
||||
offerings = self.db.data['Angebote']
|
||||
for key, value in offerings.items():
|
||||
for key2, value2 in value.items():
|
||||
if(key2 == 'Status'):
|
||||
if(value2 == 'Angebot'):
|
||||
data['content'][key] = value
|
||||
if(view == "List"):
|
||||
data['content'] = {}
|
||||
offerings = self.db.data['Angebote']
|
||||
for key, value in offerings.items():
|
||||
for key2, value2 in value.items():
|
||||
if(key2 == 'Status'):
|
||||
if(value2 == 'Angebot'):
|
||||
data['content'][key] = value
|
||||
elif(view == "Detail"):
|
||||
data['id'] = id
|
||||
data = self.db.data['Angebote'][id]
|
||||
data['Studenten'] = self.db.data['Studenten']
|
||||
data['Lehrender'] = self.db.data['Lehrender']
|
||||
print(data)
|
||||
return json.dumps(data)
|
||||
|
||||
#-------------------------------------------------------
|
||||
def POST(self, **data):
|
||||
#-------------------------------------------------------
|
||||
if(data['Student'] != ''):
|
||||
angebote = self.db.CheckOfferings(data['Student'])
|
||||
print(angebote)
|
||||
if(angebote == 0):
|
||||
print("Save")
|
||||
self.db.Save(data, 'Angebote')
|
||||
print(data)
|
||||
return self.GET("List")
|
@ -1,52 +0,0 @@
|
||||
# import os.path
|
||||
# from mako.template import Template
|
||||
# from mako.lookup import TemplateLookup
|
||||
|
||||
# #----------------------------------------------------------
|
||||
# class View_cl(object):
|
||||
# #----------------------------------------------------------
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def __init__(self):
|
||||
# #-------------------------------------------------------
|
||||
# self.path = 'templates'
|
||||
# self.lookup = TemplateLookup(directories=['/'])
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def Create(self, template, data):
|
||||
# #-------------------------------------------------------
|
||||
# print("CreateView\n")
|
||||
# template = Template(filename=os.path.join(self.path, template), output_encoding='utf-8', lookup=self.lookup)
|
||||
# return template.render(data = data)
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def CreateIndex(self):
|
||||
# #-------------------------------------------------------
|
||||
# print("CreateIndex\n")
|
||||
# data = None
|
||||
# return self.Create('index.tpl', data)
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def CreateList(self, data):
|
||||
# #-------------------------------------------------------
|
||||
# return self.Create('list.tpl', data)
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def CreateListChoice(self, data):
|
||||
# #-------------------------------------------------------
|
||||
# return self.Create('listChoice.tpl', data)
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def CreateListEval(self, data):
|
||||
# #-------------------------------------------------------
|
||||
# return self.Create('listEval.tpl', data)
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def CreateDetail(self, data):
|
||||
# #-------------------------------------------------------
|
||||
# return self.Create('detail.tpl', data)
|
||||
|
||||
# #-------------------------------------------------------
|
||||
# def CreateDetailChoice(self, data):
|
||||
# #-------------------------------------------------------
|
||||
# return self.Create('detailChoice.tpl', data)
|
@ -1,13 +1,13 @@
|
||||
{
|
||||
"ZeitraumBis": "02.02.2003",
|
||||
"Firma": "Apple",
|
||||
"ZeitraumVon": "02.02.2002",
|
||||
"Lehrender": "5",
|
||||
"id": "27",
|
||||
"Status": "abgeschlossen",
|
||||
"Name": "Angebot Apple 2",
|
||||
"ZeitraumVon": "02.02.2002",
|
||||
"Student": "11",
|
||||
"Beschreibung": "Praxisphase Apple",
|
||||
"Lehrender": "5",
|
||||
"Firma": "Apple",
|
||||
"Firmenbetreuer": "Horst",
|
||||
"Voraussetzungen": "Keine",
|
||||
"Name": "Angebot Apple 2"
|
||||
"id": "27",
|
||||
"Beschreibung": "Praxisphase Apple"
|
||||
}
|
13
Praktikum2/ppm2/data/Angebote/28.json
Normal file
13
Praktikum2/ppm2/data/Angebote/28.json
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"ZeitraumBis": "2.2.2001",
|
||||
"Status": "abgeschlossen",
|
||||
"Name": "testa",
|
||||
"ZeitraumVon": "1.1.2000",
|
||||
"Student": "13",
|
||||
"Lehrender": "6",
|
||||
"Firma": "Apple",
|
||||
"Firmenbetreuer": "testa",
|
||||
"Voraussetzungen": "a",
|
||||
"id": "28",
|
||||
"Beschreibung": "testa"
|
||||
}
|
@ -1,13 +1,13 @@
|
||||
{
|
||||
"ZeitraumBis": "",
|
||||
"Firmenbetreuer": "firmenbetreuer",
|
||||
"id": "30",
|
||||
"ZeitraumVon": "",
|
||||
"ZeitraumBis": "02.02.2000",
|
||||
"Status": "abgeschlossen",
|
||||
"Name": "name",
|
||||
"Beschreibung": "beschreibung",
|
||||
"Student": "",
|
||||
"Lehrender": "",
|
||||
"Status": "Angebot",
|
||||
"ZeitraumVon": "01.01.2000",
|
||||
"Student": "12",
|
||||
"Lehrender": "6",
|
||||
"Firma": "IBM",
|
||||
"Firmenbetreuer": "firmenbetreuer",
|
||||
"Voraussetzungen": "voraussetzungen",
|
||||
"Firma": "IBM"
|
||||
"id": "30",
|
||||
"Beschreibung": "beschreibung"
|
||||
}
|
@ -1 +1 @@
|
||||
27
|
||||
28
|
@ -1 +1 @@
|
||||
15
|
||||
17
|
212
Praktikum2/ppm2/doc/PPM2.html
Normal file
212
Praktikum2/ppm2/doc/PPM2.html
Normal file
@ -0,0 +1,212 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="generator" content="pandoc">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
||||
<title></title>
|
||||
<style type="text/css">code{white-space: pre;}</style>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body>
|
||||
<h1 id="web-praktikum">Web-Praktikum</h1>
|
||||
<h2 id="termin-3">Termin 3</h2>
|
||||
<ul>
|
||||
<li>Gruppe A
|
||||
<ul>
|
||||
<li>Kai Wansart: 921862</li>
|
||||
<li>Felix Hoster: xxxxxx</li>
|
||||
</ul></li>
|
||||
<li>15.12.2016</li>
|
||||
</ul>
|
||||
<h2 id="beschreibung-der-lösung">Beschreibung der Lösung</h2>
|
||||
<h3 id="aufgabe-der-anwendung">Aufgabe der Anwendung</h3>
|
||||
<ul>
|
||||
<li>Entwickeln und Umsetzen eines Praxisphasenmanagers (PPM).</li>
|
||||
<li>Schnittstelle für Firmen, Dozenten und Studenten</li>
|
||||
<li>Verwaltung der Daten, zB. Benutzerverwaltung und Angebotverwaltung</li>
|
||||
</ul>
|
||||
<h3 id="übersicht-der-fachlichen-funktionen">Übersicht der fachlichen Funktionen</h3>
|
||||
<ul>
|
||||
<li>Datenpflege Studenten:
|
||||
<ul>
|
||||
<li>Ausgabe Studenten im System</li>
|
||||
<li>Verwaltung bestehender Datensätze</li>
|
||||
<li>Erstellen neuer Datensätze</li>
|
||||
</ul></li>
|
||||
<li>Datenpflege Lehrende:
|
||||
<ul>
|
||||
<li>Ausgabe Lehrenden im System</li>
|
||||
<li>Verwaltung bestehender Datensätze</li>
|
||||
<li>Erstellen neuer Datensätze</li>
|
||||
</ul></li>
|
||||
<li>Datenpflege Firmenverzeichnis:
|
||||
<ul>
|
||||
<li>Ausgabe Firmen im System</li>
|
||||
<li>Verwaltung bestehender Datensätze</li>
|
||||
<li>Erstellen neuer Datensätze</li>
|
||||
</ul></li>
|
||||
<li>Datenpflege Praxisphase:
|
||||
<ul>
|
||||
<li>Ausgabe Angebote Praxiphasenplätze im System</li>
|
||||
<li>Verwaltung bestehender Datensätze</li>
|
||||
<li>Erstellen neuer Datensätze</li>
|
||||
</ul></li>
|
||||
<li>Auswahl Praxisphasen:
|
||||
<ul>
|
||||
<li>Schnittstelle für Studenten, um sich in Praxisphasenplatz einzuschreiben, mit Angabe von Zeitraum</li>
|
||||
</ul></li>
|
||||
<li>Auswertung Firma:
|
||||
<ul>
|
||||
<li>Ausgabe aller Firmen mit den jeweiligen Studenten, die sich bei Ihnen zu einem Praxisphasenplatz eingeschrieben haben</li>
|
||||
</ul></li>
|
||||
<li>Auswertung Praxisphasen nach Studenten:
|
||||
<ul>
|
||||
<li>Ausgabe aller Studenten mit Informationen, bei welcher Firma sie wann ihre Praxisphase machen / gemacht haben</li>
|
||||
</ul></li>
|
||||
<li>Auswertung Praxisphase nach Betreuern:
|
||||
<ul>
|
||||
<li>Ausgabe aller Betreuer mit den jeweiligen Studenten, die sie betreuen.</li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
<h2 id="beschreibung-des-client">Beschreibung des Client</h2>
|
||||
<ul>
|
||||
<li>Basis: Html Vorlage</li>
|
||||
<li>Dynamischer Inhalt via Javascript:
|
||||
<ul>
|
||||
<li>Lädt Inhalte im JSON Format von Server</li>
|
||||
<li>Rendert Inhalte in Templates</li>
|
||||
<li>Fügt gerenderte Inhalte in HTML (DOM) ein</li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
<h2 id="beschreibung-der-komponenten-des-servers">Beschreibung der Komponenten des Servers</h2>
|
||||
<ul>
|
||||
<li>Server: Object-Dispatching --> Weiterleitung der Anfragen an jeweilige Funktionen
|
||||
<ul>
|
||||
<li>category
|
||||
<ul>
|
||||
<li>Zweck
|
||||
<ul>
|
||||
<li>Alle Kategorien (Studenten, Lehrende, Firmen, Angebote)</li>
|
||||
<li>Rückgabe der Inhalte</li>
|
||||
<li>Verwaltung der Daten</li>
|
||||
</ul></li>
|
||||
<li>Zusammenwirken mit anderen Komponenten
|
||||
<ul>
|
||||
<li>Zugriff auf Datenbank um Daten zu verwalten</li>
|
||||
</ul></li>
|
||||
<li>Aufbau
|
||||
<ul>
|
||||
<li>GET: Rückgabe</li>
|
||||
<li>POST: Eingabe</li>
|
||||
<li>DELETE: Löschen</li>
|
||||
</ul></li>
|
||||
<li>API
|
||||
<ul>
|
||||
<li>GET ( Kategorie, Ansicht, ID)</li>
|
||||
<li>POST ( Kategorie, Daten )</li>
|
||||
<li>DELETE ( Kategorie, ID )</li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
<li>choice
|
||||
<ul>
|
||||
<li>Zweck
|
||||
<ul>
|
||||
<li>Rückgabe der bestehenden Angebote</li>
|
||||
<li>Verwaltung der Daten
|
||||
<ul>
|
||||
<li>Annahme mit Datum</li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
<li>Zusammenwirken mit anderen Komponenten
|
||||
<ul>
|
||||
<li>Zugriff auf Datenbank um Daten zu verwalten</li>
|
||||
</ul></li>
|
||||
<li>Aufbau
|
||||
<ul>
|
||||
<li>GET: Rückgabe</li>
|
||||
<li>POST: Eingabe</li>
|
||||
</ul></li>
|
||||
<li>API
|
||||
<ul>
|
||||
<li>GET ( Ansicht, ID )</li>
|
||||
<li>POST ( Daten )</li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
<li>eval
|
||||
<ul>
|
||||
<li>Zweck
|
||||
<ul>
|
||||
<li>Auswertung</li>
|
||||
<li>Rückgabe der Auswertungen</li>
|
||||
</ul></li>
|
||||
<li>Zusammenwirken mit anderen Komponenten
|
||||
<ul>
|
||||
<li>Zugriff auf Datenbank um Daten zu verwalten</li>
|
||||
</ul></li>
|
||||
<li>Aufbau
|
||||
<ul>
|
||||
<li>GET: Rückgabe und Auswertung</li>
|
||||
</ul></li>
|
||||
<li>API
|
||||
<ul>
|
||||
<li>GET ( Kategorie )</li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
<li>database
|
||||
<ul>
|
||||
<li>Zweck -Verwaltung - auslesen - bearbeiten - speichern - löschen</li>
|
||||
<li>Zusammenwirken mit anderen Komponenten
|
||||
<ul>
|
||||
<li>category, choice, eval greifen auf Datenbank zu</li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
<li>template
|
||||
<ul>
|
||||
<li>Zweck
|
||||
<ul>
|
||||
<li>Einlesen aller Templates</li>
|
||||
<li>Rückgabe aller Templates</li>
|
||||
</ul></li>
|
||||
<li>Aufbau
|
||||
<ul>
|
||||
<li>GET: Rückgabe aller Templates</li>
|
||||
</ul></li>
|
||||
<li>API
|
||||
<ul>
|
||||
<li>GET ()</li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
<h2 id="datenablage">Datenablage</h2>
|
||||
<ul>
|
||||
<li>Die Daten werden mittels JSON abgespeichert und ausgelesen</li>
|
||||
<li>Die Datensätze sind aufgeteilt in die Unterordner:
|
||||
<ul>
|
||||
<li>Angebote</li>
|
||||
<li>Firmen</li>
|
||||
<li>Lehrender</li>
|
||||
<li>Studenten</li>
|
||||
</ul></li>
|
||||
<li>Es wird jeweils abgespeichert, welche ID der zuletzt hinzugefügte Eintrag hat, um den nächsten mit inkrementierter ID abspeichern zu können</li>
|
||||
</ul>
|
||||
<h2 id="konfiguration">Konfiguration</h2>
|
||||
<ul>
|
||||
<li>Python
|
||||
<ul>
|
||||
<li>Erweiterungen:
|
||||
<ul>
|
||||
<li>JSON</li>
|
||||
<li>CherryPy</li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
<li>Webbrowser
|
||||
<ul>
|
||||
<li>Javascript fähig</li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
121
Praktikum2/ppm2/doc/PPM2.md
Normal file
121
Praktikum2/ppm2/doc/PPM2.md
Normal file
@ -0,0 +1,121 @@
|
||||
# Web-Praktikum
|
||||
## Termin 3
|
||||
- Gruppe A
|
||||
- Kai Wansart: 921862
|
||||
- Felix Hoster: xxxxxx
|
||||
- 15.12.2016
|
||||
|
||||
## Beschreibung der Lösung
|
||||
|
||||
### Aufgabe der Anwendung
|
||||
- Entwickeln und Umsetzen eines Praxisphasenmanagers (PPM).
|
||||
- Schnittstelle für Firmen, Dozenten und Studenten
|
||||
- Verwaltung der Daten, zB. Benutzerverwaltung und Angebotverwaltung
|
||||
|
||||
### Übersicht der fachlichen Funktionen
|
||||
- Datenpflege Studenten:
|
||||
- Ausgabe Studenten im System
|
||||
- Verwaltung bestehender Datensätze
|
||||
- Erstellen neuer Datensätze
|
||||
- Datenpflege Lehrende:
|
||||
- Ausgabe Lehrenden im System
|
||||
- Verwaltung bestehender Datensätze
|
||||
- Erstellen neuer Datensätze
|
||||
- Datenpflege Firmenverzeichnis:
|
||||
- Ausgabe Firmen im System
|
||||
- Verwaltung bestehender Datensätze
|
||||
- Erstellen neuer Datensätze
|
||||
- Datenpflege Praxisphase:
|
||||
- Ausgabe Angebote Praxiphasenplätze im System
|
||||
- Verwaltung bestehender Datensätze
|
||||
- Erstellen neuer Datensätze
|
||||
- Auswahl Praxisphasen:
|
||||
- Schnittstelle für Studenten, um sich in Praxisphasenplatz einzuschreiben, mit Angabe von Zeitraum
|
||||
- Auswertung Firma:
|
||||
- Ausgabe aller Firmen mit den jeweiligen Studenten, die sich bei Ihnen zu einem Praxisphasenplatz eingeschrieben haben
|
||||
- Auswertung Praxisphasen nach Studenten:
|
||||
- Ausgabe aller Studenten mit Informationen, bei welcher Firma sie wann ihre Praxisphase machen / gemacht haben
|
||||
- Auswertung Praxisphase nach Betreuern:
|
||||
- Ausgabe aller Betreuer mit den jeweiligen Studenten, die sie betreuen.
|
||||
|
||||
## Beschreibung des Client
|
||||
- Basis: Html Vorlage
|
||||
- Dynamischer Inhalt via Javascript:
|
||||
- Lädt Inhalte im JSON Format von Server
|
||||
- Rendert Inhalte in Templates
|
||||
- Fügt gerenderte Inhalte in HTML (DOM) ein
|
||||
|
||||
## Beschreibung der Komponenten des Servers
|
||||
- Server: Object-Dispatching --> Weiterleitung der Anfragen an jeweilige Funktionen
|
||||
- category
|
||||
- Zweck
|
||||
- Alle Kategorien (Studenten, Lehrende, Firmen, Angebote)
|
||||
- Rückgabe der Inhalte
|
||||
- Verwaltung der Daten
|
||||
- Zusammenwirken mit anderen Komponenten
|
||||
- Zugriff auf Datenbank um Daten zu verwalten
|
||||
- Aufbau
|
||||
- GET: Rückgabe
|
||||
- POST: Eingabe
|
||||
- DELETE: Löschen
|
||||
- API
|
||||
- GET ( Kategorie, Ansicht, ID)
|
||||
- POST ( Kategorie, Daten )
|
||||
- DELETE ( Kategorie, ID )
|
||||
- choice
|
||||
- Zweck
|
||||
- Rückgabe der bestehenden Angebote
|
||||
- Verwaltung der Daten
|
||||
- Annahme mit Datum
|
||||
- Zusammenwirken mit anderen Komponenten
|
||||
- Zugriff auf Datenbank um Daten zu verwalten
|
||||
- Aufbau
|
||||
- GET: Rückgabe
|
||||
- POST: Eingabe
|
||||
- API
|
||||
- GET ( Ansicht, ID )
|
||||
- POST ( Daten )
|
||||
- eval
|
||||
- Zweck
|
||||
- Auswertung
|
||||
- Rückgabe der Auswertungen
|
||||
- Zusammenwirken mit anderen Komponenten
|
||||
- Zugriff auf Datenbank um Daten zu verwalten
|
||||
- Aufbau
|
||||
- GET: Rückgabe und Auswertung
|
||||
- API
|
||||
- GET ( Kategorie )
|
||||
- database
|
||||
- Zweck
|
||||
-Verwaltung
|
||||
- auslesen
|
||||
- bearbeiten
|
||||
- speichern
|
||||
- löschen
|
||||
- Zusammenwirken mit anderen Komponenten
|
||||
- category, choice, eval greifen auf Datenbank zu
|
||||
- template
|
||||
- Zweck
|
||||
- Einlesen aller Templates
|
||||
- Rückgabe aller Templates
|
||||
- Aufbau
|
||||
- GET: Rückgabe aller Templates
|
||||
- API
|
||||
- GET ()
|
||||
|
||||
## Datenablage
|
||||
- Die Daten werden mittels JSON abgespeichert und ausgelesen
|
||||
- Die Datensätze sind aufgeteilt in die Unterordner:
|
||||
- Angebote
|
||||
- Firmen
|
||||
- Lehrender
|
||||
- Studenten
|
||||
- Es wird jeweils abgespeichert, welche ID der zuletzt hinzugefügte Eintrag hat, um den nächsten mit inkrementierter ID abspeichern zu können
|
||||
|
||||
## Konfiguration
|
||||
- Python
|
||||
- Erweiterungen:
|
||||
- JSON
|
||||
- CherryPy
|
||||
- Webbrowser
|
||||
- Javascript fähig
|
@ -59,6 +59,11 @@ class PPM
|
||||
|
||||
this.LoadContent('/category/?cat=Firmen&view=List', 'list.tpl');
|
||||
break
|
||||
|
||||
case 'categoryAngebote':
|
||||
|
||||
this.LoadContent('/category/?cat=Angebote&view=List', 'list.tpl');
|
||||
break
|
||||
|
||||
case 'choice':
|
||||
|
||||
@ -80,60 +85,84 @@ class PPM
|
||||
this.LoadContent('/eval/?cat=Firmen', 'listEval.tpl');
|
||||
break
|
||||
|
||||
case 'NewStudenten':
|
||||
case 'newStudenten':
|
||||
|
||||
console.log("NewStudenten");
|
||||
this.LoadContent('/category/?cat=Studenten&view=Detail', 'detail.tpl');
|
||||
break
|
||||
|
||||
case 'NewLehrender':
|
||||
case 'newLehrender':
|
||||
|
||||
console.log("NewLehrender");
|
||||
this.LoadContent('/category/?cat=Lehrenden&view=Detail', 'detail.tpl');
|
||||
this.LoadContent('/category/?cat=Lehrender&view=Detail', 'detail.tpl');
|
||||
break
|
||||
|
||||
case 'NewFirmen':
|
||||
case 'newFirmen':
|
||||
|
||||
console.log("NewFirmen");
|
||||
this.LoadContent('/category/?cat=Firmen&view=Detail', 'detail.tpl');
|
||||
break
|
||||
|
||||
case 'ModifyStudenten':
|
||||
console.log("ModifyStudenten: ", selectedId);
|
||||
case 'newAngebote':
|
||||
|
||||
console.log("NewAngebote");
|
||||
this.LoadContent('/category/?cat=Angebote&view=Detail', 'detail.tpl');
|
||||
break
|
||||
|
||||
case 'modifyStudenten':
|
||||
console.log("modifyStudenten: ", selectedId);
|
||||
this.LoadContent('/category/?cat=Studenten&view=Detail&id='+ selectedId, 'detail.tpl');
|
||||
break
|
||||
|
||||
case 'ModifyLehrender':
|
||||
case 'modifyLehrender':
|
||||
|
||||
console.log("ModifyLehrender", selectedId);
|
||||
console.log("modifyLehrender", selectedId);
|
||||
this.LoadContent('/category/?cat=Lehrender&view=Detail&id='+ selectedId, 'detail.tpl');
|
||||
break
|
||||
|
||||
case 'ModifyFirmen':
|
||||
case 'modifyFirmen':
|
||||
|
||||
console.log("ModifyFirmen", selectedId);
|
||||
console.log("modifyFirmen", selectedId);
|
||||
this.LoadContent('/category/?cat=Firmen&view=Detail&id='+ selectedId, 'detail.tpl');
|
||||
break
|
||||
|
||||
case 'DeleteStudenten':
|
||||
case 'modifyAngebote':
|
||||
|
||||
console.log("DeleteStudenten", selectedId);
|
||||
console.log("modifyAngebote", selectedId);
|
||||
this.LoadContent('/category/?cat=Angebote&view=Detail&id='+ selectedId, 'detail.tpl');
|
||||
break
|
||||
|
||||
case 'choiceAnnehmen':
|
||||
|
||||
console.log("choiceAnnehmen", selectedId);
|
||||
this.LoadContent('/choice/?view=Detail&id='+ selectedId, 'detailChoice.tpl');
|
||||
break
|
||||
|
||||
case 'choiceNeu':
|
||||
|
||||
console.log("choiceNeu");
|
||||
this.LoadContent('/choice/?view=Detail', 'detailChoice.tpl');
|
||||
break
|
||||
|
||||
case 'deleteStudenten':
|
||||
|
||||
console.log("deleteStudenten", selectedId);
|
||||
if (confirm("Soll der Eintrag wirklich geloescht werden?")) {
|
||||
console.log("DELETE");
|
||||
this.DeleteContent('/category/?cat=Studenten&id='+selectedId, 'categoryStudenten');
|
||||
}
|
||||
break
|
||||
|
||||
case 'DeleteLehrender':
|
||||
case 'deleteLehrender':
|
||||
|
||||
console.log("DeleteLehrender", selectedId);
|
||||
console.log("deleteLehrender", selectedId);
|
||||
if (confirm("Soll der Eintrag wirklich geloescht werden?")) {
|
||||
console.log("DELETE");
|
||||
this.DeleteContent('/category/?cat=Lehrender&id='+selectedId, 'categoryLehrender');
|
||||
}
|
||||
break
|
||||
|
||||
case 'DeleteFirmen':
|
||||
case 'deleteFirmen':
|
||||
|
||||
console.log("DeleteFirmen", selectedId);
|
||||
if (confirm("Soll der Eintrag wirklich geloescht werden?")) {
|
||||
@ -142,24 +171,36 @@ class PPM
|
||||
}
|
||||
break
|
||||
|
||||
case 'SaveCategoryStudenten':
|
||||
case 'saveCategoryStudenten':
|
||||
|
||||
var data = $("#idForm").serialize();
|
||||
this.SaveContent('/category/?cat=Studenten&'+data, 'categoryStudenten');
|
||||
break
|
||||
|
||||
case 'SaveCategoryLehrende':
|
||||
case 'saveCategoryLehrende':
|
||||
|
||||
var data = $("#idForm").serialize();
|
||||
this.SaveContent('/category/?cat=Lehrender&'+data, 'categoryLehrender');
|
||||
break
|
||||
|
||||
case 'SaveCategoryFirmen':
|
||||
case 'saveCategoryFirmen':
|
||||
|
||||
var data = $("#idForm").serialize();
|
||||
this.SaveContent('/category/?cat=Firmen&'+data, 'categoryFirmen');
|
||||
break
|
||||
|
||||
case 'saveCategoryAngebote':
|
||||
|
||||
var data = $("#idForm").serialize();
|
||||
this.SaveContent('/category/?cat=Angebote&'+data, 'categoryAngebote');
|
||||
break
|
||||
|
||||
case 'saveChoice':
|
||||
|
||||
var data = $("#idForm").serialize();
|
||||
this.SaveContent('/choice/?'+data, 'choice');
|
||||
break
|
||||
|
||||
default:
|
||||
|
||||
alert ('[PPM] Unbekannte Anfrage: ' + message);
|
||||
|
@ -52,7 +52,7 @@
|
||||
<div id="idButtonArea" class="clButtonArea">
|
||||
<a data-action="index" title="Zurück zur Startseite">Zurück zur Startseite</a>
|
||||
<a data-action="category#context['category']#" title="Zurueck zur übersicht">Zurück zur übersicht</a>
|
||||
<a data-action="SaveCategory#context['category']#" title="Speichern">Speichern</a>
|
||||
<a data-action="saveCategory#context['category']#" title="Speichern">Speichern</a>
|
||||
</div>
|
||||
|
||||
</form>
|
48
Praktikum2/ppm2/templates/detailChoice.tpl
Normal file
48
Praktikum2/ppm2/templates/detailChoice.tpl
Normal file
@ -0,0 +1,48 @@
|
||||
<form id="idForm" class="clContent" method="POST">
|
||||
<h2 id="idContentHeader" class="clContentHeader">
|
||||
Praxisphasenangebots Auswahl
|
||||
</h2>
|
||||
<div id="idContentArea" class="clContentArea">
|
||||
<input type="hidden" value="#context['id']#" id="id" name="id" />
|
||||
<input type="hidden" value="#context['Name']#" id="Name" name="Name" />
|
||||
<input type="hidden" value="#context['Firma']#" id="Firma" name="Firma" />
|
||||
<input type="hidden" value="#context['Beschreibung']#"" id="Beschreibung" name="Beschreibung" />
|
||||
<input type="hidden" value="#context['Voraussetzungen']#" id="Voraussetzungen" name="Voraussetzungen" />
|
||||
<input type="hidden" value="#context['Firmenbetreuer']#" id="Firmenbetreuer" name="Firmenbetreuer" />
|
||||
<input type="hidden" value="aktuell" id="Status" name="Status" />
|
||||
|
||||
<div class="clFormRow">
|
||||
<label for="Student">Student</label>
|
||||
<select name="Student" form="idForm">
|
||||
@for option in context['Studenten']@
|
||||
<option value="#context['Studenten'][option]['id']#">#context['Studenten'][option]['Name']#</option>
|
||||
@endfor@
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="clFormRow">
|
||||
<label for="Lehrender">Lehrender</label>
|
||||
<select name="Lehrender" form="idForm">
|
||||
@for option in context['Lehrender']@
|
||||
<option value="#context['Lehrender'][option]['id']#">#context['Lehrender'][option]['Name']#</option>
|
||||
@endfor@
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="clFormRow">
|
||||
<label for="ZeitraumVon">Zeitraum: Von (D.M.Y)</label>
|
||||
<input type="text" value="" id="ZeitraumVon" name="ZeitraumVon" />
|
||||
</div>
|
||||
|
||||
<div class="clFormRow">
|
||||
<label for="ZeitraumBis">Zeitraum: Bis (D.M.Y)</label>
|
||||
<input type="text" value="" id="ZeitraumBis" name="ZeitraumBis" />
|
||||
</div>
|
||||
|
||||
<div id="idButtonArea" class="clButtonArea">
|
||||
<a data-action="index" title="Zurück zur Startseite">Zurück zur Startseite</a>
|
||||
<a data-action="choice" title="Zurück zur übersicht">Zurück zur übersicht</a>
|
||||
<a data-action="saveChoice" title="Speichern">Speichern</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
@ -4,6 +4,7 @@
|
||||
<li><a class="clNavButton" data-action="categoryStudenten">Datenpflege: Studenten</a></li>
|
||||
<li><a class="clNavButton" data-action="categoryLehrender">Datenpflege: Lehrender</a></li>
|
||||
<li><a class="clNavButton" data-action="categoryFirmen">Datenpflege: Firmenverzeichnis</a></li>
|
||||
<li><a class="clNavButton" data-action="categoryAngebote">Datenpflege: Angebote</a></li>
|
||||
<li><a class="clNavButton" data-action="choice">Auswahl: Praxisphasen</a></li>
|
||||
<li><a class="clNavButton" data-action="evalStudenten">Auswertung: Studenten</a></li>
|
||||
<li><a class="clNavButton" data-action="evalLehrender">Auswertung: Lehrenden</a></li>
|
||||
|
@ -41,7 +41,7 @@
|
||||
|
||||
<div id="idButtonArea" class="clButtonArea">
|
||||
<a class="clButton" data-action="index">Startseite</a>
|
||||
<a class="clButton" data-action="New#context['category']#">Neu</a>
|
||||
<a class="clButton" data-action="Modify#context['category']#">Bearbeiten</a>
|
||||
<a class="clButton" data-action="Delete#context['category']#">Loeschen</a>
|
||||
<a class="clButton" data-action="new#context['category']#">Neu</a>
|
||||
<a class="clButton" data-action="modify#context['category']#">Bearbeiten</a>
|
||||
<a class="clButton" data-action="delete#context['category']#">Loeschen</a>
|
||||
</div>
|
@ -13,7 +13,7 @@
|
||||
</tr>
|
||||
@if context['content']!= 'None'@
|
||||
@for entries in context['content']@
|
||||
<tr id=${entries}>
|
||||
<tr id=#entries#>
|
||||
<td id=#entries#>#context['content'][entries]['Name']#</td>
|
||||
<td id=#entries#>#context['content'][entries]['Firma']#</td>
|
||||
<td id=#entries#>#context['content'][entries]['Beschreibung']#</td>
|
||||
@ -29,5 +29,5 @@
|
||||
|
||||
<div id="idButtonArea" class="clButtonArea">
|
||||
<a class="clButton" data-action="index">Startseite</a>
|
||||
<a class="clButton" id="Annehmen">Annehmen</a>
|
||||
<a class="clButton" data-action="choiceAnnehmen">Annehmen</a>
|
||||
</div>
|
Loading…
x
Reference in New Issue
Block a user