Merge branch 'master' into 138_New_map_client
# Conflicts: # konova/models/geometry.py # konova/urls.py # locale/de/LC_MESSAGES/django.mo # locale/de/LC_MESSAGES/django.po
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
from django import forms
|
||||
from codelist.models import KonovaCode
|
||||
from codelist.settings import CODELIST_COMPENSATION_ACTION_ID
|
||||
from codelist.settings import CODELIST_COMPENSATION_ACTION_ID, CODELIST_BIOTOPES_ID
|
||||
|
||||
|
||||
class DummyFilterInput(forms.HiddenInput):
|
||||
@@ -38,7 +38,17 @@ class TreeCheckboxSelectMultiple(forms.CheckboxSelectMultiple):
|
||||
""" Provides multiple selection of parent-child data
|
||||
|
||||
"""
|
||||
template_name = "konova/widgets/checkbox-tree-select.html"
|
||||
template_name = "konova/widgets/tree/checkbox/checkbox-tree-select.html"
|
||||
|
||||
class meta:
|
||||
abstract = True
|
||||
|
||||
|
||||
class TreeRadioSelect(forms.RadioSelect):
|
||||
""" Provides single selection of parent-child data
|
||||
|
||||
"""
|
||||
template_name = "konova/widgets/tree/radio/radio-tree-select.html"
|
||||
|
||||
class meta:
|
||||
abstract = True
|
||||
@@ -68,6 +78,30 @@ class KonovaCodeTreeCheckboxSelectMultiple(TreeCheckboxSelectMultiple):
|
||||
return context
|
||||
|
||||
|
||||
class KonovaCodeTreeRadioSelect(TreeRadioSelect):
|
||||
""" Provides single selection of KonovaCode
|
||||
|
||||
"""
|
||||
filter = None
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.code_list = kwargs.pop("code_list", None)
|
||||
self.filter = kwargs.pop("filter", {})
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
def get_context(self, name, value, attrs):
|
||||
context = super().get_context(name, value, attrs)
|
||||
codes = KonovaCode.objects.filter(
|
||||
**self.filter,
|
||||
)
|
||||
codes = [
|
||||
parent_code.add_children()
|
||||
for parent_code in codes
|
||||
]
|
||||
context["codes"] = codes
|
||||
return context
|
||||
|
||||
|
||||
class CompensationActionTreeCheckboxSelectMultiple(KonovaCodeTreeCheckboxSelectMultiple):
|
||||
""" Provides multiple selection of CompensationActions
|
||||
|
||||
@@ -79,4 +113,31 @@ class CompensationActionTreeCheckboxSelectMultiple(KonovaCodeTreeCheckboxSelectM
|
||||
self.filter = {
|
||||
"code_lists__in": [CODELIST_COMPENSATION_ACTION_ID],
|
||||
"parent": None,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class CompensationStateTreeRadioSelect(KonovaCodeTreeRadioSelect):
|
||||
""" Provides single selection of CompensationState
|
||||
|
||||
"""
|
||||
filter = None
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
self.filter = {
|
||||
"code_lists__in": [CODELIST_BIOTOPES_ID],
|
||||
"parent": None,
|
||||
"is_archived": False,
|
||||
}
|
||||
|
||||
def get_context(self, name, value, attrs):
|
||||
context = super().get_context(name, value, attrs)
|
||||
codes = KonovaCode.objects.filter(
|
||||
**self.filter,
|
||||
)
|
||||
codes = [
|
||||
parent_code.add_children("short_name")
|
||||
for parent_code in codes
|
||||
]
|
||||
context["codes"] = codes
|
||||
return context
|
||||
@@ -145,7 +145,6 @@ class Intervention(BaseObject, ShareableObjectMixin, RecordableObjectMixin, Chec
|
||||
def set_recorded(self, user: User) -> UserActionLogEntry:
|
||||
log_entry = super().set_recorded(user)
|
||||
self.add_log_entry_to_compensations(log_entry)
|
||||
self.send_data_to_egon()
|
||||
return log_entry
|
||||
|
||||
def add_log_entry_to_compensations(self, log_entry: UserActionLogEntry):
|
||||
@@ -183,6 +182,8 @@ class Intervention(BaseObject, ShareableObjectMixin, RecordableObjectMixin, Chec
|
||||
intervention=self,
|
||||
)
|
||||
self.mark_as_edited(user, form.request, edit_comment=PAYMENT_ADDED)
|
||||
|
||||
self.send_data_to_egon()
|
||||
return pay
|
||||
|
||||
def add_revocation(self, form):
|
||||
@@ -347,6 +348,7 @@ class Intervention(BaseObject, ShareableObjectMixin, RecordableObjectMixin, Chec
|
||||
with transaction.atomic():
|
||||
payment.delete()
|
||||
self.mark_as_edited(user, request=form.request, edit_comment=PAYMENT_REMOVED)
|
||||
self.send_data_to_egon()
|
||||
|
||||
|
||||
class InterventionDocument(AbstractDocument):
|
||||
|
||||
@@ -139,7 +139,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
{% include 'konova/includes/parcels.html' %}
|
||||
{% include 'konova/includes/parcels/parcels.html' %}
|
||||
</div>
|
||||
<div class="row">
|
||||
{% include 'konova/includes/comment_card.html' %}
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
{% include 'konova/includes/parcels.html' %}
|
||||
{% include 'konova/includes/parcels/parcels.html' %}
|
||||
</div>
|
||||
<div class="row">
|
||||
{% include 'konova/includes/report/qrcodes.html' %}
|
||||
|
||||
@@ -156,10 +156,20 @@ class EgonGmlBuilder:
|
||||
|
||||
def build_gml(self):
|
||||
comp_type, comp_type_code = self._gen_kompensationsArt()
|
||||
payment_date = self.intervention.payments.first().due_on
|
||||
if payment_date is not None:
|
||||
payment = self.intervention.payments.first()
|
||||
payment_date = None
|
||||
if payment is not None:
|
||||
payment_date = payment.due_on
|
||||
payment_date = payment_date.strftime(DEFAULT_DATE_FORMAT)
|
||||
|
||||
cons_office = self.intervention.responsible.conservation_office
|
||||
reg_office = self.intervention.responsible.registration_office
|
||||
law = self.intervention.legal.laws.first()
|
||||
process_type = self.intervention.legal.process_type
|
||||
handler = self.intervention.responsible.handler
|
||||
reg_date = self.intervention.legal.registration_date
|
||||
bind_date = self.intervention.legal.binding_date
|
||||
|
||||
xml_dict = {
|
||||
"wfs:FeatureCollection": {
|
||||
"@xmlns:wfs": "http://www.opengis.net/wfs",
|
||||
@@ -174,12 +184,12 @@ class EgonGmlBuilder:
|
||||
"oneo:azZulassungsstelle": self.intervention.responsible.registration_file_number,
|
||||
"oneo:bemerkungZulassungsstelle": None,
|
||||
"oneo:eintragungsstelle": {
|
||||
"@xlink:href": f"http://register.naturschutz.rlp.de/repository/services/referenzliste/907/{self.intervention.responsible.conservation_office.atom_id}",
|
||||
"#text": self.intervention.responsible.conservation_office.long_name
|
||||
"@xlink:href": f"http://register.naturschutz.rlp.de/repository/services/referenzliste/907/{cons_office.atom_id if cons_office else None}",
|
||||
"#text": cons_office.long_name if cons_office else None
|
||||
},
|
||||
"oneo:zulassungsstelle": {
|
||||
"@xlink:href": f"http://register.naturschutz.rlp.de/repository/services/referenzliste/1053/{self.intervention.responsible.registration_office.atom_id}",
|
||||
"#text": self.intervention.responsible.registration_office.long_name
|
||||
"@xlink:href": f"http://register.naturschutz.rlp.de/repository/services/referenzliste/1053/{reg_office.atom_id if reg_office else None}",
|
||||
"#text": reg_office.long_name if reg_office else None
|
||||
},
|
||||
"oneo:ersatzzahlung": self._sum_all_payments(),
|
||||
"oneo:kompensationsart": {
|
||||
@@ -187,20 +197,20 @@ class EgonGmlBuilder:
|
||||
"#text": comp_type
|
||||
},
|
||||
"oneo:verfahrensrecht": {
|
||||
"@xlink:href": f"http://register.naturschutz.rlp.de/repository/services/referenzliste/1048/{self.intervention.legal.laws.first().atom_id}",
|
||||
"#text": self.intervention.legal.laws.first().short_name
|
||||
"@xlink:href": f"http://register.naturschutz.rlp.de/repository/services/referenzliste/1048/{law.atom_id if law else None}",
|
||||
"#text": law.short_name if law else None
|
||||
},
|
||||
"oneo:verfahrenstyp": {
|
||||
"@xlink:href": f"http://register.naturschutz.rlp.de/repository/services/referenzliste/44382/{self.intervention.legal.process_type.atom_id}",
|
||||
"#text": self.intervention.legal.process_type.long_name,
|
||||
"@xlink:href": f"http://register.naturschutz.rlp.de/repository/services/referenzliste/44382/{process_type.atom_id if process_type else None}",
|
||||
"#text": process_type.long_name if process_type else None,
|
||||
},
|
||||
"oneo:eingreifer": {
|
||||
"oneo:Eingreifer": {
|
||||
"oneo:art": {
|
||||
"@xlink:href": f"http://register.naturschutz.rlp.de/repository/services/referenzliste/1053/{self.intervention.responsible.handler.type.atom_id}",
|
||||
"#text": self.intervention.responsible.handler.type.long_name,
|
||||
"@xlink:href": f"http://register.naturschutz.rlp.de/repository/services/referenzliste/1053/{handler.type.atom_id if handler.type else None}",
|
||||
"#text": handler.type.long_name if handler.type else None,
|
||||
},
|
||||
"oneo:bemerkung": self.intervention.responsible.handler.detail,
|
||||
"oneo:bemerkung": handler.detail if handler else None,
|
||||
}
|
||||
},
|
||||
"oneo:erfasser": {
|
||||
@@ -212,8 +222,8 @@ class EgonGmlBuilder:
|
||||
"oneo:zulassung": {
|
||||
"oneo:Zulassungstermin": {
|
||||
"oneo:bauBeginn": payment_date,
|
||||
"oneo:erlass": self.intervention.legal.registration_date.strftime(DEFAULT_DATE_FORMAT),
|
||||
"oneo:rechtsKraft": self.intervention.legal.binding_date.strftime(DEFAULT_DATE_FORMAT),
|
||||
"oneo:erlass": reg_date.strftime(DEFAULT_DATE_FORMAT) if reg_date else None,
|
||||
"oneo:rechtsKraft": bind_date.strftime(DEFAULT_DATE_FORMAT) if bind_date else None,
|
||||
}
|
||||
},
|
||||
"oneo:geometrie": {
|
||||
|
||||
@@ -266,14 +266,11 @@ def detail_view(request: HttpRequest, id: str):
|
||||
instance=intervention,
|
||||
)
|
||||
|
||||
parcels = intervention.get_underlying_parcels()
|
||||
|
||||
context = {
|
||||
"obj": intervention,
|
||||
"compensations": compensations,
|
||||
"has_access": is_data_shared,
|
||||
"geom_form": geom_form,
|
||||
"parcels": parcels,
|
||||
"is_default_member": in_group(_user, DEFAULT_GROUP),
|
||||
"is_zb_member": in_group(_user, ZB_GROUP),
|
||||
"is_ets_member": in_group(_user, ETS_GROUP),
|
||||
|
||||
Reference in New Issue
Block a user