You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
2.9 KiB
92 lines
2.9 KiB
from django.shortcuts import render
|
|
from django.http import HttpResponse
|
|
from django.template import loader
|
|
from django.shortcuts import render
|
|
from .form import *
|
|
from .models import *
|
|
from django.forms.models import model_to_dict
|
|
import sys
|
|
|
|
|
|
def get_class(classname):
|
|
return getattr(sys.modules[__name__], classname)
|
|
|
|
|
|
def index(request):
|
|
return render(request, 'ugssim/home.html')
|
|
|
|
|
|
def planungsparameter(request):
|
|
'''
|
|
Die Erzeugung der Webformulare soll dynamisch auf Basis der Model und Form Klassen
|
|
geschehen.
|
|
Dafür wird eine Liste mit den Klassenname der Models angelegt über die iteriert wird
|
|
Über die Funktion get_class(classname) erhält man das Klassenobjekt
|
|
modelclass für das Model
|
|
formclass für das Form
|
|
über diese wird dann iterierter.
|
|
Ein Formularfeld 'description' ist bei jedem Formular vorhanden, da die aber nicht
|
|
in der Datenbank /Model vorhanden ist. Daher wird dieses Feld entfernt (pop)
|
|
'''
|
|
formlist = {}
|
|
modellist = ['Address', 'Summary', 'CompanyData']
|
|
for modelname in modellist:
|
|
# globals()[ + 'Form'] = get_class( + 'Form')
|
|
modelclass = get_class(modelname)
|
|
formclass = get_class(modelname + 'Form')
|
|
if request.method == "POST":
|
|
rp = request.POST
|
|
if modelname + 'Button' in rp:
|
|
form = formclass(request.POST)
|
|
form.fields.pop('description')
|
|
if form.is_valid():
|
|
modelclass.objects.update(**form.cleaned_data)
|
|
else:
|
|
initial = {'description': 'Tester'}
|
|
# initial.update(model_to_dict(modelclass.objects.filter(id=1).first()))
|
|
form = formclass()
|
|
formpart = {
|
|
'modelname': modelname,
|
|
'form': form,
|
|
'heading': 'Mandatendaten2',
|
|
'description': 'Dict Descriptiopn'
|
|
}
|
|
formlist.update({modelname + "form": formpart})
|
|
|
|
context = {
|
|
'formlist': formlist
|
|
}
|
|
|
|
return render(request, 'planungsparameter/planungsparameter.html', context)
|
|
|
|
|
|
def companydata(request):
|
|
template = loader.get_template('ugssim/companydata.html')
|
|
return HttpResponse(template.render(request))
|
|
|
|
|
|
def input(request):
|
|
template = loader.get_template('ugssim/companydata.html')
|
|
return HttpResponse(template.render(request))
|
|
|
|
|
|
'''
|
|
def get_name(request):
|
|
if request.method == 'POST':
|
|
form = NameForm(request.POST)
|
|
if form.is_valid():
|
|
return HttpResponse(f"Hello, {form.your_name}!")
|
|
else:
|
|
form = NameForm()
|
|
return render(request, 'ugssim/name.html', {'form': form})
|
|
'''
|
|
|
|
|
|
def address(request):
|
|
if request.method == 'POST':
|
|
form = AddressForm(request.POST)
|
|
if form.is_valid():
|
|
form.save()
|
|
else:
|
|
form = AddressForm()
|
|
return render(request, 'ugssim/address.html', {'form': form})
|
|
|