digitaleagenturnc/standards/forms.py

107 lines
3.0 KiB
Python

from django import forms
from django.forms import ModelForm
from .models import Standards
from areas.models import Areas
from tasks.models import Tasks
#from ckeditor.widgets import CKEditorWidget
class StandardAddStandard(forms.ModelForm):
class Meta:
model =Standards
labels = {
"name" : "Titel",
"area" : "Übergeordneter Bereich",
"task" : "Aufgabenbereich",
"content": "Inhalt",
"public" : "Direkt veröffentlichen?"
}
fields = ['name', 'area', 'task', 'content', 'public']
'''
Hier werden die Elemente für die DropDowns erstellt, damit
ein Standard nur einem Aufgabenbereich aus einem Bereich zugewiesen wird.
Damit nach der Auswahl des Bereichs auch eine valide Aufgabe ankommt, wird diese
hier manuel validiert und das Query-Set mit der Bereichsauswahl geladen.
'''
def __init__(self, *args, **kwargs):
super(StandardAddStandard, self).__init__(*args, **kwargs)
self.fields['area'].queryset = Areas.objects.filter(agency__pk=kwargs['instance'].profile.agency.pk)
self.fields['task'].queryset = Tasks.objects.none()
if 'area' in self.data:
try:
areaid = int(self.data.get('area'))
self.fields['task'].queryset = Tasks.objects.filter(area__id=areaid).order_by('name')
except (ValueError, TypeError):
pass
elif self.instance.pk:
self.fields['task'].queryset = Tasks.objects.none()
class StandardAddStandardEditor(forms.ModelForm):
#content = forms.CharField(widget=CKEditorWidget())
class Meta:
model = Standards
labels = {
"content" : "Inhalt"
}
fields = ['content']
class StandardUpdateStandard(forms.ModelForm):
class Meta:
model =Standards
labels = {
"name" : "Titel",
"area" : "Übergeordneter Bereich",
"task" : "Aufgabenbereich",
"content": "Inhalt"
}
fields = ['name', 'area', 'task', 'content']
'''
Hier werden die Elemente für die DropDowns erstellt, damit
ein Standard nur einem Aufgabenbereich aus einem Bereich zugewiesen wird.
Damit nach der Auswahl des Bereichs auch eine valide Aufgabe ankommt, wird diese
hier manuel validiert und das Query-Set mit der Bereichsauswahl geladen.
'''
def __init__(self, *args, **kwargs):
loggeduser = kwargs['instance'].created_standard_by
standard = kwargs['instance']
super(StandardUpdateStandard, self).__init__(*args, **kwargs)
self.fields['area'].queryset = Areas.objects.filter(agency__pk=loggeduser.profile.agency.pk)
# Dummy PK
self.fields['task'].queryset = Tasks.objects.filter(area__pk=standard.area.pk)
if 'area' in self.data:
try:
areaid = int(self.data.get('area'))
self.fields['task'].queryset = Tasks.objects.filter(area__id=areaid).order_by('name')
except (ValueError, TypeError):
pass
elif loggeduser.pk:
self.fields['task'].queryset = Tasks.objects.filter(area__pk=standard.area.pk)
class StandardUpdateStandardEditor(forms.ModelForm):
#content = forms.CharField(widget=CKEditorWidget())
class Meta:
model = Standards
labels = {
"content" : "Inhalt"
}
fields = ['content']