fast fertig

This commit is contained in:
darthsandmann
2016-11-17 12:36:16 +01:00
parent 50f239ad08
commit f804e2bacd
33 changed files with 307 additions and 112 deletions

View File

@ -1,6 +1,9 @@
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):
@ -29,6 +32,7 @@ class Application_cl(object):
def category(self, cat=None):
#-------------------------------------------------------
print("Category: ", cat, "\n")
self.db.ReadAll()
if(cat==None):
return self.GenerateIndex()
else:
@ -39,6 +43,7 @@ class Application_cl(object):
def choice(self):
#-------------------------------------------------------
print("Choice \n")
self.db.ReadAll()
return self.GenerateListChoice()
@cherrypy.expose
@ -46,6 +51,8 @@ class Application_cl(object):
def eval(self, cat):
#-------------------------------------------------------
print("Eval \n")
self.db.ReadAll()
self.db.CheckDates()
return self.GenerateListEval(cat)
@cherrypy.expose
@ -79,6 +86,14 @@ class Application_cl(object):
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):
#-------------------------------------------------------
@ -161,7 +176,7 @@ class Application_cl(object):
data['id'] = id
data = self.db.data['Angebote'][id]
data['Studenten'] = self.db.data['Studenten']
data['Lehrende'] = self.db.data['Lehrende']
data['Lehrender'] = self.db.data['Lehrender']
print(data, "\n")
return self.view.CreateDetailChoice(data)
@ -170,54 +185,68 @@ class Application_cl(object):
#-------------------------------------------------------
data = {}
Studenten = self.db.data['Studenten']
Lehrende = self.db.data['Lehrende']
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 Firmen.items():
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():
data[valueFirma['Name']]['Angebote'] = {}
data[valueFirma['Name']]['Angebote']['Angebot'] = {}
data[valueFirma['Name']]['Angebote']['aktuell'] = {}
data[valueFirma['Name']]['Angebote']['abgeschlossen'] = {}
if(valueAngebote['Firma'] == valueFirma['Name']):
data[valueFirma['Name']]['Angebote'][valueAngebote['Status']][valueAngebote['Name']] = {}
data[valueFirma['Name']]['Angebote'][valueAngebote['Status']][valueAngebote['Name']]['Name'] = valueAngebote['Name']
data[valueFirma['Name']]['Angebote'][valueAngebote['Status']][valueAngebote['Name']]['Student'] = Studenten[valueAngebote['Student']]['Name']
data[valueFirma['Name']]['Angebote'][valueAngebote['Status']][valueAngebote['Name']]['Lehrende'] = Lehrende[valueAngebote['Lehrende']]['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']]['Name'] = 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']]['Lehrende'] = Lehrende[valueAngebot['Lehrende']]['Name']
data[valueStudent['Name']]['Status'] = valueAngebot['Status']
data[valueStudent['Name']]['Praxisphase'] = valueAngebot['Name']
data[valueStudent['Name']]['Firma'] = valueAngebot['Firma']
data[valueStudent['Name']]['ZeitraumVon'] = valueAngebot['ZeitraumVon']
data[valueStudent['Name']]['ZeitraumBis'] = valueAngebot['ZeitraumBis']
elif(cat == 'Lehrende'):
for keyLehrende, valueLehrende in Lehrende.items():
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']]['Name'] = 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['Lehrende'] == valueLehrende['id']):
data[valueLehrende['Name']]['Student'] = Studenten[valueAngebot['Student']]['Name']
data[valueLehrende['Name']]['Status'] = valueAngebot['Status']
data[valueLehrende['Name']]['Praxisphase'] = valueAngebot['Name']
data[valueLehrende['Name']]['Firma'] = valueAngebot['Firma']
data[valueLehrende['Name']]['ZeitraumVon'] = valueAngebot['ZeitraumVon']
data[valueLehrende['Name']]['ZeitraumBis'] = valueAngebot['ZeitraumBis']
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 self.view.CreateListEval(data)
@ -230,6 +259,17 @@ class Application_cl(object):
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):
#-------------------------------------------------------

View File

@ -4,6 +4,7 @@ import os
import os.path
import codecs
import json
from datetime import datetime, timedelta
#----------------------------------------------------------
class Database_cl(object):
@ -21,7 +22,7 @@ class Database_cl(object):
#-------------------------------------------------------
self.data = {}
self.data['Studenten'] = {}
self.data['Lehrende'] = {}
self.data['Lehrender'] = {}
self.data['Firmen'] = {}
self.data['Angebote'] = {}
self.ReadAll()
@ -45,7 +46,7 @@ class Database_cl(object):
def ReadAll(self):
#-------------------------------------------------------
self.Read('Studenten')
self.Read('Lehrende')
self.Read('Lehrender')
self.Read('Firmen')
self.Read('Angebote')
@ -94,18 +95,27 @@ class Database_cl(object):
if(category == 'Studenten'):
for angebote in self.data['Angebote']:
if(self.data['Angebote'][angebote]['Student'] == id):
os.remove(os.path.join('data', 'Angebote', angebote+'.json'))
elif(category == 'Lehrende'):
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]['Lehrende'] == id):
os.remove(os.path.join('data', 'Angebote', angebote+'.json'))
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):
os.remove(os.path.join('data', 'Angebote', angebote+'.json'))
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'))
@ -113,12 +123,45 @@ class Database_cl(object):
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 == 'Lehrende'):
elif(category == 'Lehrender'):
return {'Titel':'', 'Name':'', 'Vorname':'', 'Lehrgebiet':''}
elif(category == 'Firmen'):
return {'Name':'', 'Branche':'', 'Schwerpunkt':'', 'Sitz':'', 'Anzahl Mitarbeiter':''}