Edit, Delete

This commit is contained in:
darthsandmann 2016-12-14 12:45:42 +01:00
parent 8060d7af68
commit 08eb4edae5
15 changed files with 180 additions and 73 deletions

View File

@ -16,18 +16,44 @@ class Category(object):
self.db = database.Database()
#-------------------------------------------------------
def GET(self, cat=None):
def GET(self, cat, view, id=None):
#-------------------------------------------------------
data = {}
if(cat != None):
if(cat != "Index"):
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())
if(view == "List"):
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())
elif(view == "Detail"):
data['category'] = cat
if(id != None):
data['id'] = id
data['content'] = self.db.ReadEntry(cat, id)
else:
data['id'] = None
data['content'] = self.db.GetDefault(cat)
if(cat == 'Angebote'):
data['Firmen'] = self.db.data['Firmen']
print(data)
return json.dumps(data)
#-------------------------------------------------------
def POST(self, cat, **data):
#-------------------------------------------------------
self.db.Save(data, cat)
print(data)
return self.GET(cat, "List")
#-------------------------------------------------------
def DELETE(self, cat, id):
#-------------------------------------------------------
print("Delete",cat,id)
self.db.Delete(cat, id)
return self.GET(cat, "List")

View File

@ -71,7 +71,7 @@ class Database(object):
status_b = False
id = data['id']
print("ID: ", id, "\n")
if(id != "None"):
if(id != ""):
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))

View File

@ -1,13 +0,0 @@
{
"Name": "Angebot IBM 1",
"ZeitraumBis": "01.01.2018",
"id": "23",
"Firmenbetreuer": "Sepp Meine",
"Firma": "IBM",
"Voraussetzungen": "Keine",
"Lehrender": "7",
"Status": "aktuell",
"Beschreibung": "Praxisphasenplatz bei IBM",
"ZeitraumVon": "01.01.2017",
"Student": "9"
}

View File

@ -1,13 +0,0 @@
{
"id": "26",
"ZeitraumVon": "02.02.2019",
"Firma": "Apple",
"Student": "10",
"Beschreibung": "Beschreibung",
"Name": "Name",
"Lehrender": "5",
"Firmenbetreuer": "Firmenbetreuer3",
"Voraussetzungen": "Kein",
"Status": "aktuell",
"ZeitraumBis": "02.02.2020"
}

View File

@ -1 +1 @@
6
7

View File

@ -1,7 +0,0 @@
{
"Titel": "Prof",
"id": "7",
"Lehrgebiet": "Informatik",
"Name": "Adalbert",
"Vorname": "Bastian"
}

View File

@ -1,6 +0,0 @@
{
"Vorname": "Timo",
"Name": "Ben",
"Matrikelnummer": "3",
"id": "10"
}

View File

@ -1,6 +1,6 @@
{
"id": "13",
"Name": "Edmund",
"Vorname": "Adalbert",
"Matrikelnummer": "1"
"Matrikelnummer": "1",
"Name": "Edmund"
}

View File

@ -1,6 +0,0 @@
{
"Vorname": "Gregor",
"Name": "Klemens",
"Matrikelnummer": "2",
"id": "9"
}

View File

@ -1 +1 @@
14
15

View File

