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)'}), }