Select Git revision
-
Alexa Valentová authoredAlexa Valentová authored
forms.py 4.17 KiB
import djhacker
import dal.autocomplete
from django import forms
from django.core.exceptions import ValidationError
from webpack_loader.loader import WebpackLoader
from .models import Contract, ContracteeSignature, SigneeSignature
class ContractAdminForm(forms.ModelForm):
class Media:
js = (
"shared/runtime.js",
"shared/shared.js",
"shared/admin_contract_form.js",
)
class Meta:
widgets = {
"summary": forms.Textarea(attrs={
"rows": 2
}),
}
class ContractFileAdminForm(forms.ModelForm):
class Media:
js = (
"shared/admin_contract_file_form.js",
);
class Meta:
widgets = {
"name": forms.TextInput(attrs={
"list": "file-types"
}),
}
class SigneeAdminForm(forms.ModelForm):
class Media:
js = (
"shared/runtime.js",
"shared/shared.js",
"shared/admin_signee_form.js",
)
def clean(self):
cleaned_data = super().clean()
if cleaned_data.get("entity_type") == "natural_person":
if cleaned_data.get("ico_number") is not None:
raise ValidationError({"ico_number": "IČO nesmí být pro fyzické osoby definováno."})
if cleaned_data.get("department") is not None:
raise ValidationError({"department": "Organizační složka nesmí být pro fyzické osoby definována."})
if cleaned_data.get("date_of_birth") is None:
raise ValidationError({"date_of_birth": "Datum narození musí pro fyzické osoby být definováno."})
if cleaned_data.get("entity_type") == "business_natural_person":
if cleaned_data.get("ico_number") is None:
raise ValidationError({"ico_number": "IČO musí být pro podnikající fyzické osoby definováno."})
if cleaned_data.get("department") is not None:
raise ValidationError({"department": "Organizační složka nesmí být pro podnikající fyzické osoby definována."})
if cleaned_data.get("date_of_birth") is not None:
raise ValidationError({"date_of_birth": "Datum narození nesmí pro podnikající fyzické osoby být definováno."})
if cleaned_data.get("entity_type") == "legal_entity":
if cleaned_data.get("ico_number") is None:
raise ValidationError({"ico_number": "IČO musí být pro právnické osoby definováno."})
if cleaned_data.get("date_of_birth") is not None:
raise ValidationError({"date_of_birth": "Datum narození nesmí pro právnické osoby být definováno."})
return cleaned_data
# BEGIN Autocompleted Contract fields
djhacker.formfield(
Contract.primary_contract,
forms.ModelChoiceField,
widget=dal.autocomplete.ModelSelect2(
url="contracts:select2_djhacker_contract_autocomplete"
)
)
djhacker.formfield(
Contract.filing_area,
forms.ModelChoiceField,
widget=dal.autocomplete.ModelSelect2(
url="contracts:select2_djhacker_contract_filing_area_autocomplete"
)
)
djhacker.formfield(
Contract.issues,
forms.ModelMultipleChoiceField,
widget=dal.autocomplete.ModelSelect2Multiple(
url="contracts:select2_djhacker_contract_issue_autocomplete"
)
)
djhacker.formfield(
Contract.types,
forms.ModelMultipleChoiceField,
widget=dal.autocomplete.ModelSelect2Multiple(
url="contracts:select2_djhacker_contract_type_autocomplete"
)
)
# END Autocompleted Contract fields
# BEGIN Autocompleted ContracteeSignature / SigneeSignature fields
djhacker.formfield(
ContracteeSignature.contractee,
forms.ModelChoiceField,
widget=dal.autocomplete.ModelSelect2(
url="contracts:select2_djhacker_contractee_signature_autocomplete"
)
)
djhacker.formfield(
SigneeSignature.signee,
forms.ModelChoiceField,
widget=dal.autocomplete.ModelSelect2(
url="contracts:select2_djhacker_signee_signature_autocomplete"
)
)
# END Autocompleted ContracteeSignature / SigneeSignature fields