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" } 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): 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']