133 lines
4.6 KiB
Python
133 lines
4.6 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 django.contrib.auth.models import User
|
|
from users.models import Profile, UserFullName
|
|
from django_summernote.widgets import SummernoteInplaceWidget
|
|
|
|
|
|
|
|
class StandardAddStandard(forms.ModelForm):
|
|
|
|
class Meta:
|
|
model =Standards
|
|
widgets = {
|
|
'content': SummernoteInplaceWidget()
|
|
}
|
|
labels = {
|
|
"name" : "Titel",
|
|
"area" : "Übergeordneter Bereich",
|
|
"task" : "Tätigkeitsbereich",
|
|
"content": "Inhalt",
|
|
"public" : "Direkt veröffentlichen?",
|
|
"representative" : "Vertreter",
|
|
"executor" : "Ausführender",
|
|
"authority" : "Verantwortlicher",
|
|
}
|
|
fields = ['name', 'area', 'task', 'content', 'public', "authority", "executor", "representative"]
|
|
|
|
'''
|
|
|
|
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()
|
|
|
|
self.fields['representative'].queryset = UserFullName.objects.filter(profile__agency__pk=kwargs['instance'].profile.agency.pk)
|
|
self.fields['executor'].queryset = UserFullName.objects.filter(profile__agency__pk=kwargs['instance'].profile.agency.pk)
|
|
self.fields['authority'].queryset = UserFullName.objects.filter(profile__agency__pk=kwargs['instance'].profile.agency.pk)
|
|
|
|
self.fields['checked_groups'] = forms.CharField(initial="", required=False, widget=forms.HiddenInput())
|
|
self.fields['added_files'] = forms.CharField(initial="", required=False, widget=forms.HiddenInput())
|
|
self.fields['added_standards'] = forms.CharField(initial="", required=False, widget=forms.HiddenInput())
|
|
|
|
|
|
class StandardAddStandardEditor(forms.ModelForm):
|
|
|
|
class Meta:
|
|
model = Standards
|
|
widgets = {
|
|
'content': SummernoteInplaceWidget(),
|
|
}
|
|
labels = {
|
|
"content" : "Inhalt"
|
|
}
|
|
fields = ['content']
|
|
|
|
class StandardUpdateStandard(forms.ModelForm):
|
|
|
|
class Meta:
|
|
model =Standards
|
|
widgets = {
|
|
'content': SummernoteInplaceWidget()
|
|
}
|
|
labels = {
|
|
"name" : "Titel",
|
|
"area" : "Übergeordneter Bereich",
|
|
"task" : "Tätigkeitsbereich",
|
|
"content": "Inhalt",
|
|
"representative" : "Vertreter",
|
|
"executor" : "Ausführender",
|
|
"authority" : "Verantwortlicher",
|
|
}
|
|
fields = ['name', 'area', 'task', 'content', "authority", "executor", "representative"]
|
|
'''
|
|
|
|
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)
|
|
|
|
self.fields['representative'].queryset = UserFullName.objects.filter(profile__agency__pk=loggeduser.profile.agency.pk)
|
|
self.fields['executor'].queryset = UserFullName.objects.filter(profile__agency__pk=loggeduser.profile.agency.pk)
|
|
self.fields['authority'].queryset = UserFullName.objects.filter(profile__agency__pk=loggeduser.profile.agency.pk)
|
|
|
|
|
|
class StandardUpdateStandardEditor(forms.ModelForm):
|
|
|
|
class Meta:
|
|
model = Standards
|
|
widgets = {
|
|
'content': SummernoteInplaceWidget()
|
|
}
|
|
labels = {
|
|
"content" : "Inhalt"
|
|
}
|
|
fields = ['content'] |