diff --git a/compensation/forms.py b/compensation/forms.py index 79a933dd..ef2943be 100644 --- a/compensation/forms.py +++ b/compensation/forms.py @@ -97,11 +97,21 @@ class NewPaymentForm(BaseModalForm): class NewStateModalForm(BaseModalForm): - biotope_type = forms.CharField( + biotope_type = forms.ModelChoiceField( label=_("Biotope Type"), label_suffix="", required=True, - help_text=_("Select the biotope type") + help_text=_("Select the biotope type"), + queryset=KonovaCode.objects.filter( + is_active=True, + ), + widget=autocomplete.ModelSelect2( + url="codes-biotope-autocomplete", + attrs={ + "data-placeholder": _("Biotope Type"), + "data-minimum-input-length": 3, + } + ), ) surface = forms.DecimalField( min_value=0.00, diff --git a/compensation/templates/compensation/detail/compensation/view.html b/compensation/templates/compensation/detail/compensation/view.html index 6c9c8953..f0c0c1ad 100644 --- a/compensation/templates/compensation/detail/compensation/view.html +++ b/compensation/templates/compensation/detail/compensation/view.html @@ -2,7 +2,13 @@ {% load i18n l10n static fontawesome_5 humanize %} {% block head %} - + {% comment %} + dal documentation (django-autocomplete-light) states using form.media for adding needed scripts. + This does not work properly with modal forms, as the scripts are not loaded properly inside the modal. + Therefore the script linkages from form.media have been extracted and put inside dal/scripts.html to ensure + these scripts are loaded when needed. + {% endcomment %} + {% include 'dal/scripts.html' %} {% endblock %} {% block body %} diff --git a/konova/urls.py b/konova/urls.py index 18bde91b..99014f39 100644 --- a/konova/urls.py +++ b/konova/urls.py @@ -18,7 +18,7 @@ from django.contrib import admin from django.urls import path, include from konova.autocompletes import OrganisationAutocomplete, NonOfficialOrganisationAutocomplete, EcoAccountAutocomplete, \ - InterventionAutocomplete, CompensationActionCodeAutocomplete + InterventionAutocomplete, CompensationActionCodeAutocomplete, BiotopeCodeAutocomplete from konova.settings import SSO_SERVER, SSO_PUBLIC_KEY, SSO_PRIVATE_KEY, DEBUG from konova.sso.sso import KonovaSSOClient from konova.views import logout_view, home_view, get_document_view, remove_document_view, remove_deadline_view @@ -50,6 +50,7 @@ urlpatterns = [ path("atcmplt/eco-accounts", EcoAccountAutocomplete.as_view(), name="accounts-autocomplete"), path("atcmplt/interventions", InterventionAutocomplete.as_view(), name="interventions-autocomplete"), path("atcmplt/codes/compensation-action", CompensationActionCodeAutocomplete.as_view(), name="codes-compensation-action-autocomplete"), + path("atcmplt/codes/biotope", BiotopeCodeAutocomplete.as_view(), name="codes-biotope-autocomplete"), ] if DEBUG: diff --git a/templates/base.html b/templates/base.html index f13ddc12..1816e05a 100644 --- a/templates/base.html +++ b/templates/base.html @@ -36,7 +36,7 @@ The modal wrapper, which can be used on every view can stay on the base.html template {% endcomment %}