mpeltriaux
d785285805
* refactors konova/autocompletes.py by splitting into individual files and moving them to fitting apps * autocomplete files now live in APPNAME/autocomplete/...
117 lines
3.5 KiB
Python
117 lines
3.5 KiB
Python
"""
|
|
Author: Michel Peltriaux
|
|
Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany
|
|
Contact: ksp-servicestelle@sgdnord.rlp.de
|
|
Created on: 18.08.22
|
|
|
|
"""
|
|
from dal import autocomplete
|
|
from django import forms
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
from codelist.models import KonovaCode
|
|
from codelist.settings import CODELIST_CONSERVATION_OFFICE_ID, CODELIST_HANDLER_ID
|
|
|
|
|
|
class CompensationResponsibleFormMixin(forms.Form):
|
|
""" Encapsulates form fields used in different compensation related models like EcoAccount or EMA
|
|
|
|
"""
|
|
conservation_office = forms.ModelChoiceField(
|
|
label=_("Conservation office"),
|
|
label_suffix="",
|
|
help_text=_("Select the responsible office"),
|
|
queryset=KonovaCode.objects.filter(
|
|
is_archived=False,
|
|
is_leaf=True,
|
|
code_lists__in=[CODELIST_CONSERVATION_OFFICE_ID],
|
|
),
|
|
widget=autocomplete.ModelSelect2(
|
|
url="codelist:conservation-office-autocomplete",
|
|
attrs={
|
|
"data-placeholder": _("Click for selection")
|
|
}
|
|
),
|
|
)
|
|
conservation_file_number = forms.CharField(
|
|
label=_("Conservation office file number"),
|
|
label_suffix="",
|
|
max_length=255,
|
|
required=False,
|
|
widget=forms.TextInput(
|
|
attrs={
|
|
"placeholder": _("ETS-123/ABC.456"),
|
|
"class": "form-control",
|
|
}
|
|
)
|
|
)
|
|
|
|
handler_type = forms.ModelChoiceField(
|
|
label=_("Eco-Account handler type"),
|
|
label_suffix="",
|
|
help_text=_("What type of handler is responsible for the ecoaccount?"),
|
|
required=False,
|
|
queryset=KonovaCode.objects.filter(
|
|
is_archived=False,
|
|
is_leaf=True,
|
|
code_lists__in=[CODELIST_HANDLER_ID],
|
|
),
|
|
widget=autocomplete.ModelSelect2(
|
|
url="codelist:handler-autocomplete",
|
|
attrs={
|
|
"data-placeholder": _("Click for selection"),
|
|
}
|
|
),
|
|
)
|
|
handler_detail = forms.CharField(
|
|
label=_("Eco-Account handler detail"),
|
|
label_suffix="",
|
|
max_length=255,
|
|
required=False,
|
|
help_text=_("Detail input on the handler"),
|
|
widget=forms.TextInput(
|
|
attrs={
|
|
"placeholder": _("Company Mustermann"),
|
|
"class": "form-control",
|
|
}
|
|
)
|
|
)
|
|
|
|
|
|
class CEFCompensationFormMixin(forms.Form):
|
|
""" A form mixin, providing CEF compensation field
|
|
|
|
"""
|
|
is_cef = forms.BooleanField(
|
|
label_suffix="",
|
|
label=_("Is CEF"),
|
|
help_text=_("Optionally: Whether this compensation is a CEF compensation?"),
|
|
required=False,
|
|
widget=forms.CheckboxInput()
|
|
)
|
|
|
|
|
|
class CoherenceCompensationFormMixin(forms.Form):
|
|
""" A form mixin, providing coherence compensation field
|
|
|
|
"""
|
|
is_coherence_keeping = forms.BooleanField(
|
|
label_suffix="",
|
|
label=_("Is coherence keeping"),
|
|
help_text=_("Optionally: Whether this compensation is a coherence keeping compensation?"),
|
|
required=False,
|
|
widget=forms.CheckboxInput()
|
|
)
|
|
|
|
|
|
class PikCompensationFormMixin(forms.Form):
|
|
""" A form mixin, providing PIK compensation field
|
|
|
|
"""
|
|
is_pik = forms.BooleanField(
|
|
label_suffix="",
|
|
label=_("Is PIK"),
|
|
help_text=_("Optionally: Whether this compensation is a compensation integrated in production?"),
|
|
required=False,
|
|
widget=forms.CheckboxInput()
|
|
) |