# 129 Handler code
* adds handler code list usage to forms and models * updates tests * extends API for handler code handling
This commit is contained in:
@@ -13,10 +13,10 @@ from django.utils.translation import gettext_lazy as _
|
||||
from django import forms
|
||||
|
||||
from codelist.models import KonovaCode
|
||||
from codelist.settings import CODELIST_CONSERVATION_OFFICE_ID
|
||||
from codelist.settings import CODELIST_CONSERVATION_OFFICE_ID, CODELIST_COMPENSATION_HANDLER_ID
|
||||
from compensation.models import Compensation, EcoAccount
|
||||
from intervention.inputs import GenerateInput
|
||||
from intervention.models import Intervention, Responsibility, Legal
|
||||
from intervention.models import Intervention, Responsibility, Legal, Handler
|
||||
from konova.forms import BaseForm, SimpleGeomForm
|
||||
from konova.utils.message_templates import EDITED_GENERAL_DATA, COMPENSATION_ADDED_TEMPLATE
|
||||
from user.models import UserActionLogEntry
|
||||
@@ -101,12 +101,30 @@ class CompensationResponsibleFormMixin(forms.Form):
|
||||
}
|
||||
)
|
||||
)
|
||||
handler = forms.CharField(
|
||||
label=_("Eco-account handler"),
|
||||
|
||||
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_COMPENSATION_HANDLER_ID],
|
||||
),
|
||||
widget=autocomplete.ModelSelect2(
|
||||
url="codes-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=_("Who handles the eco-account"),
|
||||
help_text=_("Detail input on the handler"),
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
"placeholder": _("Company Mustermann"),
|
||||
@@ -345,7 +363,8 @@ class NewEcoAccountForm(AbstractCompensationForm, CompensationResponsibleFormMix
|
||||
"registration_date",
|
||||
"surface",
|
||||
"conservation_file_number",
|
||||
"handler",
|
||||
"handler_type",
|
||||
"handler_detail",
|
||||
"comment",
|
||||
]
|
||||
|
||||
@@ -368,7 +387,8 @@ class NewEcoAccountForm(AbstractCompensationForm, CompensationResponsibleFormMix
|
||||
identifier = self.cleaned_data.get("identifier", None)
|
||||
title = self.cleaned_data.get("title", None)
|
||||
registration_date = self.cleaned_data.get("registration_date", None)
|
||||
handler = self.cleaned_data.get("handler", None)
|
||||
handler_type = self.cleaned_data.get("handler_type", None)
|
||||
handler_detail = self.cleaned_data.get("handler_detail", None)
|
||||
surface = self.cleaned_data.get("surface", None)
|
||||
conservation_office = self.cleaned_data.get("conservation_office", None)
|
||||
conservation_file_number = self.cleaned_data.get("conservation_file_number", None)
|
||||
@@ -379,6 +399,11 @@ class NewEcoAccountForm(AbstractCompensationForm, CompensationResponsibleFormMix
|
||||
# Process the geometry form
|
||||
geometry = geom_form.save(action)
|
||||
|
||||
handler = Handler.objects.create(
|
||||
type=handler_type,
|
||||
detail=handler_detail,
|
||||
)
|
||||
|
||||
responsible = Responsibility.objects.create(
|
||||
handler=handler,
|
||||
conservation_file_number=conservation_file_number,
|
||||
@@ -423,11 +448,13 @@ class EditEcoAccountForm(NewEcoAccountForm):
|
||||
reg_date = self.instance.legal.registration_date
|
||||
if reg_date is not None:
|
||||
reg_date = reg_date.isoformat()
|
||||
|
||||
form_data = {
|
||||
"identifier": self.instance.identifier,
|
||||
"title": self.instance.title,
|
||||
"surface": self.instance.deductable_surface,
|
||||
"handler": self.instance.responsible.handler,
|
||||
"handler_type": self.instance.responsible.handler.type,
|
||||
"handler_detail": self.instance.responsible.handler.detail,
|
||||
"registration_date": reg_date,
|
||||
"conservation_office": self.instance.responsible.conservation_office,
|
||||
"conservation_file_number": self.instance.responsible.conservation_file_number,
|
||||
@@ -445,7 +472,8 @@ class EditEcoAccountForm(NewEcoAccountForm):
|
||||
identifier = self.cleaned_data.get("identifier", None)
|
||||
title = self.cleaned_data.get("title", None)
|
||||
registration_date = self.cleaned_data.get("registration_date", None)
|
||||
handler = self.cleaned_data.get("handler", None)
|
||||
handler_type = self.cleaned_data.get("handler_type", None)
|
||||
handler_detail = self.cleaned_data.get("handler_detail", None)
|
||||
surface = self.cleaned_data.get("surface", None)
|
||||
conservation_office = self.cleaned_data.get("conservation_office", None)
|
||||
conservation_file_number = self.cleaned_data.get("conservation_file_number", None)
|
||||
@@ -458,7 +486,9 @@ class EditEcoAccountForm(NewEcoAccountForm):
|
||||
geometry = geom_form.save(action)
|
||||
|
||||
# Update responsible data
|
||||
self.instance.responsible.handler = handler
|
||||
self.instance.responsible.handler.type = handler_type
|
||||
self.instance.responsible.handler.detail = handler_detail
|
||||
self.instance.responsible.handler.save()
|
||||
self.instance.responsible.conservation_office = conservation_office
|
||||
self.instance.responsible.conservation_file_number = conservation_file_number
|
||||
self.instance.responsible.save()
|
||||
|
||||
Reference in New Issue
Block a user