122 lines
3.4 KiB
Python
Raw Normal View History

2016-10-11 19:01:39 +02:00
# coding: utf-8
import os
import os.path
import codecs
import json
#----------------------------------------------------------
class Database_cl(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_o = None
self.readData_p()
#-------------------------------------------------------
def create_px(self, data_opl):
#-------------------------------------------------------
# Überprüfung der Daten müsste ergänzt werden!
# 'freien' Platz suchen,
# falls vorhanden: belegen und Nummer des Platzes als Id zurückgeben
id_s = None
for loop_i in range(0,15):
if self.data_o[str(loop_i)][0] == '':
id_s = str(loop_i)
self.data_o[id_s] = data_opl
self.saveData_p()
break
return id_s
#-------------------------------------------------------
def read_px(self, id_spl = None):
#-------------------------------------------------------
# hier zur Vereinfachung:
# Aufruf ohne id: alle Einträge liefern
data_o = None
if id_spl == None:
data_o = self.data_o
else:
if id_spl in self.data_o:
data_o = self.data_o[id_spl]
return data_o
#-------------------------------------------------------
def update_px(self, id_spl, data_opl):
#-------------------------------------------------------
# Überprüfung der Daten müsste ergänzt werden!
status_b = False
if id_spl in self.data_o:
self.data_o[id_spl] = data_opl
self.saveData_p()
status_b = True
return status_b
#-------------------------------------------------------
def delete_px(self, id_spl):
#-------------------------------------------------------
2016-10-17 18:04:28 +02:00
#print("\n---------------------- DELETE ---------------------")
2016-10-11 19:01:39 +02:00
status_b = False
if id_spl in self.data_o:
pass
# hier müssen Sie den Code ergänzen
# Löschen als Zurücksetzen auf die Default-Werte implementieren
2016-10-17 18:04:28 +02:00
# Ihre Ergänzung
self.data_o[id_spl] = {}
default_s = self.getDefault_px()
self.data_o[id_spl] = default_s
self.saveData_p()
2016-10-11 19:01:39 +02:00
return status_b
#-------------------------------------------------------
def getDefault_px(self):
#-------------------------------------------------------
2016-10-17 18:04:28 +02:00
return ['', '', '', '', '', '', '', ''] # HIER müssen Sie eine Ergänzung vornehmen
2016-10-11 19:01:39 +02:00
#-------------------------------------------------------
def readData_p(self):
#-------------------------------------------------------
try:
fp_o = codecs.open(os.path.join('data', 'webteams.json'), 'r', 'utf-8')
except:
# Datei neu anlegen self.data_o = {}
2016-10-17 18:04:28 +02:00
self.data_o = {}
2016-10-11 19:01:39 +02:00
for loop_i in range(0,15):
2016-10-17 18:04:28 +02:00
self.data_o[str(loop_i)] = ['', '', '', '', '', '', '', '']
2016-10-11 19:01:39 +02:00
self.saveData_p()
else:
with fp_o:
self.data_o = json.load(fp_o)
return
#-------------------------------------------------------
def saveData_p(self):
#-------------------------------------------------------
with codecs.open(os.path.join('data', 'webteams.json'), 'w', 'utf-8') as fp_o:
json.dump(self.data_o, fp_o)
# EOF