@ -42,27 +42,27 @@ class PPM
{
case 'index':
this.LoadContent('/category/', 'index.tpl');
this.LoadContent('/category/?cat=Index&view=List', 'index.tpl');
break;
case 'categoryStudenten':
this.LoadContent('/category/?cat=Studenten', 'list.tpl');
this.LoadContent('/category/?cat=Studenten&view=List', 'list.tpl');
break
case 'categoryLehrender':
this.LoadContent('/category/?cat=Lehrender', 'list.tpl');
this.LoadContent('/category/?cat=Lehrender&view=List', 'list.tpl');
break
case 'categoryFirmen':
this.LoadContent('/category/?cat=Firmen', 'list.tpl');
this.LoadContent('/category/?cat=Firmen&view=List', 'list.tpl');
break
case 'choice':
this.LoadContent('/choice', 'listChoice.tpl');
this.LoadContent('/choice/?view=List', 'listChoice.tpl');
break
case 'evalStudenten':
@ -83,45 +83,81 @@ class PPM
case 'NewStudenten':
console.log("NewStudenten");
this.LoadContent('/category/?cat=Studenten&view=Detail', 'detail.tpl');
break
case 'NewLehrender':
console.log("NewLehrender");
this.LoadContent('/category/?cat=Lehrenden&view=Detail', 'detail.tpl');
break
case 'NewFirmen':
console.log("NewFirmen");
this.LoadContent('/category/?cat=Firmen&view=Detail', 'detail.tpl');
break
case 'ModifyStudenten':
console.log("ModifyStudenten: ", selectedId);
this.LoadContent('/category/?cat=Studenten&view=Detail&id='+ selectedId, 'detail.tpl');
break
case 'ModifyLehrenden':
case 'ModifyLehrender':
console.log("ModifyLehrenden", selectedId);
console.log("ModifyLehrender", selectedId);
this.LoadContent('/category/?cat=Lehrender&view=Detail&id='+ selectedId, 'detail.tpl');
break
case 'ModifyFirmen':
console.log("ModifyFirmen", selectedId);
this.LoadContent('/category/?cat=Firmen&view=Detail&id='+ selectedId, 'detail.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 'DeleteLehrenden':
case 'DeleteLehrender':
console.log("DeleteLehrenden", 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':
console.log("DeleteFirmen", selectedId);
if (confirm("Soll der Eintrag wirklich geloescht werden?")) {
console.log("DELETE");
this.DeleteContent('/category/?cat=Firmen&id='+selectedId, 'categoryFirmen');
}
break
case 'SaveCategoryStudenten':
var data = $("#idForm").serialize();
this.SaveContent('/category/?cat=Studenten&'+data, 'categoryStudenten');
break
case 'SaveCategoryLehrende':
var data = $("#idForm").serialize();
this.SaveContent('/category/?cat=Lehrender&'+data, 'categoryLehrender');
break
case 'SaveCategoryFirmen':
var data = $("#idForm").serialize();
this.SaveContent('/category/?cat=Firmen&'+data, 'categoryFirmen');
break
default:
@ -139,10 +175,10 @@ class PPM
context: this
})
.done(function (json) {
//console.log("JSON: ", json);
console.log("JSON: ", json);
var result = this.TemplateManager_o.execute_px( template, json );
//console.log("RESULT: ", result);
console.log("RESULT: ", result);
//$( ".clContent" ).replaceWith(result);
$( ".clContent" ).empty();
@ -150,10 +186,42 @@ class PPM
this.BodyTableSelect();
console.log("TM DONE");
})
.fail(function(jqXHR_opl, textStatus_spl) {
alert( "[PPM] Fehler bei Anforderung: " + textStatus_spl );
.fail(function(jqXHR_opl, textStatus) {
alert( "[PPM] Fehler bei Anforderung: " + textStatus );
});
}
SaveContent( path, menu )
{
$.ajax({
dataType: "json",
url: path,
type: 'POST',
context: this
})
.done(function (json) {
this.Menu(menu);
})
.fail(function(jqXHR_opl, textStatus) {
alert( "[PPM] Fehler bei Anforderung: " + textStatus );
});
}
DeleteContent( path, menu )
{
$.ajax({
dataType: "json",
url: path,
type: 'DELETE',
context: this
})
.done(function (json) {
this.Menu(menu);
})
.fail(function(jqXHR_opl, textStatus) {
alert( "[PPM] Fehler bei Anforderung: " + textStatus );
});
}
}

View File

@ -0,0 +1,58 @@
<h2 id="idContentHeader" class="clContentHeader">
#context['category']#: Ihre Daten
</h2>
<form id="idForm" class="clContent" method="POST">
<div id="idContentArea" class="clContentArea">
<input type="hidden" value="#context['id']#" id="id" name="id" />
@if context['category'] != 'Angebote'@
@for field in context['content']@
@if field!='id' && field!='Status'@
<div class="clFormRow">
<label for="#field#">#field#</label>
<input type="text" value=
@if context['content'][field] != field@
"#context['content'][field]#" id="#field#" name="#field#" />
@else@
"" id="#field#" name="#field#" />
@endif@
</div>
@endif@
@endfor@
@else@
<input type="hidden" value="Angebot" id="Status" name="Status" />
<input type="hidden" value="" id="Zeitraum" name="ZeitraumVon" />
<input type="hidden" value="" id="Zeitraum" name="ZeitraumBis" />
<input type="hidden" value="" id="Student" name="Student" />
<input type="hidden" value="" id="Lehrender" name="Lehrender" />
@for field in context['content']@
@if field!='id' && field!='Status' && field!='ZeitraumVon' && field!='ZeitraumBis' && field!='Lehrender' && field!='Student'@
<div class="clFormRow">
<label for="#field#">#field#</label>
@if field!='Firma'@
<input type="text" value=
@if context['content'][field] != field@
"#context['content'][field]#" id="#field#" name="#field#" />
@else@
"" id="#field#" name="#field#" />
@endif@
@else@
<select name="Firma" form="idForm">
@for option in context['Firmen']@
<option value="#context['Firmen'][option]['Name']#">#context['Firmen'][option]['Name']#</option>
@endfor@
</select>
@endif@
</div>
@endif@
@endfor@
@endif@
</div>
<div id="idButtonArea" class="clButtonArea">
<a data-action="index" title="Zur&uumlck zur Startseite">Zur&uumlck zur Startseite</a>
<a data-action="category#context['category']#" title="Zurueck zur &uumlbersicht">Zur&uumlck zur &uumlbersicht</a>
<a data-action="SaveCategory#context['category']#" title="Speichern">Speichern</a>
</div>
</form>