PPM2: select
This commit is contained in:
BIN
Praktikum2/ppm2/app/__pycache__/application.cpython-35.pyc
Normal file
BIN
Praktikum2/ppm2/app/__pycache__/application.cpython-35.pyc
Normal file
Binary file not shown.
BIN
Praktikum2/ppm2/app/__pycache__/category.cpython-35.pyc
Normal file
BIN
Praktikum2/ppm2/app/__pycache__/category.cpython-35.pyc
Normal file
Binary file not shown.
BIN
Praktikum2/ppm2/app/__pycache__/choice.cpython-35.pyc
Normal file
BIN
Praktikum2/ppm2/app/__pycache__/choice.cpython-35.pyc
Normal file
Binary file not shown.
BIN
Praktikum2/ppm2/app/__pycache__/database.cpython-35.pyc
Normal file
BIN
Praktikum2/ppm2/app/__pycache__/database.cpython-35.pyc
Normal file
Binary file not shown.
BIN
Praktikum2/ppm2/app/__pycache__/eval.cpython-35.pyc
Normal file
BIN
Praktikum2/ppm2/app/__pycache__/eval.cpython-35.pyc
Normal file
Binary file not shown.
BIN
Praktikum2/ppm2/app/__pycache__/template.cpython-35.pyc
Normal file
BIN
Praktikum2/ppm2/app/__pycache__/template.cpython-35.pyc
Normal file
Binary file not shown.
BIN
Praktikum2/ppm2/app/__pycache__/templates.cpython-35.pyc
Normal file
BIN
Praktikum2/ppm2/app/__pycache__/templates.cpython-35.pyc
Normal file
Binary file not shown.
BIN
Praktikum2/ppm2/app/__pycache__/view.cpython-35.pyc
Normal file
BIN
Praktikum2/ppm2/app/__pycache__/view.cpython-35.pyc
Normal file
Binary file not shown.
332
Praktikum2/ppm2/app/application.py.old
Normal file
332
Praktikum2/ppm2/app/application.py.old
Normal file
@ -0,0 +1,332 @@
|
||||
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
|
33
Praktikum2/ppm2/app/category.py
Normal file
33
Praktikum2/ppm2/app/category.py
Normal file
@ -0,0 +1,33 @@
|
||||
# coding: utf-8
|
||||
|
||||
import json
|
||||
import cherrypy
|
||||
from app import database
|
||||
|
||||
#-------------------------------------------------------
|
||||
class Category(object):
|
||||
#-------------------------------------------------------
|
||||
|
||||
exposed = True # gilt für alle Methoden
|
||||
|
||||
#-------------------------------------------------------
|
||||
def __init__(self):
|
||||
#-------------------------------------------------------
|
||||
self.db = database.Database()
|
||||
|
||||
#-------------------------------------------------------
|
||||
def GET(self, cat=None):
|
||||
#-------------------------------------------------------
|
||||
data = {}
|
||||
if(cat != None):
|
||||
self.db.ReadAll()
|
||||
data['content'] = {}
|
||||
data['headings'] = {}
|
||||
data['category'] = cat
|
||||
data['content'] = self.db.data[cat]
|
||||
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 json.dumps(data)
|
31
Praktikum2/ppm2/app/choice.py
Normal file
31
Praktikum2/ppm2/app/choice.py
Normal file
@ -0,0 +1,31 @@
|
||||
# coding: utf-8
|
||||
|
||||
import json
|
||||
import cherrypy
|
||||
from app import database
|
||||
|
||||
#-------------------------------------------------------
|
||||
class Choice(object):
|
||||
#-------------------------------------------------------
|
||||
|
||||
exposed = True # gilt für alle Methoden
|
||||
|
||||
#-------------------------------------------------------
|
||||
def __init__(self):
|
||||
#-------------------------------------------------------
|
||||
self.db = database.Database()
|
||||
|
||||
#-------------------------------------------------------
|
||||
def GET(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 json.dumps(data)
|
189
Praktikum2/ppm2/app/database.py
Normal file
189
Praktikum2/ppm2/app/database.py
Normal file
@ -0,0 +1,189 @@
|
||||
# coding: utf-8
|
||||
|
||||
import os
|
||||
import os.path
|
||||
import codecs
|
||||
import json
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
#----------------------------------------------------------
|
||||
class Database(object):
|
||||
#----------------------------------------------------------
|
||||
# da es hier nur darum geht, die Daten dauerhaft zu speichern,
|
||||
# wird ein sehr einfacher Ansatz verwendet:
|
||||
# - es können Daten zu genau 15 Teams gespeichert werden
|
||||
# - je Team werden 2 Teilnehmer mit Namen, Vornamen und Matrikelnummer
|
||||
# berücksichtigt
|
||||
# - die Daten werden als eine JSON-Datei abgelegt
|
||||
|
||||
|
||||
#-------------------------------------------------------
|
||||
def __init__(self):
|
||||
#-------------------------------------------------------
|
||||
self.data = {}
|
||||
self.data['Studenten'] = {}
|
||||
self.data['Lehrender'] = {}
|
||||
self.data['Firmen'] = {}
|
||||
self.data['Angebote'] = {}
|
||||
self.ReadAll()
|
||||
|
||||
|
||||
#-------------------------------------------------------
|
||||
def Read(self, category):
|
||||
#-------------------------------------------------------
|
||||
path = 'data/' + category
|
||||
if not(os.path.exists(path)):
|
||||
os.makedirs(path)
|
||||
categoryDir = os.listdir(path)
|
||||
for fileName in categoryDir:
|
||||
if fileName.endswith('.json') and fileName != 'last.json':
|
||||
file = codecs.open(os.path.join('data', category, fileName), 'rU', 'utf-8')
|
||||
fileContent = file.read()
|
||||
id = fileName[:-5]
|
||||
self.data[category][id] = json.loads(fileContent)
|
||||
|
||||
#-------------------------------------------------------
|
||||
def ReadAll(self):
|
||||
#-------------------------------------------------------
|
||||
self.Read('Studenten')
|
||||
self.Read('Lehrender')
|
||||
self.Read('Firmen')
|
||||
self.Read('Angebote')
|
||||
|
||||
#-------------------------------------------------------
|
||||
def ReadEntry(self, category = None, id = None):
|
||||
#-------------------------------------------------------
|
||||
print("ReadEntry: ", category, id)
|
||||
self.Read(category)
|
||||
data = None
|
||||
if id == None:
|
||||
data = self.data
|
||||
else:
|
||||
if id in self.data[category]:
|
||||
data = self.data[category][id]
|
||||
|
||||
print(data, "\n")
|
||||
return data
|
||||
|
||||
#-------------------------------------------------------
|
||||
def Save(self, data, category):
|
||||
#-------------------------------------------------------
|
||||
status_b = False
|
||||
id = data['id']
|
||||
print("ID: ", id, "\n")
|
||||
if(id != "None"):
|
||||
if id in self.data[category]:
|
||||
file = codecs.open(os.path.join('data', category, id+'.json'), 'w', 'utf-8')
|
||||
file.write(json.dumps(data, indent=3, ensure_ascii=True))
|
||||
file.close()
|
||||
self.Read(category)
|
||||
status_b = True
|
||||
else:
|
||||
data['id'] = self.IdNext(category)
|
||||
file = codecs.open(os.path.join('data', category, data['id']+'.json'), 'w', 'utf-8')
|
||||
file.write(json.dumps(data, indent=3, ensure_ascii=True))
|
||||
file.close()
|
||||
self.Read(category)
|
||||
status_b = True
|
||||
|
||||
return status_b
|
||||
|
||||
#-------------------------------------------------------
|
||||
def Delete(self, category, id):
|
||||
#-------------------------------------------------------
|
||||
status_b = False
|
||||
if(category == 'Studenten'):
|
||||
for angebote in self.data['Angebote']:
|
||||
if(self.data['Angebote'][angebote]['Student'] == id):
|
||||
try:
|
||||
os.remove(os.path.join('data', 'Angebote', angebote+'.json'))
|
||||
except OSError:
|
||||
pass
|
||||
elif(category == 'Lehrender'):
|
||||
for angebote in self.data['Angebote']:
|
||||
if(self.data['Angebote'][angebote]['Lehrender'] == id):
|
||||
try:
|
||||
os.remove(os.path.join('data', 'Angebote', angebote+'.json'))
|
||||
except OSError:
|
||||
pass
|
||||
elif(category == 'Firmen'):
|
||||
for firmen in self.data['Firmen']:
|
||||
if(firmen == id):
|
||||
fn = self.data['Firmen'][firmen]['Name']
|
||||
for angebote in self.data['Angebote']:
|
||||
if(self.data['Angebote'][angebote]['Firma'] == fn):
|
||||
try:
|
||||
os.remove(os.path.join('data', 'Angebote', angebote+'.json'))
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
if id in self.data[category]:
|
||||
os.remove(os.path.join('data', category, id+'.json'))
|
||||
del self.data[category][id]
|
||||
|
||||
return status_b
|
||||
|
||||
#-------------------------------------------------------
|
||||
def CheckOfferings(self, id):
|
||||
#-------------------------------------------------------
|
||||
print("Offerings: ", id)
|
||||
for offerings in self.data['Angebote']:
|
||||
if(self.data['Angebote'][offerings]['Student'] != id):
|
||||
return 0
|
||||
else:
|
||||
return 1
|
||||
|
||||
#-------------------------------------------------------
|
||||
def CheckDates(self):
|
||||
#-------------------------------------------------------
|
||||
now = datetime.now()
|
||||
for offerings in self.data['Angebote']:
|
||||
if(self.data['Angebote'][offerings]['ZeitraumBis'] != ''):
|
||||
zeitraumBis = datetime.strptime(self.data['Angebote'][offerings]['ZeitraumBis'], "%d.%m.%Y")
|
||||
if(zeitraumBis <= now):
|
||||
self.data['Angebote'][offerings]['Status'] = 'abgeschlossen'
|
||||
data = {}
|
||||
data['Status'] = 'abgeschlossen'
|
||||
data['id'] = offerings
|
||||
data['Name'] = self.data['Angebote'][offerings]['Name']
|
||||
data['Firma'] = self.data['Angebote'][offerings]['Firma']
|
||||
data['Beschreibung'] = self.data['Angebote'][offerings]['Beschreibung']
|
||||
data['Voraussetzungen'] = self.data['Angebote'][offerings]['Voraussetzungen']
|
||||
data['Firmenbetreuer'] = self.data['Angebote'][offerings]['Firmenbetreuer']
|
||||
data['Lehrender'] = self.data['Angebote'][offerings]['Lehrender']
|
||||
data['ZeitraumVon'] = self.data['Angebote'][offerings]['ZeitraumVon']
|
||||
data['ZeitraumBis'] = self.data['Angebote'][offerings]['ZeitraumBis']
|
||||
data['Student'] = self.data['Angebote'][offerings]['Student']
|
||||
self.Save(data, 'Angebote')
|
||||
|
||||
#-------------------------------------------------------
|
||||
def GetDefault(self, category):
|
||||
#-------------------------------------------------------
|
||||
if(category == 'Studenten'):
|
||||
return {'Name':'', 'Vorname':'', 'Matrikelnummer':''}
|
||||
elif(category == 'Lehrender'):
|
||||
return {'Titel':'', 'Name':'', 'Vorname':'', 'Lehrgebiet':''}
|
||||
elif(category == 'Firmen'):
|
||||
return {'Name':'', 'Branche':'', 'Schwerpunkt':'', 'Sitz':'', 'Anzahl Mitarbeiter':''}
|
||||
elif(category == 'Angebote'):
|
||||
return {'Name':'', 'Firma':'', 'Beschreibung':'', 'Voraussetzungen':'', 'Firmenbetreuer':'', 'Status':'Angebot', 'Lehrender':'', 'ZeitraumVon':'', 'ZeitraumBis':'', 'Student':''}
|
||||
|
||||
#-------------------------------------------------------
|
||||
def IdNext(self, category):
|
||||
#-------------------------------------------------------
|
||||
path = 'data/' + category + '/last.json'
|
||||
if(os.path.isfile(path)):
|
||||
file = open(os.path.join('data', category, 'last.json'), 'r+')
|
||||
last = file.read()
|
||||
last = str(int(last)+1)
|
||||
file.seek(0)
|
||||
file.write(last)
|
||||
file.close()
|
||||
else:
|
||||
file = open(os.path.join('data', category, 'last.json'), 'w+')
|
||||
last = str(int(0))
|
||||
file.write(last)
|
||||
file.close()
|
||||
return last
|
||||
|
||||
# EOF
|
85
Praktikum2/ppm2/app/eval.py
Normal file
85
Praktikum2/ppm2/app/eval.py
Normal file
@ -0,0 +1,85 @@
|
||||
# coding: utf-8
|
||||
|
||||
import json
|
||||
import cherrypy
|
||||
from app import database
|
||||
|
||||
#-------------------------------------------------------
|
||||
class Eval(object):
|
||||
#-------------------------------------------------------
|
||||
|
||||
exposed = True # gilt für alle Methoden
|
||||
|
||||
#-------------------------------------------------------
|
||||
def __init__(self):
|
||||
#-------------------------------------------------------
|
||||
self.db = database.Database()
|
||||
|
||||
#-------------------------------------------------------
|
||||
def GET(self, cat=None):
|
||||
#-------------------------------------------------------
|
||||
self.db.CheckDates()
|
||||
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']
|
||||
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']
|
||||
print(data)
|
||||
return json.dumps(data)
|
37
Praktikum2/ppm2/app/templates.py
Normal file
37
Praktikum2/ppm2/app/templates.py
Normal file
@ -0,0 +1,37 @@
|
||||
# coding: utf-8
|
||||
|
||||
import json
|
||||
import os
|
||||
import codecs
|
||||
import cherrypy
|
||||
|
||||
#----------------------------------------------------------
|
||||
class Templates(object):
|
||||
#----------------------------------------------------------
|
||||
|
||||
exposed = True # gilt für alle Methoden
|
||||
|
||||
#-------------------------------------------------------
|
||||
def __init__(self):
|
||||
#-------------------------------------------------------
|
||||
pass
|
||||
|
||||
#-------------------------------------------------------
|
||||
def GET(self):
|
||||
#-------------------------------------------------------
|
||||
retVal = {
|
||||
'templates': {}
|
||||
}
|
||||
|
||||
files = os.listdir('templates')
|
||||
for fileName in files:
|
||||
if fileName != '.DS_Store':
|
||||
file = codecs.open(os.path.join('templates', fileName), 'rU', 'utf-8', errors='ignore')
|
||||
content = file.read()
|
||||
file.close()
|
||||
retVal["templates"][fileName] = content
|
||||
print(retVal)
|
||||
|
||||
return json.dumps(retVal)
|
||||
|
||||
# EOF
|
52
Praktikum2/ppm2/app/view.py.old
Normal file
52
Praktikum2/ppm2/app/view.py.old
Normal file
@ -0,0 +1,52 @@
|
||||
# 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)
|
Reference in New Issue
Block a user