generated from coulomb/repo-seed
92 lines
4.2 KiB
Python
92 lines
4.2 KiB
Python
from django import forms
|
|
|
|
from .models import Aufgabe, Bieterfrage, ExternalIssue
|
|
|
|
|
|
class AufgabeForm(forms.ModelForm):
|
|
class Meta:
|
|
model = Aufgabe
|
|
fields = [
|
|
'titel', 'beschreibung', 'typ', 'phase', 'prioritaet', 'frist',
|
|
'verantwortlicher', 'los', 'anforderung', 'bieterfrage',
|
|
]
|
|
widgets = {
|
|
'titel': forms.TextInput(attrs={'class': 'form-input', 'autofocus': True}),
|
|
'beschreibung': forms.Textarea(attrs={'class': 'form-input', 'rows': 3}),
|
|
'typ': forms.Select(attrs={'class': 'form-input'}),
|
|
'phase': forms.Select(attrs={'class': 'form-input'}),
|
|
'prioritaet': forms.RadioSelect(),
|
|
'frist': forms.DateInput(attrs={'class': 'form-input', 'type': 'date'}),
|
|
'verantwortlicher': forms.Select(attrs={'class': 'form-input'}),
|
|
'los': forms.Select(attrs={'class': 'form-input'}),
|
|
'anforderung': forms.Select(attrs={'class': 'form-input'}),
|
|
'bieterfrage': forms.Select(attrs={'class': 'form-input'}),
|
|
}
|
|
|
|
def __init__(self, *args, ausschreibung=None, **kwargs):
|
|
super().__init__(*args, **kwargs)
|
|
if ausschreibung is not None:
|
|
from vergabe_teilnahme.apps.lose.models import Anforderung, Los
|
|
self.fields['los'].queryset = Los.objects.filter(ausschreibung=ausschreibung)
|
|
self.fields['anforderung'].queryset = Anforderung.objects.filter(ausschreibung=ausschreibung)
|
|
self.fields['bieterfrage'].queryset = Bieterfrage.objects.filter(ausschreibung=ausschreibung)
|
|
self.fields['beschreibung'].required = False
|
|
self.fields['phase'].required = False
|
|
self.fields['frist'].required = False
|
|
self.fields['verantwortlicher'].required = False
|
|
self.fields['los'].required = False
|
|
self.fields['anforderung'].required = False
|
|
self.fields['bieterfrage'].required = False
|
|
|
|
|
|
class BieterfragenForm(forms.ModelForm):
|
|
class Meta:
|
|
model = Bieterfrage
|
|
fields = ['fragentext', 'begruendung', 'prioritaet', 'anforderung', 'dokument', 'verfasser']
|
|
widgets = {
|
|
'fragentext': forms.Textarea(attrs={'class': 'form-input', 'rows': 4, 'autofocus': True}),
|
|
'begruendung': forms.Textarea(attrs={'class': 'form-input', 'rows': 3}),
|
|
'prioritaet': forms.RadioSelect(),
|
|
'anforderung': forms.Select(attrs={'class': 'form-input'}),
|
|
'dokument': forms.Select(attrs={'class': 'form-input'}),
|
|
'verfasser': forms.Select(attrs={'class': 'form-input'}),
|
|
}
|
|
|
|
def __init__(self, *args, ausschreibung=None, **kwargs):
|
|
super().__init__(*args, **kwargs)
|
|
if ausschreibung is not None:
|
|
from vergabe_teilnahme.apps.lose.models import Anforderung
|
|
from vergabe_teilnahme.apps.dokumente.models import Dokument
|
|
self.fields['anforderung'].queryset = Anforderung.objects.filter(ausschreibung=ausschreibung)
|
|
self.fields['dokument'].queryset = Dokument.objects.filter(ausschreibung=ausschreibung)
|
|
self.fields['begruendung'].required = False
|
|
self.fields['anforderung'].required = False
|
|
self.fields['dokument'].required = False
|
|
self.fields['verfasser'].required = False
|
|
|
|
|
|
class AufgabenVerknuepfungForm(forms.Form):
|
|
ziel_typ = forms.ChoiceField(choices=[], label='Typ')
|
|
ziel_id = forms.IntegerField(label='Objekt-ID', widget=forms.HiddenInput())
|
|
kommentar = forms.CharField(
|
|
widget=forms.Textarea(attrs={'class': 'form-input', 'rows': 2, 'placeholder': 'Kommentar (optional)'}),
|
|
required=False,
|
|
label='Kommentar',
|
|
)
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
super().__init__(*args, **kwargs)
|
|
from .link_registry import ziel_choices
|
|
self.fields['ziel_typ'].choices = [('', '— Typ wählen —')] + ziel_choices()
|
|
self.fields['ziel_typ'].widget.attrs.update({'class': 'form-input'})
|
|
|
|
|
|
class ExternalIssueForm(forms.ModelForm):
|
|
class Meta:
|
|
model = ExternalIssue
|
|
fields = ['notizen']
|
|
widgets = {
|
|
'notizen': forms.Textarea(attrs={'class': 'form-input', 'rows': 2,
|
|
'placeholder': 'Notizen (optional)'}),
|
|
}
|