-
-
-
-
- {% include 'planungsparameter/mandantendaten.html' %}
+ {% define '' as show %}
+ {% for key,value in formlist.items %}
+ {% define value|lookup:'form' as myform %}
+ {% define value|lookup:'modelname' as modelname %}
+ {% define value|lookup:'description' as description %}
+
+
+
+
+ {% include 'planungsparameter/mandantendaten.html' %}
+
-
-
-
-
-
-
-
- {% include 'planungsparameter/summary.html' %}
-
-
-
-
-
-
-
- {% include 'planungsparameter/companydata.html' %}
-
-
-
+
+ {% endfor %}
-
{% endblock content %}
\ No newline at end of file
diff --git a/UGSdjangoProject/ugssim/templates/planungsparameter/summary.html b/UGSdjangoProject/ugssim/templates/planungsparameter/summary.html
index c78a4b9..5eb76a6 100644
--- a/UGSdjangoProject/ugssim/templates/planungsparameter/summary.html
+++ b/UGSdjangoProject/ugssim/templates/planungsparameter/summary.html
@@ -1,6 +1,5 @@
\ No newline at end of file
diff --git a/UGSdjangoProject/ugssim/templates/ugssim/ugssim.html b/UGSdjangoProject/ugssim/templates/ugssim/ugssim.html
index 98f55b7..3574b57 100644
--- a/UGSdjangoProject/ugssim/templates/ugssim/ugssim.html
+++ b/UGSdjangoProject/ugssim/templates/ugssim/ugssim.html
@@ -1,4 +1,5 @@
-{% load static %}
+{% load i18n l10n static read_dictonary %}
+
@@ -18,5 +19,5 @@
{% include 'ugssim/navigation.html' %}
{% block content %}
{% endblock %}
-
+
\ No newline at end of file
diff --git a/UGSdjangoProject/ugssim/templatetags/__init__.py b/UGSdjangoProject/ugssim/templatetags/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/UGSdjangoProject/ugssim/templatetags/read_dictonary.py b/UGSdjangoProject/ugssim/templatetags/read_dictonary.py
new file mode 100644
index 0000000..eaf4978
--- /dev/null
+++ b/UGSdjangoProject/ugssim/templatetags/read_dictonary.py
@@ -0,0 +1,28 @@
+from django import template
+from django.template.loader_tags import register
+
+register = template.Library()
+
+
+@register.filter(name='lookup')
+def lookup(value, arg):
+ """
+ Returns the value to key of a dictionary
+
+ :param value: The dictonary to perform the lookup on.
+ :param arg: The key used to perform the lookup.
+ :return: The value of the lookup operation.
+
+ """
+ return value[arg]
+
+
+@register.simple_tag
+def define(val=None):
+ """
+ Assigns the given value to a variable.
+
+ :param val: The value to assign. If not provided, the value will be None.
+ :return: The assigned value.
+ """
+ return val
diff --git a/UGSdjangoProject/ugssim/views.py b/UGSdjangoProject/ugssim/views.py
index bd1ce35..b605a19 100644
--- a/UGSdjangoProject/ugssim/views.py
+++ b/UGSdjangoProject/ugssim/views.py
@@ -5,14 +5,11 @@ from django.shortcuts import render
from .form import *
from .models import *
from django.forms.models import model_to_dict
+import sys
-from django.views.generic import TemplateView
-
-# from ugssim.form import NameForm
-
-
-# Create your views here.
+def get_class(classname):
+ return getattr(sys.modules[__name__], classname)
def index(request):
@@ -20,34 +17,44 @@ def index(request):
def planungsparameter(request):
- addressForm = AddressForm()
- summaryForm = SummaryForm()
- companyDataForm = CompanyDataForm()
- if request.method == "POST":
- rp = request.POST
- if 'addressButton' in rp:
- addressForm = AddressForm(request.POST)
- if addressForm.is_valid():
- #Address.objects.create(**addressForm.cleaned_data)
- addressForm.save()
- elif 'summaryButton' in rp:
- summaryForm = SummaryForm(request.POST)
- if summaryForm.is_valid():
- Summary.objects.update(**summaryForm.cleaned_data)
- elif 'companyDataButton' in rp:
- companyDataForm = CompanyDataForm(request.POST)
- if companyDataForm.is_valid():
- CompanyData.objects.update(**companyDataForm.cleaned_data)
- else:
- initial = model_to_dict(Address.objects.filter(id=1).first())
- addressForm = AddressForm(initial=initial)
-
+ '''
+ 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 = {
- 'addressForm': addressForm,
- 'summaryForm': summaryForm,
- 'companyDataForm': companyDataForm
-
+ 'formlist': formlist
}
return render(request, 'planungsparameter/planungsparameter.html', context)