Merge pull request '88_biotope_codes' (#96) from 88_biotope_codes into master
Reviewed-on: SGD-Nord/konova#96
This commit is contained in:
		
						commit
						de96162ee0
					
				@ -14,7 +14,8 @@ from django.db.models import QuerySet
 | 
				
			|||||||
from api.utils.serializer.serializer import AbstractModelAPISerializer
 | 
					from api.utils.serializer.serializer import AbstractModelAPISerializer
 | 
				
			||||||
from codelist.models import KonovaCode
 | 
					from codelist.models import KonovaCode
 | 
				
			||||||
from codelist.settings import CODELIST_COMPENSATION_ACTION_ID, CODELIST_BIOTOPES_ID, CODELIST_PROCESS_TYPE_ID, \
 | 
					from codelist.settings import CODELIST_COMPENSATION_ACTION_ID, CODELIST_BIOTOPES_ID, CODELIST_PROCESS_TYPE_ID, \
 | 
				
			||||||
    CODELIST_LAW_ID, CODELIST_REGISTRATION_OFFICE_ID, CODELIST_CONSERVATION_OFFICE_ID
 | 
					    CODELIST_LAW_ID, CODELIST_REGISTRATION_OFFICE_ID, CODELIST_CONSERVATION_OFFICE_ID, \
 | 
				
			||||||
 | 
					    CODELIST_COMPENSATION_ACTION_DETAIL_ID, CODELIST_BIOTOPES_EXTRA_CODES_ID
 | 
				
			||||||
from compensation.models import CompensationAction, UnitChoices, CompensationState
 | 
					from compensation.models import CompensationAction, UnitChoices, CompensationState
 | 
				
			||||||
from intervention.models import Responsibility, Legal
 | 
					from intervention.models import Responsibility, Legal
 | 
				
			||||||
from konova.models import Deadline, DeadlineType
 | 
					from konova.models import Deadline, DeadlineType
 | 
				
			||||||
@ -323,6 +324,9 @@ class AbstractCompensationAPISerializerV1Mixin:
 | 
				
			|||||||
        states = []
 | 
					        states = []
 | 
				
			||||||
        for entry in states_data:
 | 
					        for entry in states_data:
 | 
				
			||||||
            biotope_type = entry["biotope"]
 | 
					            biotope_type = entry["biotope"]
 | 
				
			||||||
 | 
					            biotope_details = [
 | 
				
			||||||
 | 
					                self._konova_code_from_json(e, CODELIST_BIOTOPES_EXTRA_CODES_ID) for e in entry["biotope_details"]
 | 
				
			||||||
 | 
					            ]
 | 
				
			||||||
            surface = float(entry["surface"])
 | 
					            surface = float(entry["surface"])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            # Check on validity
 | 
					            # Check on validity
 | 
				
			||||||
@ -331,22 +335,22 @@ class AbstractCompensationAPISerializerV1Mixin:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            # If this exact data is already existing, we do not create it new. Instead put it's id in the list of
 | 
					            # If this exact data is already existing, we do not create it new. Instead put it's id in the list of
 | 
				
			||||||
            # entries, we will use to set the new actions
 | 
					            # entries, we will use to set the new actions
 | 
				
			||||||
            pre_existing_state = states_manager.filter(
 | 
					            state = states_manager.filter(
 | 
				
			||||||
                biotope_type__atom_id=biotope_type,
 | 
					                biotope_type__atom_id=biotope_type,
 | 
				
			||||||
                surface=surface,
 | 
					                surface=surface,
 | 
				
			||||||
            ).exclude(
 | 
					            ).exclude(
 | 
				
			||||||
                id__in=states
 | 
					                id__in=states
 | 
				
			||||||
            ).first()
 | 
					            ).first()
 | 
				
			||||||
            if pre_existing_state is not None:
 | 
					            if state is not None:
 | 
				
			||||||
                states.append(pre_existing_state.id)
 | 
					                states.append(state.id)
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                # Create and add id to list
 | 
					                # Create and add id to list
 | 
				
			||||||
                new_state = CompensationState.objects.create(
 | 
					                state = CompensationState.objects.create(
 | 
				
			||||||
                    biotope_type=self._konova_code_from_json(biotope_type, CODELIST_BIOTOPES_ID),
 | 
					                    biotope_type=self._konova_code_from_json(biotope_type, CODELIST_BIOTOPES_ID),
 | 
				
			||||||
                    surface=surface
 | 
					                    surface=surface
 | 
				
			||||||
                )
 | 
					                )
 | 
				
			||||||
                states.append(new_state.id)
 | 
					                states.append(state.id)
 | 
				
			||||||
 | 
					            state.biotope_type_details.set(biotope_details)
 | 
				
			||||||
        states_manager.set(states)
 | 
					        states_manager.set(states)
 | 
				
			||||||
        return obj
 | 
					        return obj
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -364,6 +368,9 @@ class AbstractCompensationAPISerializerV1Mixin:
 | 
				
			|||||||
        actions = []
 | 
					        actions = []
 | 
				
			||||||
        for entry in actions_data:
 | 
					        for entry in actions_data:
 | 
				
			||||||
            action = entry["action"]
 | 
					            action = entry["action"]
 | 
				
			||||||
 | 
					            action_details = [
 | 
				
			||||||
 | 
					                self._konova_code_from_json(e, CODELIST_COMPENSATION_ACTION_DETAIL_ID) for e in entry["action_details"]
 | 
				
			||||||
 | 
					            ]
 | 
				
			||||||
            amount = float(entry["amount"])
 | 
					            amount = float(entry["amount"])
 | 
				
			||||||
            unit = entry["unit"]
 | 
					            unit = entry["unit"]
 | 
				
			||||||
            comment = entry["comment"]
 | 
					            comment = entry["comment"]
 | 
				
			||||||
@ -376,7 +383,7 @@ class AbstractCompensationAPISerializerV1Mixin:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            # If this exact data is already existing, we do not create it new. Instead put it's id in the list of
 | 
					            # If this exact data is already existing, we do not create it new. Instead put it's id in the list of
 | 
				
			||||||
            # entries, we will use to set the new actions
 | 
					            # entries, we will use to set the new actions
 | 
				
			||||||
            pre_existing_action = obj.actions.filter(
 | 
					            action_entry = obj.actions.filter(
 | 
				
			||||||
                action_type__atom_id=action,
 | 
					                action_type__atom_id=action,
 | 
				
			||||||
                amount=amount,
 | 
					                amount=amount,
 | 
				
			||||||
                unit=unit,
 | 
					                unit=unit,
 | 
				
			||||||
@ -384,17 +391,19 @@ class AbstractCompensationAPISerializerV1Mixin:
 | 
				
			|||||||
            ).exclude(
 | 
					            ).exclude(
 | 
				
			||||||
                id__in=actions
 | 
					                id__in=actions
 | 
				
			||||||
            ).first()
 | 
					            ).first()
 | 
				
			||||||
            if pre_existing_action is not None:
 | 
					            if action_entry is not None:
 | 
				
			||||||
                actions.append(pre_existing_action.id)
 | 
					                actions.append(action_entry.id)
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                # Create and add id to list
 | 
					                # Create and add id to list
 | 
				
			||||||
                new_action = CompensationAction.objects.create(
 | 
					                action_entry = CompensationAction.objects.create(
 | 
				
			||||||
                    action_type=self._konova_code_from_json(action, CODELIST_COMPENSATION_ACTION_ID),
 | 
					                    action_type=self._konova_code_from_json(action, CODELIST_COMPENSATION_ACTION_ID),
 | 
				
			||||||
                    amount=amount,
 | 
					                    amount=amount,
 | 
				
			||||||
                    unit=unit,
 | 
					                    unit=unit,
 | 
				
			||||||
                    comment=comment,
 | 
					                    comment=comment,
 | 
				
			||||||
                )
 | 
					                )
 | 
				
			||||||
                actions.append(new_action.id)
 | 
					                actions.append(action_entry.id)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            action_entry.action_type_details.set(action_details)
 | 
				
			||||||
        obj.actions.set(actions)
 | 
					        obj.actions.set(actions)
 | 
				
			||||||
        return obj
 | 
					        return obj
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -410,6 +419,9 @@ class AbstractCompensationAPISerializerV1Mixin:
 | 
				
			|||||||
        return [
 | 
					        return [
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                "biotope": self._konova_code_to_json(entry.biotope_type),
 | 
					                "biotope": self._konova_code_to_json(entry.biotope_type),
 | 
				
			||||||
 | 
					                "biotope_details": [
 | 
				
			||||||
 | 
					                    self._konova_code_to_json(detail) for detail in entry.biotope_type_details.all()
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
                "surface": entry.surface,
 | 
					                "surface": entry.surface,
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            for entry in qs
 | 
					            for entry in qs
 | 
				
			||||||
@ -427,6 +439,9 @@ class AbstractCompensationAPISerializerV1Mixin:
 | 
				
			|||||||
        return [
 | 
					        return [
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                "action": self._konova_code_to_json(entry.action_type),
 | 
					                "action": self._konova_code_to_json(entry.action_type),
 | 
				
			||||||
 | 
					                "action_details": [
 | 
				
			||||||
 | 
					                    self._konova_code_to_json(detail) for detail in entry.action_type_details.all()
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
                "amount": entry.amount,
 | 
					                "amount": entry.amount,
 | 
				
			||||||
                "unit": entry.unit,
 | 
					                "unit": entry.unit,
 | 
				
			||||||
                "comment": entry.comment,
 | 
					                "comment": entry.comment,
 | 
				
			||||||
 | 
				
			|||||||
@ -13,7 +13,8 @@ from codelist.models import KonovaCode, KonovaCodeList
 | 
				
			|||||||
from codelist.settings import CODELIST_INTERVENTION_HANDLER_ID, CODELIST_CONSERVATION_OFFICE_ID, \
 | 
					from codelist.settings import CODELIST_INTERVENTION_HANDLER_ID, CODELIST_CONSERVATION_OFFICE_ID, \
 | 
				
			||||||
    CODELIST_REGISTRATION_OFFICE_ID, CODELIST_BIOTOPES_ID, CODELIST_LAW_ID, CODELIST_COMPENSATION_HANDLER_ID, \
 | 
					    CODELIST_REGISTRATION_OFFICE_ID, CODELIST_BIOTOPES_ID, CODELIST_LAW_ID, CODELIST_COMPENSATION_HANDLER_ID, \
 | 
				
			||||||
    CODELIST_COMPENSATION_ACTION_ID, CODELIST_COMPENSATION_ACTION_CLASS_ID, CODELIST_COMPENSATION_ADDITIONAL_TYPE_ID, \
 | 
					    CODELIST_COMPENSATION_ACTION_ID, CODELIST_COMPENSATION_ACTION_CLASS_ID, CODELIST_COMPENSATION_ADDITIONAL_TYPE_ID, \
 | 
				
			||||||
    CODELIST_BASE_URL, CODELIST_PROCESS_TYPE_ID
 | 
					    CODELIST_BASE_URL, CODELIST_PROCESS_TYPE_ID, CODELIST_BIOTOPES_EXTRA_CODES_ID, \
 | 
				
			||||||
 | 
					    CODELIST_COMPENSATION_ACTION_DETAIL_ID
 | 
				
			||||||
from konova.management.commands.setup import BaseKonovaCommand
 | 
					from konova.management.commands.setup import BaseKonovaCommand
 | 
				
			||||||
from konova.settings import PROXIES
 | 
					from konova.settings import PROXIES
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -33,10 +34,12 @@ class Command(BaseKonovaCommand):
 | 
				
			|||||||
                CODELIST_CONSERVATION_OFFICE_ID,
 | 
					                CODELIST_CONSERVATION_OFFICE_ID,
 | 
				
			||||||
                CODELIST_REGISTRATION_OFFICE_ID,
 | 
					                CODELIST_REGISTRATION_OFFICE_ID,
 | 
				
			||||||
                CODELIST_BIOTOPES_ID,
 | 
					                CODELIST_BIOTOPES_ID,
 | 
				
			||||||
 | 
					                CODELIST_BIOTOPES_EXTRA_CODES_ID,
 | 
				
			||||||
                CODELIST_LAW_ID,
 | 
					                CODELIST_LAW_ID,
 | 
				
			||||||
                CODELIST_COMPENSATION_HANDLER_ID,
 | 
					                CODELIST_COMPENSATION_HANDLER_ID,
 | 
				
			||||||
                CODELIST_COMPENSATION_ACTION_ID,
 | 
					                CODELIST_COMPENSATION_ACTION_ID,
 | 
				
			||||||
                CODELIST_COMPENSATION_ACTION_CLASS_ID,
 | 
					                CODELIST_COMPENSATION_ACTION_CLASS_ID,
 | 
				
			||||||
 | 
					                CODELIST_COMPENSATION_ACTION_DETAIL_ID,
 | 
				
			||||||
                CODELIST_COMPENSATION_ADDITIONAL_TYPE_ID,
 | 
					                CODELIST_COMPENSATION_ADDITIONAL_TYPE_ID,
 | 
				
			||||||
                CODELIST_PROCESS_TYPE_ID,
 | 
					                CODELIST_PROCESS_TYPE_ID,
 | 
				
			||||||
            ]
 | 
					            ]
 | 
				
			||||||
 | 
				
			|||||||
@ -14,11 +14,13 @@ CODELIST_INTERVENTION_HANDLER_ID = 903  # CLMassnahmeträger
 | 
				
			|||||||
CODELIST_CONSERVATION_OFFICE_ID = 907  # CLNaturschutzbehörden
 | 
					CODELIST_CONSERVATION_OFFICE_ID = 907  # CLNaturschutzbehörden
 | 
				
			||||||
CODELIST_REGISTRATION_OFFICE_ID = 1053  # CLZulassungsbehörden
 | 
					CODELIST_REGISTRATION_OFFICE_ID = 1053  # CLZulassungsbehörden
 | 
				
			||||||
CODELIST_BIOTOPES_ID = 974  # CL_EIV_Biotoptypen
 | 
					CODELIST_BIOTOPES_ID = 974  # CL_EIV_Biotoptypen
 | 
				
			||||||
 | 
					CODELIST_BIOTOPES_EXTRA_CODES_ID = 975  # CLZusatzbezeichnung
 | 
				
			||||||
CODELIST_LAW_ID = 1048  # CLVerfahrensrecht
 | 
					CODELIST_LAW_ID = 1048  # CLVerfahrensrecht
 | 
				
			||||||
CODELIST_PROCESS_TYPE_ID = 44382  # CLVerfahrenstyp
 | 
					CODELIST_PROCESS_TYPE_ID = 44382  # CLVerfahrenstyp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CODELIST_COMPENSATION_HANDLER_ID = 1052  # CLEingreifer
 | 
					CODELIST_COMPENSATION_HANDLER_ID = 1052  # CLEingreifer
 | 
				
			||||||
CODELIST_COMPENSATION_ACTION_ID = 1026  # CLMassnahmedetail
 | 
					CODELIST_COMPENSATION_ACTION_ID = 1026  # CLMassnahmedetail
 | 
				
			||||||
 | 
					CODELIST_COMPENSATION_ACTION_DETAIL_ID = 1035  # CLZusatzmerkmal
 | 
				
			||||||
CODELIST_COMPENSATION_ACTION_CLASS_ID = 1034  # CLMassnahmeklasse
 | 
					CODELIST_COMPENSATION_ACTION_CLASS_ID = 1034  # CLMassnahmeklasse
 | 
				
			||||||
CODELIST_COMPENSATION_ADDITIONAL_TYPE_ID = 1028  # CLMassnahmetyp, CEF and stuff
 | 
					CODELIST_COMPENSATION_ADDITIONAL_TYPE_ID = 1028  # CLMassnahmetyp, CEF and stuff
 | 
				
			||||||
CODELIST_COMPENSATION_FUNDING_ID = 1049  # CLKombimassnahme
 | 
					CODELIST_COMPENSATION_FUNDING_ID = 1049  # CLKombimassnahme
 | 
				
			||||||
 | 
				
			|||||||
@ -14,7 +14,8 @@ from django.shortcuts import render
 | 
				
			|||||||
from django.utils.translation import pgettext_lazy as _con, gettext_lazy as _
 | 
					from django.utils.translation import pgettext_lazy as _con, gettext_lazy as _
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from codelist.models import KonovaCode
 | 
					from codelist.models import KonovaCode
 | 
				
			||||||
from codelist.settings import CODELIST_BIOTOPES_ID, CODELIST_COMPENSATION_ACTION_ID
 | 
					from codelist.settings import CODELIST_BIOTOPES_ID, CODELIST_COMPENSATION_ACTION_ID, CODELIST_BIOTOPES_EXTRA_CODES_ID, \
 | 
				
			||||||
 | 
					    CODELIST_COMPENSATION_ACTION_DETAIL_ID
 | 
				
			||||||
from compensation.models import CompensationDocument, EcoAccountDocument
 | 
					from compensation.models import CompensationDocument, EcoAccountDocument
 | 
				
			||||||
from konova.contexts import BaseContext
 | 
					from konova.contexts import BaseContext
 | 
				
			||||||
from konova.forms import BaseModalForm, NewDocumentForm
 | 
					from konova.forms import BaseModalForm, NewDocumentForm
 | 
				
			||||||
@ -127,6 +128,23 @@ class NewStateModalForm(BaseModalForm):
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        ),
 | 
					        ),
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					    biotope_extra = forms.ModelMultipleChoiceField(
 | 
				
			||||||
 | 
					        label=_("Biotope additional type"),
 | 
				
			||||||
 | 
					        label_suffix="",
 | 
				
			||||||
 | 
					        required=False,
 | 
				
			||||||
 | 
					        help_text=_("Select an additional biotope type"),
 | 
				
			||||||
 | 
					        queryset=KonovaCode.objects.filter(
 | 
				
			||||||
 | 
					            is_archived=False,
 | 
				
			||||||
 | 
					            is_leaf=True,
 | 
				
			||||||
 | 
					            code_lists__in=[CODELIST_BIOTOPES_EXTRA_CODES_ID],
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        widget=autocomplete.ModelSelect2Multiple(
 | 
				
			||||||
 | 
					            url="codes-biotope-extra-type-autocomplete",
 | 
				
			||||||
 | 
					            attrs={
 | 
				
			||||||
 | 
					                "data-placeholder": _("Biotope additional type"),
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
    surface = forms.DecimalField(
 | 
					    surface = forms.DecimalField(
 | 
				
			||||||
        min_value=0.00,
 | 
					        min_value=0.00,
 | 
				
			||||||
        decimal_places=2,
 | 
					        decimal_places=2,
 | 
				
			||||||
@ -283,6 +301,23 @@ class NewActionModalForm(BaseModalForm):
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        ),
 | 
					        ),
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					    action_type_details = forms.ModelMultipleChoiceField(
 | 
				
			||||||
 | 
					        label=_("Action Type detail"),
 | 
				
			||||||
 | 
					        label_suffix="",
 | 
				
			||||||
 | 
					        required=False,
 | 
				
			||||||
 | 
					        help_text=_("Select the action type detail"),
 | 
				
			||||||
 | 
					        queryset=KonovaCode.objects.filter(
 | 
				
			||||||
 | 
					            is_archived=False,
 | 
				
			||||||
 | 
					            is_leaf=True,
 | 
				
			||||||
 | 
					            code_lists__in=[CODELIST_COMPENSATION_ACTION_DETAIL_ID],
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        widget=autocomplete.ModelSelect2Multiple(
 | 
				
			||||||
 | 
					            url="codes-compensation-action-detail-autocomplete",
 | 
				
			||||||
 | 
					            attrs={
 | 
				
			||||||
 | 
					                "data-placeholder": _("Action Type detail"),
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
    unit = forms.ChoiceField(
 | 
					    unit = forms.ChoiceField(
 | 
				
			||||||
        label=_("Unit"),
 | 
					        label=_("Unit"),
 | 
				
			||||||
        label_suffix="",
 | 
					        label_suffix="",
 | 
				
			||||||
 | 
				
			|||||||
@ -9,7 +9,7 @@ from django.db import models
 | 
				
			|||||||
from django.utils.translation import gettext_lazy as _
 | 
					from django.utils.translation import gettext_lazy as _
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from codelist.models import KonovaCode
 | 
					from codelist.models import KonovaCode
 | 
				
			||||||
from codelist.settings import CODELIST_COMPENSATION_ACTION_ID
 | 
					from codelist.settings import CODELIST_COMPENSATION_ACTION_ID, CODELIST_COMPENSATION_ACTION_DETAIL_ID
 | 
				
			||||||
from compensation.managers import CompensationActionManager
 | 
					from compensation.managers import CompensationActionManager
 | 
				
			||||||
from konova.models import BaseResource
 | 
					from konova.models import BaseResource
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -39,7 +39,18 @@ class CompensationAction(BaseResource):
 | 
				
			|||||||
            "code_lists__in": [CODELIST_COMPENSATION_ACTION_ID],
 | 
					            "code_lists__in": [CODELIST_COMPENSATION_ACTION_ID],
 | 
				
			||||||
            "is_selectable": True,
 | 
					            "is_selectable": True,
 | 
				
			||||||
            "is_archived": False,
 | 
					            "is_archived": False,
 | 
				
			||||||
        }
 | 
					        },
 | 
				
			||||||
 | 
					        related_name='+',
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					    action_type_details = models.ManyToManyField(
 | 
				
			||||||
 | 
					        KonovaCode,
 | 
				
			||||||
 | 
					        blank=True,
 | 
				
			||||||
 | 
					        limit_choices_to={
 | 
				
			||||||
 | 
					            "code_lists__in": [CODELIST_COMPENSATION_ACTION_DETAIL_ID],
 | 
				
			||||||
 | 
					            "is_selectable": True,
 | 
				
			||||||
 | 
					            "is_archived": False,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        related_name='+',
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
    amount = models.FloatField()
 | 
					    amount = models.FloatField()
 | 
				
			||||||
    unit = models.CharField(max_length=100, null=True, blank=True, choices=UnitChoices.choices)
 | 
					    unit = models.CharField(max_length=100, null=True, blank=True, choices=UnitChoices.choices)
 | 
				
			||||||
 | 
				
			|||||||
@ -95,6 +95,8 @@ class AbstractCompensation(BaseObject, GeoReferencedMixin):
 | 
				
			|||||||
                comment=form_data["comment"],
 | 
					                comment=form_data["comment"],
 | 
				
			||||||
                created=user_action,
 | 
					                created=user_action,
 | 
				
			||||||
            )
 | 
					            )
 | 
				
			||||||
 | 
					            comp_action_details = form_data["action_type_details"]
 | 
				
			||||||
 | 
					            comp_action.action_type_details.set(comp_action_details)
 | 
				
			||||||
            self.actions.add(comp_action)
 | 
					            self.actions.add(comp_action)
 | 
				
			||||||
            return comp_action
 | 
					            return comp_action
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -114,6 +116,8 @@ class AbstractCompensation(BaseObject, GeoReferencedMixin):
 | 
				
			|||||||
                biotope_type=form_data["biotope_type"],
 | 
					                biotope_type=form_data["biotope_type"],
 | 
				
			||||||
                surface=form_data["surface"],
 | 
					                surface=form_data["surface"],
 | 
				
			||||||
            )
 | 
					            )
 | 
				
			||||||
 | 
					            state_additional_types = form_data["biotope_extra"]
 | 
				
			||||||
 | 
					            state.biotope_type_details.set(state_additional_types)
 | 
				
			||||||
            if is_before_state:
 | 
					            if is_before_state:
 | 
				
			||||||
                self.before_states.add(state)
 | 
					                self.before_states.add(state)
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
 | 
				
			|||||||
@ -8,7 +8,7 @@ Created on: 16.11.21
 | 
				
			|||||||
from django.db import models
 | 
					from django.db import models
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from codelist.models import KonovaCode
 | 
					from codelist.models import KonovaCode
 | 
				
			||||||
from codelist.settings import CODELIST_BIOTOPES_ID
 | 
					from codelist.settings import CODELIST_BIOTOPES_ID, CODELIST_BIOTOPES_EXTRA_CODES_ID
 | 
				
			||||||
from compensation.managers import CompensationStateManager
 | 
					from compensation.managers import CompensationStateManager
 | 
				
			||||||
from konova.models import UuidModel
 | 
					from konova.models import UuidModel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -26,7 +26,18 @@ class CompensationState(UuidModel):
 | 
				
			|||||||
            "code_lists__in": [CODELIST_BIOTOPES_ID],
 | 
					            "code_lists__in": [CODELIST_BIOTOPES_ID],
 | 
				
			||||||
            "is_selectable": True,
 | 
					            "is_selectable": True,
 | 
				
			||||||
            "is_archived": False,
 | 
					            "is_archived": False,
 | 
				
			||||||
        }
 | 
					        },
 | 
				
			||||||
 | 
					        related_name='+',
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					    biotope_type_details = models.ManyToManyField(
 | 
				
			||||||
 | 
					        KonovaCode,
 | 
				
			||||||
 | 
					        blank=True,
 | 
				
			||||||
 | 
					        limit_choices_to={
 | 
				
			||||||
 | 
					            "code_lists__in": [CODELIST_BIOTOPES_EXTRA_CODES_ID],
 | 
				
			||||||
 | 
					            "is_selectable": True,
 | 
				
			||||||
 | 
					            "is_archived": False,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        related_name='+',
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
    surface = models.FloatField()
 | 
					    surface = models.FloatField()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -24,9 +24,12 @@
 | 
				
			|||||||
        <table class="table table-hover">
 | 
					        <table class="table table-hover">
 | 
				
			||||||
            <thead>
 | 
					            <thead>
 | 
				
			||||||
            <tr>
 | 
					            <tr>
 | 
				
			||||||
                <th scope="col">
 | 
					                <th class="w-25" scope="col">
 | 
				
			||||||
                    {% trans 'Action type' %}
 | 
					                    {% trans 'Action type' %}
 | 
				
			||||||
                </th>
 | 
					                </th>
 | 
				
			||||||
 | 
					                <th class="w-25" scope="col">
 | 
				
			||||||
 | 
					                    {% trans 'Action type details' %}
 | 
				
			||||||
 | 
					                </th>
 | 
				
			||||||
                <th scope="col">
 | 
					                <th scope="col">
 | 
				
			||||||
                    {% trans 'Amount' context 'Compensation' %}
 | 
					                    {% trans 'Amount' context 'Compensation' %}
 | 
				
			||||||
                </th>
 | 
					                </th>
 | 
				
			||||||
@ -46,9 +49,14 @@
 | 
				
			|||||||
                <td class="align-middle">
 | 
					                <td class="align-middle">
 | 
				
			||||||
                    {{ action.action_type }}
 | 
					                    {{ action.action_type }}
 | 
				
			||||||
                </td>
 | 
					                </td>
 | 
				
			||||||
 | 
					                <td class="align-middle">
 | 
				
			||||||
 | 
					                    {% for detail in action.action_type_details.all %}
 | 
				
			||||||
 | 
					                        <div class="mb-2" title="{{detail}}">{{detail.long_name}}</div>
 | 
				
			||||||
 | 
					                    {% endfor %}
 | 
				
			||||||
 | 
					                </td>
 | 
				
			||||||
                <td class="align-middle">{{ action.amount|floatformat:2|intcomma }} {{ action.unit_humanize }}</td>
 | 
					                <td class="align-middle">{{ action.amount|floatformat:2|intcomma }} {{ action.unit_humanize }}</td>
 | 
				
			||||||
                <td class="align-middle">{{ action.comment|default_if_none:"" }}</td>
 | 
					                <td class="align-middle">{{ action.comment|default_if_none:"" }}</td>
 | 
				
			||||||
                <td>
 | 
					                <td class="align-middle">
 | 
				
			||||||
                    {% if is_default_member and has_access  %}
 | 
					                    {% if is_default_member and has_access  %}
 | 
				
			||||||
                    <button data-form-url="{% url 'compensation:action-remove' obj.id action.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove action' %}">
 | 
					                    <button data-form-url="{% url 'compensation:action-remove' obj.id action.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove action' %}">
 | 
				
			||||||
                        {% fa5_icon 'trash' %}
 | 
					                        {% fa5_icon 'trash' %}
 | 
				
			||||||
 | 
				
			|||||||
@ -29,9 +29,12 @@
 | 
				
			|||||||
        <table class="table table-hover">
 | 
					        <table class="table table-hover">
 | 
				
			||||||
            <thead>
 | 
					            <thead>
 | 
				
			||||||
            <tr>
 | 
					            <tr>
 | 
				
			||||||
                <th scope="col">
 | 
					                <th class="w-25" scope="col">
 | 
				
			||||||
                    {% trans 'Biotope type' %}
 | 
					                    {% trans 'Biotope type' %}
 | 
				
			||||||
                </th>
 | 
					                </th>
 | 
				
			||||||
 | 
					                <th class="w-25" scope="col">
 | 
				
			||||||
 | 
					                    {% trans 'Biotope additional type' %}
 | 
				
			||||||
 | 
					                </th>
 | 
				
			||||||
                <th scope="col">
 | 
					                <th scope="col">
 | 
				
			||||||
                    {% trans 'Surface' %}
 | 
					                    {% trans 'Surface' %}
 | 
				
			||||||
                </th>
 | 
					                </th>
 | 
				
			||||||
@ -48,8 +51,15 @@
 | 
				
			|||||||
                <td class="align-middle">
 | 
					                <td class="align-middle">
 | 
				
			||||||
                    {{ state.biotope_type }}
 | 
					                    {{ state.biotope_type }}
 | 
				
			||||||
                </td>
 | 
					                </td>
 | 
				
			||||||
 | 
					                <td class="align-middle">
 | 
				
			||||||
 | 
					                    {% for biotope_extra in state.biotope_type_details.all %}
 | 
				
			||||||
 | 
					                    <div class="mb-2" title="{{ biotope_extra }}">
 | 
				
			||||||
 | 
					                        {{ biotope_extra.long_name }}
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					                    {% endfor %}
 | 
				
			||||||
 | 
					                </td>
 | 
				
			||||||
                <td class="align-middle">{{ state.surface|floatformat:2 }} m²</td>
 | 
					                <td class="align-middle">{{ state.surface|floatformat:2 }} m²</td>
 | 
				
			||||||
                <td>
 | 
					                <td class="align-middle">
 | 
				
			||||||
                    {% if is_default_member and has_access  %}
 | 
					                    {% if is_default_member and has_access  %}
 | 
				
			||||||
                    <button data-form-url="{% url 'compensation:state-remove' obj.id state.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove state' %}">
 | 
					                    <button data-form-url="{% url 'compensation:state-remove' obj.id state.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove state' %}">
 | 
				
			||||||
                        {% fa5_icon 'trash' %}
 | 
					                        {% fa5_icon 'trash' %}
 | 
				
			||||||
 | 
				
			|||||||
@ -29,9 +29,12 @@
 | 
				
			|||||||
        <table class="table table-hover">
 | 
					        <table class="table table-hover">
 | 
				
			||||||
            <thead>
 | 
					            <thead>
 | 
				
			||||||
            <tr>
 | 
					            <tr>
 | 
				
			||||||
                <th scope="col">
 | 
					                <th class="w-25" scope="col">
 | 
				
			||||||
                    {% trans 'Biotope type' %}
 | 
					                    {% trans 'Biotope type' %}
 | 
				
			||||||
                </th>
 | 
					                </th>
 | 
				
			||||||
 | 
					                <th class="w-25" scope="col">
 | 
				
			||||||
 | 
					                    {% trans 'Biotope additional type' %}
 | 
				
			||||||
 | 
					                </th>
 | 
				
			||||||
                <th scope="col">
 | 
					                <th scope="col">
 | 
				
			||||||
                    {% trans 'Surface' %}
 | 
					                    {% trans 'Surface' %}
 | 
				
			||||||
                </th>
 | 
					                </th>
 | 
				
			||||||
@ -48,8 +51,15 @@
 | 
				
			|||||||
                <td class="align-middle">
 | 
					                <td class="align-middle">
 | 
				
			||||||
                    {{ state.biotope_type }}
 | 
					                    {{ state.biotope_type }}
 | 
				
			||||||
                </td>
 | 
					                </td>
 | 
				
			||||||
 | 
					                <td class="align-middle">
 | 
				
			||||||
 | 
					                    {% for biotope_extra in state.biotope_type_details.all %}
 | 
				
			||||||
 | 
					                    <div class="mb-2" title="{{ biotope_extra }}">
 | 
				
			||||||
 | 
					                        {{ biotope_extra.long_name }}
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					                    {% endfor %}
 | 
				
			||||||
 | 
					                </td>
 | 
				
			||||||
                <td class="align-middle">{{ state.surface|floatformat:2 }} m²</td>
 | 
					                <td class="align-middle">{{ state.surface|floatformat:2 }} m²</td>
 | 
				
			||||||
                <td>
 | 
					                <td class="align-middle">
 | 
				
			||||||
                    {% if is_default_member and has_access  %}
 | 
					                    {% if is_default_member and has_access  %}
 | 
				
			||||||
                    <button data-form-url="{% url 'compensation:state-remove' obj.id state.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove state' %}">
 | 
					                    <button data-form-url="{% url 'compensation:state-remove' obj.id state.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove state' %}">
 | 
				
			||||||
                        {% fa5_icon 'trash' %}
 | 
					                        {% fa5_icon 'trash' %}
 | 
				
			||||||
 | 
				
			|||||||
@ -24,9 +24,12 @@
 | 
				
			|||||||
        <table class="table table-hover">
 | 
					        <table class="table table-hover">
 | 
				
			||||||
            <thead>
 | 
					            <thead>
 | 
				
			||||||
            <tr>
 | 
					            <tr>
 | 
				
			||||||
                <th scope="col">
 | 
					                <th class="w-25" scope="col">
 | 
				
			||||||
                    {% trans 'Action type' %}
 | 
					                    {% trans 'Action type' %}
 | 
				
			||||||
                </th>
 | 
					                </th>
 | 
				
			||||||
 | 
					                <th class="w-25" scope="col">
 | 
				
			||||||
 | 
					                    {% trans 'Action type details' %}
 | 
				
			||||||
 | 
					                </th>
 | 
				
			||||||
                <th scope="col">
 | 
					                <th scope="col">
 | 
				
			||||||
                    {% trans 'Amount' context 'Compensation' %}
 | 
					                    {% trans 'Amount' context 'Compensation' %}
 | 
				
			||||||
                </th>
 | 
					                </th>
 | 
				
			||||||
@ -46,9 +49,14 @@
 | 
				
			|||||||
                <td class="align-middle">
 | 
					                <td class="align-middle">
 | 
				
			||||||
                    {{ action.action_type }}
 | 
					                    {{ action.action_type }}
 | 
				
			||||||
                </td>
 | 
					                </td>
 | 
				
			||||||
 | 
					                <td class="align-middle">
 | 
				
			||||||
 | 
					                    {% for detail in action.action_type_details.all %}
 | 
				
			||||||
 | 
					                        <div class="mb-2" title="{{detail}}">{{detail.long_name}}</div>
 | 
				
			||||||
 | 
					                    {% endfor %}
 | 
				
			||||||
 | 
					                </td>
 | 
				
			||||||
                <td class="align-middle">{{ action.amount|floatformat:2|intcomma }} {{ action.unit_humanize }}</td>
 | 
					                <td class="align-middle">{{ action.amount|floatformat:2|intcomma }} {{ action.unit_humanize }}</td>
 | 
				
			||||||
                <td class="align-middle">{{ action.comment|default_if_none:"" }}</td>
 | 
					                <td class="align-middle">{{ action.comment|default_if_none:"" }}</td>
 | 
				
			||||||
                <td>
 | 
					                <td class="align-middle">
 | 
				
			||||||
                    {% if is_default_member and has_access  %}
 | 
					                    {% if is_default_member and has_access  %}
 | 
				
			||||||
                    <button data-form-url="{% url 'compensation:acc-action-remove' obj.id action.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove action' %}">
 | 
					                    <button data-form-url="{% url 'compensation:acc-action-remove' obj.id action.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove action' %}">
 | 
				
			||||||
                        {% fa5_icon 'trash' %}
 | 
					                        {% fa5_icon 'trash' %}
 | 
				
			||||||
 | 
				
			|||||||
@ -29,9 +29,12 @@
 | 
				
			|||||||
        <table class="table table-hover">
 | 
					        <table class="table table-hover">
 | 
				
			||||||
            <thead>
 | 
					            <thead>
 | 
				
			||||||
            <tr>
 | 
					            <tr>
 | 
				
			||||||
                <th scope="col">
 | 
					                <th class="w-25" scope="col">
 | 
				
			||||||
                    {% trans 'Biotope type' %}
 | 
					                    {% trans 'Biotope type' %}
 | 
				
			||||||
                </th>
 | 
					                </th>
 | 
				
			||||||
 | 
					                <th class="w-25" scope="col">
 | 
				
			||||||
 | 
					                    {% trans 'Biotope additional type' %}
 | 
				
			||||||
 | 
					                </th>
 | 
				
			||||||
                <th scope="col">
 | 
					                <th scope="col">
 | 
				
			||||||
                    {% trans 'Surface' %}
 | 
					                    {% trans 'Surface' %}
 | 
				
			||||||
                </th>
 | 
					                </th>
 | 
				
			||||||
@ -48,8 +51,15 @@
 | 
				
			|||||||
                <td class="align-middle">
 | 
					                <td class="align-middle">
 | 
				
			||||||
                    {{ state.biotope_type }}
 | 
					                    {{ state.biotope_type }}
 | 
				
			||||||
                </td>
 | 
					                </td>
 | 
				
			||||||
 | 
					                <td class="align-middle">
 | 
				
			||||||
 | 
					                    {% for biotope_extra in state.biotope_type_details.all %}
 | 
				
			||||||
 | 
					                    <div class="mb-2" title="{{ biotope_extra }}">
 | 
				
			||||||
 | 
					                        {{ biotope_extra.long_name }}
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					                    {% endfor %}
 | 
				
			||||||
 | 
					                </td>
 | 
				
			||||||
                <td class="align-middle">{{ state.surface|floatformat:2 }} m²</td>
 | 
					                <td class="align-middle">{{ state.surface|floatformat:2 }} m²</td>
 | 
				
			||||||
                <td>
 | 
					                <td class="align-middle">
 | 
				
			||||||
                    {% if is_default_member and has_access  %}
 | 
					                    {% if is_default_member and has_access  %}
 | 
				
			||||||
                    <button data-form-url="{% url 'compensation:acc-state-remove' obj.id state.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove state' %}">
 | 
					                    <button data-form-url="{% url 'compensation:acc-state-remove' obj.id state.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove state' %}">
 | 
				
			||||||
                        {% fa5_icon 'trash' %}
 | 
					                        {% fa5_icon 'trash' %}
 | 
				
			||||||
 | 
				
			|||||||
@ -29,9 +29,12 @@
 | 
				
			|||||||
        <table class="table table-hover">
 | 
					        <table class="table table-hover">
 | 
				
			||||||
            <thead>
 | 
					            <thead>
 | 
				
			||||||
            <tr>
 | 
					            <tr>
 | 
				
			||||||
                <th scope="col">
 | 
					                <th class="w-25" scope="col">
 | 
				
			||||||
                    {% trans 'Biotope type' %}
 | 
					                    {% trans 'Biotope type' %}
 | 
				
			||||||
                </th>
 | 
					                </th>
 | 
				
			||||||
 | 
					                <th class="w-25" scope="col">
 | 
				
			||||||
 | 
					                    {% trans 'Biotope additional type' %}
 | 
				
			||||||
 | 
					                </th>
 | 
				
			||||||
                <th scope="col">
 | 
					                <th scope="col">
 | 
				
			||||||
                    {% trans 'Surface' %}
 | 
					                    {% trans 'Surface' %}
 | 
				
			||||||
                </th>
 | 
					                </th>
 | 
				
			||||||
@ -48,8 +51,15 @@
 | 
				
			|||||||
                <td class="align-middle">
 | 
					                <td class="align-middle">
 | 
				
			||||||
                    {{ state.biotope_type }}
 | 
					                    {{ state.biotope_type }}
 | 
				
			||||||
                </td>
 | 
					                </td>
 | 
				
			||||||
 | 
					                <td class="align-middle">
 | 
				
			||||||
 | 
					                    {% for biotope_extra in state.biotope_type_details.all %}
 | 
				
			||||||
 | 
					                    <div class="mb-2" title="{{ biotope_extra }}">
 | 
				
			||||||
 | 
					                        {{ biotope_extra.long_name }}
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					                    {% endfor %}
 | 
				
			||||||
 | 
					                </td>
 | 
				
			||||||
                <td class="align-middle">{{ state.surface|floatformat:2 }} m²</td>
 | 
					                <td class="align-middle">{{ state.surface|floatformat:2 }} m²</td>
 | 
				
			||||||
                <td>
 | 
					                <td class="align-middle">
 | 
				
			||||||
                    {% if is_default_member and has_access  %}
 | 
					                    {% if is_default_member and has_access  %}
 | 
				
			||||||
                    <button data-form-url="{% url 'compensation:acc-state-remove' obj.id state.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove state' %}">
 | 
					                    <button data-form-url="{% url 'compensation:acc-state-remove' obj.id state.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove state' %}">
 | 
				
			||||||
                        {% fa5_icon 'trash' %}
 | 
					                        {% fa5_icon 'trash' %}
 | 
				
			||||||
 | 
				
			|||||||
@ -24,9 +24,12 @@
 | 
				
			|||||||
        <table class="table table-hover">
 | 
					        <table class="table table-hover">
 | 
				
			||||||
            <thead>
 | 
					            <thead>
 | 
				
			||||||
            <tr>
 | 
					            <tr>
 | 
				
			||||||
                <th scope="col">
 | 
					                <th class="w-25" scope="col">
 | 
				
			||||||
                    {% trans 'Action type' %}
 | 
					                    {% trans 'Action type' %}
 | 
				
			||||||
                </th>
 | 
					                </th>
 | 
				
			||||||
 | 
					                <th class="w-25" scope="col">
 | 
				
			||||||
 | 
					                    {% trans 'Action type details' %}
 | 
				
			||||||
 | 
					                </th>
 | 
				
			||||||
                <th scope="col">
 | 
					                <th scope="col">
 | 
				
			||||||
                    {% trans 'Amount' context 'Compensation' %}
 | 
					                    {% trans 'Amount' context 'Compensation' %}
 | 
				
			||||||
                </th>
 | 
					                </th>
 | 
				
			||||||
@ -44,9 +47,14 @@
 | 
				
			|||||||
                <td class="align-middle">
 | 
					                <td class="align-middle">
 | 
				
			||||||
                    {{ action.action_type }}
 | 
					                    {{ action.action_type }}
 | 
				
			||||||
                </td>
 | 
					                </td>
 | 
				
			||||||
 | 
					                <td class="align-middle">
 | 
				
			||||||
 | 
					                    {% for detail in action.action_type_details.all %}
 | 
				
			||||||
 | 
					                        <div class="mb-2" title="{{detail}}">{{detail.long_name}}</div>
 | 
				
			||||||
 | 
					                    {% endfor %}
 | 
				
			||||||
 | 
					                </td>
 | 
				
			||||||
                <td class="align-middle">{{ action.amount|floatformat:2|intcomma }} {{ action.unit_humanize }}</td>
 | 
					                <td class="align-middle">{{ action.amount|floatformat:2|intcomma }} {{ action.unit_humanize }}</td>
 | 
				
			||||||
                <td class="align-middle">{{ action.comment|default_if_none:"" }}</td>
 | 
					                <td class="align-middle">{{ action.comment|default_if_none:"" }}</td>
 | 
				
			||||||
                <td>
 | 
					                <td class="align-middle">
 | 
				
			||||||
                    {% if is_default_member and has_access  %}
 | 
					                    {% if is_default_member and has_access  %}
 | 
				
			||||||
                    <button data-form-url="{% url 'ema:action-remove' obj.id action.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove action' %}">
 | 
					                    <button data-form-url="{% url 'ema:action-remove' obj.id action.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove action' %}">
 | 
				
			||||||
                        {% fa5_icon 'trash' %}
 | 
					                        {% fa5_icon 'trash' %}
 | 
				
			||||||
 | 
				
			|||||||
@ -29,9 +29,12 @@
 | 
				
			|||||||
        <table class="table table-hover">
 | 
					        <table class="table table-hover">
 | 
				
			||||||
            <thead>
 | 
					            <thead>
 | 
				
			||||||
            <tr>
 | 
					            <tr>
 | 
				
			||||||
                <th scope="col">
 | 
					                <th class="w-25" scope="col">
 | 
				
			||||||
                    {% trans 'Biotope type' %}
 | 
					                    {% trans 'Biotope type' %}
 | 
				
			||||||
                </th>
 | 
					                </th>
 | 
				
			||||||
 | 
					                <th class="w-25" scope="col">
 | 
				
			||||||
 | 
					                    {% trans 'Biotope additional type' %}
 | 
				
			||||||
 | 
					                </th>
 | 
				
			||||||
                <th scope="col">
 | 
					                <th scope="col">
 | 
				
			||||||
                    {% trans 'Surface' %}
 | 
					                    {% trans 'Surface' %}
 | 
				
			||||||
                </th>
 | 
					                </th>
 | 
				
			||||||
@ -46,8 +49,15 @@
 | 
				
			|||||||
                <td class="align-middle">
 | 
					                <td class="align-middle">
 | 
				
			||||||
                    {{ state.biotope_type }}
 | 
					                    {{ state.biotope_type }}
 | 
				
			||||||
                </td>
 | 
					                </td>
 | 
				
			||||||
 | 
					                <td class="align-middle">
 | 
				
			||||||
 | 
					                    {% for biotope_extra in state.biotope_type_details.all %}
 | 
				
			||||||
 | 
					                    <div class="mb-2" title="{{ biotope_extra }}">
 | 
				
			||||||
 | 
					                        {{ biotope_extra.long_name }}
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					                    {% endfor %}
 | 
				
			||||||
 | 
					                </td>
 | 
				
			||||||
                <td class="align-middle">{{ state.surface|floatformat:2 }} m²</td>
 | 
					                <td class="align-middle">{{ state.surface|floatformat:2 }} m²</td>
 | 
				
			||||||
                <td>
 | 
					                <td class="align-middle">
 | 
				
			||||||
                    {% if is_default_member and has_access  %}
 | 
					                    {% if is_default_member and has_access  %}
 | 
				
			||||||
                    <button data-form-url="{% url 'ema:state-remove' obj.id state.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove state' %}">
 | 
					                    <button data-form-url="{% url 'ema:state-remove' obj.id state.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove state' %}">
 | 
				
			||||||
                        {% fa5_icon 'trash' %}
 | 
					                        {% fa5_icon 'trash' %}
 | 
				
			||||||
 | 
				
			|||||||
@ -29,9 +29,12 @@
 | 
				
			|||||||
        <table class="table table-hover">
 | 
					        <table class="table table-hover">
 | 
				
			||||||
            <thead>
 | 
					            <thead>
 | 
				
			||||||
            <tr>
 | 
					            <tr>
 | 
				
			||||||
                <th scope="col">
 | 
					                <th class="w-25" scope="col">
 | 
				
			||||||
                    {% trans 'Biotope type' %}
 | 
					                    {% trans 'Biotope type' %}
 | 
				
			||||||
                </th>
 | 
					                </th>
 | 
				
			||||||
 | 
					                <th class="w-25" scope="col">
 | 
				
			||||||
 | 
					                    {% trans 'Biotope additional type' %}
 | 
				
			||||||
 | 
					                </th>
 | 
				
			||||||
                <th scope="col">
 | 
					                <th scope="col">
 | 
				
			||||||
                    {% trans 'Surface' %}
 | 
					                    {% trans 'Surface' %}
 | 
				
			||||||
                </th>
 | 
					                </th>
 | 
				
			||||||
@ -46,8 +49,15 @@
 | 
				
			|||||||
                <td class="align-middle">
 | 
					                <td class="align-middle">
 | 
				
			||||||
                    {{ state.biotope_type }}
 | 
					                    {{ state.biotope_type }}
 | 
				
			||||||
                </td>
 | 
					                </td>
 | 
				
			||||||
 | 
					                <td class="align-middle">
 | 
				
			||||||
 | 
					                    {% for biotope_extra in state.biotope_type_details.all %}
 | 
				
			||||||
 | 
					                    <div class="mb-2" title="{{ biotope_extra }}">
 | 
				
			||||||
 | 
					                        {{ biotope_extra.long_name }}
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					                    {% endfor %}
 | 
				
			||||||
 | 
					                </td>
 | 
				
			||||||
                <td class="align-middle">{{ state.surface|floatformat:2 }} m²</td>
 | 
					                <td class="align-middle">{{ state.surface|floatformat:2 }} m²</td>
 | 
				
			||||||
                <td>
 | 
					                <td class="align-middle">
 | 
				
			||||||
                    {% if is_default_member and has_access  %}
 | 
					                    {% if is_default_member and has_access  %}
 | 
				
			||||||
                    <button data-form-url="{% url 'ema:state-remove' obj.id state.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove state' %}">
 | 
					                    <button data-form-url="{% url 'ema:state-remove' obj.id state.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove state' %}">
 | 
				
			||||||
                        {% fa5_icon 'trash' %}
 | 
					                        {% fa5_icon 'trash' %}
 | 
				
			||||||
 | 
				
			|||||||
@ -11,7 +11,8 @@ from django.db.models import Q
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
from codelist.models import KonovaCode
 | 
					from codelist.models import KonovaCode
 | 
				
			||||||
from codelist.settings import CODELIST_COMPENSATION_ACTION_ID, CODELIST_BIOTOPES_ID, CODELIST_LAW_ID, \
 | 
					from codelist.settings import CODELIST_COMPENSATION_ACTION_ID, CODELIST_BIOTOPES_ID, CODELIST_LAW_ID, \
 | 
				
			||||||
    CODELIST_REGISTRATION_OFFICE_ID, CODELIST_CONSERVATION_OFFICE_ID, CODELIST_PROCESS_TYPE_ID
 | 
					    CODELIST_REGISTRATION_OFFICE_ID, CODELIST_CONSERVATION_OFFICE_ID, CODELIST_PROCESS_TYPE_ID, \
 | 
				
			||||||
 | 
					    CODELIST_BIOTOPES_EXTRA_CODES_ID, CODELIST_COMPENSATION_ACTION_DETAIL_ID
 | 
				
			||||||
from compensation.models import EcoAccount
 | 
					from compensation.models import EcoAccount
 | 
				
			||||||
from intervention.models import Intervention
 | 
					from intervention.models import Intervention
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -94,6 +95,7 @@ class KonovaCodeAutocomplete(Select2GroupQuerySetView):
 | 
				
			|||||||
    * c: Search inside a special codelist
 | 
					    * c: Search inside a special codelist
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
 | 
					    paginate_by = 50
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def order_by(self, qs):
 | 
					    def order_by(self, qs):
 | 
				
			||||||
        """ Orders by a predefined value
 | 
					        """ Orders by a predefined value
 | 
				
			||||||
@ -162,6 +164,24 @@ class CompensationActionCodeAutocomplete(KonovaCodeAutocomplete):
 | 
				
			|||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class CompensationActionDetailCodeAutocomplete(KonovaCodeAutocomplete):
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    Due to limitations of the django dal package, we need to subclass for each code list
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    group_by_related = "parent"
 | 
				
			||||||
 | 
					    related_field_name = "long_name"
 | 
				
			||||||
 | 
					    paginate_by = 200
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __init__(self, *args, **kwargs):
 | 
				
			||||||
 | 
					        self.c = CODELIST_COMPENSATION_ACTION_DETAIL_ID
 | 
				
			||||||
 | 
					        super().__init__(*args, **kwargs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def order_by(self, qs):
 | 
				
			||||||
 | 
					        return qs.order_by(
 | 
				
			||||||
 | 
					            "parent__long_name"
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class BiotopeCodeAutocomplete(KonovaCodeAutocomplete):
 | 
					class BiotopeCodeAutocomplete(KonovaCodeAutocomplete):
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    Due to limitations of the django dal package, we need to subclass for each code list
 | 
					    Due to limitations of the django dal package, we need to subclass for each code list
 | 
				
			||||||
@ -192,6 +212,37 @@ class BiotopeCodeAutocomplete(KonovaCodeAutocomplete):
 | 
				
			|||||||
        return f"{result.long_name} ({result.short_name})"
 | 
					        return f"{result.long_name} ({result.short_name})"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class BiotopeExtraCodeAutocomplete(KonovaCodeAutocomplete):
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    Due to limitations of the django dal package, we need to subclass for each code list
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    group_by_related = "parent"
 | 
				
			||||||
 | 
					    related_field_name = "long_name"
 | 
				
			||||||
 | 
					    paginate_by = 200
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __init__(self, *args, **kwargs):
 | 
				
			||||||
 | 
					        self.c = CODELIST_BIOTOPES_EXTRA_CODES_ID
 | 
				
			||||||
 | 
					        super().__init__(*args, **kwargs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def order_by(self, qs):
 | 
				
			||||||
 | 
					        """ Orders by a predefined value
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Wrapped in a function to provide inheritance-based different orders
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Args:
 | 
				
			||||||
 | 
					            qs (QuerySet): The queryset to be ordered
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Returns:
 | 
				
			||||||
 | 
					            qs (QuerySet): The ordered queryset
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        return qs.order_by(
 | 
				
			||||||
 | 
					            "parent__long_name",
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def get_result_label(self, result):
 | 
				
			||||||
 | 
					        return f"{result.long_name} ({result.short_name})"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class LawCodeAutocomplete(KonovaCodeAutocomplete):
 | 
					class LawCodeAutocomplete(KonovaCodeAutocomplete):
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    Due to limitations of the django dal package, we need to subclass for each code list
 | 
					    Due to limitations of the django dal package, we need to subclass for each code list
 | 
				
			||||||
 | 
				
			|||||||
@ -121,18 +121,12 @@ a {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
.card{
 | 
					.card{
 | 
				
			||||||
    margin: 0 0.5rem 0.5rem 0;
 | 
					    margin: 0 0.5rem 0.5rem 0;
 | 
				
			||||||
    font-size: 12px;
 | 
					    font-size: 0.9rem;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.card:hover{
 | 
					.card:hover{
 | 
				
			||||||
    box-shadow: 1px 1px 3px var(--rlp-gray-light);
 | 
					    box-shadow: 1px 1px 3px var(--rlp-gray-light);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.card .card-text{
 | 
					 | 
				
			||||||
    font-size: 12px;
 | 
					 | 
				
			||||||
    max-height: 150px;
 | 
					 | 
				
			||||||
    overflow: auto;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.qs-box{
 | 
					.qs-box{
 | 
				
			||||||
    background-color: var(--rlp-red);
 | 
					    background-color: var(--rlp-red);
 | 
				
			||||||
    color: white;
 | 
					    color: white;
 | 
				
			||||||
@ -215,6 +209,11 @@ Overwrites bootstrap .btn:focus box shadow color
 | 
				
			|||||||
    color: var(--rlp-red);
 | 
					    color: var(--rlp-red);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.scroll-150{
 | 
				
			||||||
 | 
					    max-height: 150px;
 | 
				
			||||||
 | 
					    overflow: auto;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.scroll-300{
 | 
					.scroll-300{
 | 
				
			||||||
    max-height: 300px;
 | 
					    max-height: 300px;
 | 
				
			||||||
    overflow: auto;
 | 
					    overflow: auto;
 | 
				
			||||||
@ -229,4 +228,7 @@ No other approach worked to get the autocomplete fields to full width of parent
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
.select2-results__option--highlighted{
 | 
					.select2-results__option--highlighted{
 | 
				
			||||||
    background-color: var(--rlp-red) !important;
 | 
					    background-color: var(--rlp-red) !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.select2-container--default .select2-results > .select2-results__options{
 | 
				
			||||||
 | 
					    max-height: 500px !important;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -19,7 +19,7 @@
 | 
				
			|||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div class="card-body">
 | 
					        <div class="card-body">
 | 
				
			||||||
            <div class="card-text font-italic">
 | 
					            <div class="scroll-150 font-italic">
 | 
				
			||||||
                {{obj.comment}}
 | 
					                {{obj.comment}}
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
 | 
				
			|||||||
@ -57,3 +57,33 @@ class AutocompleteTestCase(BaseTestCase):
 | 
				
			|||||||
        )
 | 
					        )
 | 
				
			||||||
        content = json.loads(response.content)
 | 
					        content = json.loads(response.content)
 | 
				
			||||||
        self.assertEqual([], content["results"])
 | 
					        self.assertEqual([], content["results"])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_all_autocompletes(self):
 | 
				
			||||||
 | 
					        tests = [
 | 
				
			||||||
 | 
					            "accounts-autocomplete",
 | 
				
			||||||
 | 
					            "interventions-autocomplete",
 | 
				
			||||||
 | 
					            "codes-compensation-action-autocomplete",
 | 
				
			||||||
 | 
					            "codes-compensation-action-detail-autocomplete",
 | 
				
			||||||
 | 
					            "codes-biotope-autocomplete",
 | 
				
			||||||
 | 
					            "codes-biotope-extra-type-autocomplete",
 | 
				
			||||||
 | 
					            "codes-law-autocomplete",
 | 
				
			||||||
 | 
					            "codes-process-type-autocomplete",
 | 
				
			||||||
 | 
					            "codes-registration-office-autocomplete",
 | 
				
			||||||
 | 
					            "codes-conservation-office-autocomplete",
 | 
				
			||||||
 | 
					            "share-user-autocomplete",
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					        for test in tests:
 | 
				
			||||||
 | 
					            self.client.login(username=self.superuser.username, password=self.superuser_pw)
 | 
				
			||||||
 | 
					            user_autocomplete_url = reverse(test)
 | 
				
			||||||
 | 
					            data = {
 | 
				
			||||||
 | 
					                "q": ""
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            response = self.client.get(
 | 
				
			||||||
 | 
					                user_autocomplete_url,
 | 
				
			||||||
 | 
					                data,
 | 
				
			||||||
 | 
					            )
 | 
				
			||||||
 | 
					            content = json.loads(response.content)
 | 
				
			||||||
 | 
					            try:
 | 
				
			||||||
 | 
					                content["results"]
 | 
				
			||||||
 | 
					            except KeyError:
 | 
				
			||||||
 | 
					                self.fail(f"No results returned for autocomplete {test}")
 | 
				
			||||||
 | 
				
			|||||||
@ -20,7 +20,7 @@ from django.urls import path, include
 | 
				
			|||||||
from konova.autocompletes import EcoAccountAutocomplete, \
 | 
					from konova.autocompletes import EcoAccountAutocomplete, \
 | 
				
			||||||
    InterventionAutocomplete, CompensationActionCodeAutocomplete, BiotopeCodeAutocomplete, LawCodeAutocomplete, \
 | 
					    InterventionAutocomplete, CompensationActionCodeAutocomplete, BiotopeCodeAutocomplete, LawCodeAutocomplete, \
 | 
				
			||||||
    RegistrationOfficeCodeAutocomplete, ConservationOfficeCodeAutocomplete, ProcessTypeCodeAutocomplete, \
 | 
					    RegistrationOfficeCodeAutocomplete, ConservationOfficeCodeAutocomplete, ProcessTypeCodeAutocomplete, \
 | 
				
			||||||
    ShareUserAutocomplete
 | 
					    ShareUserAutocomplete, BiotopeExtraCodeAutocomplete, CompensationActionDetailCodeAutocomplete
 | 
				
			||||||
from konova.settings import SSO_SERVER, SSO_PUBLIC_KEY, SSO_PRIVATE_KEY, DEBUG
 | 
					from konova.settings import SSO_SERVER, SSO_PUBLIC_KEY, SSO_PRIVATE_KEY, DEBUG
 | 
				
			||||||
from konova.sso.sso import KonovaSSOClient
 | 
					from konova.sso.sso import KonovaSSOClient
 | 
				
			||||||
from konova.views import logout_view, home_view, remove_deadline_view
 | 
					from konova.views import logout_view, home_view, remove_deadline_view
 | 
				
			||||||
@ -47,7 +47,9 @@ urlpatterns = [
 | 
				
			|||||||
    path("atcmplt/eco-accounts", EcoAccountAutocomplete.as_view(), name="accounts-autocomplete"),
 | 
					    path("atcmplt/eco-accounts", EcoAccountAutocomplete.as_view(), name="accounts-autocomplete"),
 | 
				
			||||||
    path("atcmplt/interventions", InterventionAutocomplete.as_view(), name="interventions-autocomplete"),
 | 
					    path("atcmplt/interventions", InterventionAutocomplete.as_view(), name="interventions-autocomplete"),
 | 
				
			||||||
    path("atcmplt/codes/comp/action", CompensationActionCodeAutocomplete.as_view(), name="codes-compensation-action-autocomplete"),
 | 
					    path("atcmplt/codes/comp/action", CompensationActionCodeAutocomplete.as_view(), name="codes-compensation-action-autocomplete"),
 | 
				
			||||||
 | 
					    path("atcmplt/codes/comp/action/detail", CompensationActionDetailCodeAutocomplete.as_view(), name="codes-compensation-action-detail-autocomplete"),
 | 
				
			||||||
    path("atcmplt/codes/biotope", BiotopeCodeAutocomplete.as_view(), name="codes-biotope-autocomplete"),
 | 
					    path("atcmplt/codes/biotope", BiotopeCodeAutocomplete.as_view(), name="codes-biotope-autocomplete"),
 | 
				
			||||||
 | 
					    path("atcmplt/codes/biotope/extra", BiotopeExtraCodeAutocomplete.as_view(), name="codes-biotope-extra-type-autocomplete"),
 | 
				
			||||||
    path("atcmplt/codes/law", LawCodeAutocomplete.as_view(), name="codes-law-autocomplete"),
 | 
					    path("atcmplt/codes/law", LawCodeAutocomplete.as_view(), name="codes-law-autocomplete"),
 | 
				
			||||||
    path("atcmplt/codes/prc-type", ProcessTypeCodeAutocomplete.as_view(), name="codes-process-type-autocomplete"),
 | 
					    path("atcmplt/codes/prc-type", ProcessTypeCodeAutocomplete.as_view(), name="codes-process-type-autocomplete"),
 | 
				
			||||||
    path("atcmplt/codes/reg-off", RegistrationOfficeCodeAutocomplete.as_view(), name="codes-registration-office-autocomplete"),
 | 
					    path("atcmplt/codes/reg-off", RegistrationOfficeCodeAutocomplete.as_view(), name="codes-registration-office-autocomplete"),
 | 
				
			||||||
 | 
				
			|||||||
@ -60,7 +60,7 @@ def home_view(request: HttpRequest):
 | 
				
			|||||||
        unpublish_on__gte=now,
 | 
					        unpublish_on__gte=now,
 | 
				
			||||||
    ).order_by(
 | 
					    ).order_by(
 | 
				
			||||||
        "-publish_on"
 | 
					        "-publish_on"
 | 
				
			||||||
    )[:4]
 | 
					    )[:3]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # First fetch all valid objects (undeleted, only newest versions)
 | 
					    # First fetch all valid objects (undeleted, only newest versions)
 | 
				
			||||||
    interventions = Intervention.objects.filter(
 | 
					    interventions = Intervention.objects.filter(
 | 
				
			||||||
 | 
				
			|||||||
										
											Binary file not shown.
										
									
								
							@ -3,9 +3,9 @@
 | 
				
			|||||||
# This file is distributed under the same license as the PACKAGE package.
 | 
					# This file is distributed under the same license as the PACKAGE package.
 | 
				
			||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 | 
					# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
#: compensation/filters.py:122 compensation/forms/modalForms.py:34
 | 
					#: compensation/filters.py:122 compensation/forms/modalForms.py:35
 | 
				
			||||||
#: compensation/forms/modalForms.py:45 compensation/forms/modalForms.py:61
 | 
					#: compensation/forms/modalForms.py:46 compensation/forms/modalForms.py:62
 | 
				
			||||||
#: compensation/forms/modalForms.py:238 compensation/forms/modalForms.py:316
 | 
					#: compensation/forms/modalForms.py:256 compensation/forms/modalForms.py:351
 | 
				
			||||||
#: intervention/forms/forms.py:52 intervention/forms/forms.py:154
 | 
					#: intervention/forms/forms.py:52 intervention/forms/forms.py:154
 | 
				
			||||||
#: intervention/forms/forms.py:166 intervention/forms/modalForms.py:125
 | 
					#: intervention/forms/forms.py:166 intervention/forms/modalForms.py:125
 | 
				
			||||||
#: intervention/forms/modalForms.py:138 intervention/forms/modalForms.py:151
 | 
					#: intervention/forms/modalForms.py:138 intervention/forms/modalForms.py:151
 | 
				
			||||||
@ -26,7 +26,7 @@ msgid ""
 | 
				
			|||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Project-Id-Version: PACKAGE VERSION\n"
 | 
					"Project-Id-Version: PACKAGE VERSION\n"
 | 
				
			||||||
"Report-Msgid-Bugs-To: \n"
 | 
					"Report-Msgid-Bugs-To: \n"
 | 
				
			||||||
"POT-Creation-Date: 2022-01-28 16:27+0100\n"
 | 
					"POT-Creation-Date: 2022-01-31 12:41+0100\n"
 | 
				
			||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 | 
					"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 | 
				
			||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 | 
					"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 | 
				
			||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
 | 
					"Language-Team: LANGUAGE <LL@li.org>\n"
 | 
				
			||||||
@ -95,7 +95,7 @@ msgstr ""
 | 
				
			|||||||
#: analysis/templates/analysis/reports/includes/eco_account/amount.html:3
 | 
					#: analysis/templates/analysis/reports/includes/eco_account/amount.html:3
 | 
				
			||||||
#: analysis/templates/analysis/reports/includes/intervention/amount.html:3
 | 
					#: analysis/templates/analysis/reports/includes/intervention/amount.html:3
 | 
				
			||||||
#: analysis/templates/analysis/reports/includes/old_data/amount.html:3
 | 
					#: analysis/templates/analysis/reports/includes/old_data/amount.html:3
 | 
				
			||||||
#: compensation/forms/modalForms.py:299
 | 
					#: compensation/forms/modalForms.py:334
 | 
				
			||||||
#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:34
 | 
					#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:34
 | 
				
			||||||
#: intervention/templates/intervention/detail/includes/deductions.html:31
 | 
					#: intervention/templates/intervention/detail/includes/deductions.html:31
 | 
				
			||||||
msgid "Amount"
 | 
					msgid "Amount"
 | 
				
			||||||
@ -177,8 +177,9 @@ msgstr "Einzelflächen"
 | 
				
			|||||||
#: analysis/templates/analysis/reports/includes/intervention/laws.html:23
 | 
					#: analysis/templates/analysis/reports/includes/intervention/laws.html:23
 | 
				
			||||||
#: analysis/templates/analysis/reports/includes/intervention/laws.html:43
 | 
					#: analysis/templates/analysis/reports/includes/intervention/laws.html:43
 | 
				
			||||||
#: analysis/templates/analysis/reports/includes/old_data/amount.html:19
 | 
					#: analysis/templates/analysis/reports/includes/old_data/amount.html:19
 | 
				
			||||||
#: konova/templates/konova/home.html:23 konova/templates/konova/home.html:61
 | 
					#: konova/templates/konova/includes/quickstart/compensations.html:16
 | 
				
			||||||
#: konova/templates/konova/home.html:100
 | 
					#: konova/templates/konova/includes/quickstart/ecoaccounts.html:16
 | 
				
			||||||
 | 
					#: konova/templates/konova/includes/quickstart/interventions.html:16
 | 
				
			||||||
msgid "Total"
 | 
					msgid "Total"
 | 
				
			||||||
msgstr "Insgesamt"
 | 
					msgstr "Insgesamt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -212,13 +213,13 @@ msgstr "Abbuchungen"
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#: analysis/templates/analysis/reports/includes/eco_account/deductions.html:9
 | 
					#: analysis/templates/analysis/reports/includes/eco_account/deductions.html:9
 | 
				
			||||||
#: analysis/templates/analysis/reports/includes/eco_account/deductions.html:11
 | 
					#: analysis/templates/analysis/reports/includes/eco_account/deductions.html:11
 | 
				
			||||||
#: compensation/forms/modalForms.py:133
 | 
					#: compensation/forms/modalForms.py:151
 | 
				
			||||||
#: compensation/templates/compensation/detail/compensation/includes/states-after.html:36
 | 
					#: compensation/templates/compensation/detail/compensation/includes/states-after.html:39
 | 
				
			||||||
#: compensation/templates/compensation/detail/compensation/includes/states-before.html:36
 | 
					#: compensation/templates/compensation/detail/compensation/includes/states-before.html:39
 | 
				
			||||||
#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:36
 | 
					#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:39
 | 
				
			||||||
#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:36
 | 
					#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:39
 | 
				
			||||||
#: ema/templates/ema/detail/includes/states-after.html:36
 | 
					#: ema/templates/ema/detail/includes/states-after.html:39
 | 
				
			||||||
#: ema/templates/ema/detail/includes/states-before.html:36
 | 
					#: ema/templates/ema/detail/includes/states-before.html:39
 | 
				
			||||||
#: intervention/forms/modalForms.py:295
 | 
					#: intervention/forms/modalForms.py:295
 | 
				
			||||||
msgid "Surface"
 | 
					msgid "Surface"
 | 
				
			||||||
msgstr "Fläche"
 | 
					msgstr "Fläche"
 | 
				
			||||||
@ -240,12 +241,13 @@ msgstr "Kompensationsart"
 | 
				
			|||||||
#: analysis/templates/analysis/reports/includes/old_data/amount.html:29
 | 
					#: analysis/templates/analysis/reports/includes/old_data/amount.html:29
 | 
				
			||||||
#: compensation/tables.py:85
 | 
					#: compensation/tables.py:85
 | 
				
			||||||
#: compensation/templates/compensation/detail/compensation/view.html:19
 | 
					#: compensation/templates/compensation/detail/compensation/view.html:19
 | 
				
			||||||
#: konova/templates/konova/home.html:49 templates/navbars/navbar.html:28
 | 
					#: konova/templates/konova/includes/quickstart/compensations.html:4
 | 
				
			||||||
 | 
					#: templates/navbars/navbar.html:28
 | 
				
			||||||
msgid "Compensation"
 | 
					msgid "Compensation"
 | 
				
			||||||
msgstr "Kompensation"
 | 
					msgstr "Kompensation"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: analysis/templates/analysis/reports/includes/intervention/compensated_by.html:21
 | 
					#: analysis/templates/analysis/reports/includes/intervention/compensated_by.html:21
 | 
				
			||||||
#: compensation/forms/modalForms.py:74
 | 
					#: compensation/forms/modalForms.py:75
 | 
				
			||||||
msgid "Payment"
 | 
					msgid "Payment"
 | 
				
			||||||
msgstr "Zahlung"
 | 
					msgstr "Zahlung"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -285,7 +287,8 @@ msgstr "Typ"
 | 
				
			|||||||
#: intervention/forms/modalForms.py:306 intervention/forms/modalForms.py:313
 | 
					#: intervention/forms/modalForms.py:306 intervention/forms/modalForms.py:313
 | 
				
			||||||
#: intervention/tables.py:89
 | 
					#: intervention/tables.py:89
 | 
				
			||||||
#: intervention/templates/intervention/detail/view.html:19
 | 
					#: intervention/templates/intervention/detail/view.html:19
 | 
				
			||||||
#: konova/templates/konova/home.html:11 templates/navbars/navbar.html:22
 | 
					#: konova/templates/konova/includes/quickstart/interventions.html:4
 | 
				
			||||||
 | 
					#: templates/navbars/navbar.html:22
 | 
				
			||||||
msgid "Intervention"
 | 
					msgid "Intervention"
 | 
				
			||||||
msgstr "Eingriff"
 | 
					msgstr "Eingriff"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -293,7 +296,8 @@ msgstr "Eingriff"
 | 
				
			|||||||
#: compensation/tables.py:226
 | 
					#: compensation/tables.py:226
 | 
				
			||||||
#: compensation/templates/compensation/detail/eco_account/view.html:19
 | 
					#: compensation/templates/compensation/detail/eco_account/view.html:19
 | 
				
			||||||
#: intervention/forms/modalForms.py:279 intervention/forms/modalForms.py:286
 | 
					#: intervention/forms/modalForms.py:279 intervention/forms/modalForms.py:286
 | 
				
			||||||
#: konova/templates/konova/home.html:88 templates/navbars/navbar.html:34
 | 
					#: konova/templates/konova/includes/quickstart/ecoaccounts.html:4
 | 
				
			||||||
 | 
					#: templates/navbars/navbar.html:34
 | 
				
			||||||
msgid "Eco-account"
 | 
					msgid "Eco-account"
 | 
				
			||||||
msgstr "Ökokonto"
 | 
					msgstr "Ökokonto"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -349,9 +353,9 @@ msgstr "Aussagekräftiger Titel"
 | 
				
			|||||||
msgid "Compensation XY; Location ABC"
 | 
					msgid "Compensation XY; Location ABC"
 | 
				
			||||||
msgstr "Kompensation XY; Flur ABC"
 | 
					msgstr "Kompensation XY; Flur ABC"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/forms/forms.py:57 compensation/forms/modalForms.py:60
 | 
					#: compensation/forms/forms.py:57 compensation/forms/modalForms.py:61
 | 
				
			||||||
#: compensation/forms/modalForms.py:237 compensation/forms/modalForms.py:315
 | 
					#: compensation/forms/modalForms.py:255 compensation/forms/modalForms.py:350
 | 
				
			||||||
#: compensation/templates/compensation/detail/compensation/includes/actions.html:34
 | 
					#: compensation/templates/compensation/detail/compensation/includes/actions.html:37
 | 
				
			||||||
#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:34
 | 
					#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:34
 | 
				
			||||||
#: compensation/templates/compensation/detail/compensation/includes/documents.html:31
 | 
					#: compensation/templates/compensation/detail/compensation/includes/documents.html:31
 | 
				
			||||||
#: compensation/templates/compensation/detail/eco_account/includes/actions.html:34
 | 
					#: compensation/templates/compensation/detail/eco_account/includes/actions.html:34
 | 
				
			||||||
@ -465,66 +469,80 @@ msgstr "Ökokonto XY; Flur ABC"
 | 
				
			|||||||
msgid "Edit Eco-Account"
 | 
					msgid "Edit Eco-Account"
 | 
				
			||||||
msgstr "Ökokonto bearbeiten"
 | 
					msgstr "Ökokonto bearbeiten"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/forms/modalForms.py:35
 | 
					#: compensation/forms/modalForms.py:36
 | 
				
			||||||
msgid "in Euro"
 | 
					msgid "in Euro"
 | 
				
			||||||
msgstr "in Euro"
 | 
					msgstr "in Euro"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/forms/modalForms.py:44
 | 
					#: compensation/forms/modalForms.py:45
 | 
				
			||||||
#: intervention/templates/intervention/detail/includes/payments.html:31
 | 
					#: intervention/templates/intervention/detail/includes/payments.html:31
 | 
				
			||||||
msgid "Due on"
 | 
					msgid "Due on"
 | 
				
			||||||
msgstr "Fällig am"
 | 
					msgstr "Fällig am"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/forms/modalForms.py:47
 | 
					#: compensation/forms/modalForms.py:48
 | 
				
			||||||
msgid "Due on which date"
 | 
					msgid "Due on which date"
 | 
				
			||||||
msgstr "Zahlung wird an diesem Datum erwartet"
 | 
					msgstr "Zahlung wird an diesem Datum erwartet"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/forms/modalForms.py:62 compensation/forms/modalForms.py:239
 | 
					#: compensation/forms/modalForms.py:63 compensation/forms/modalForms.py:257
 | 
				
			||||||
#: compensation/forms/modalForms.py:317 intervention/forms/modalForms.py:152
 | 
					#: compensation/forms/modalForms.py:352 intervention/forms/modalForms.py:152
 | 
				
			||||||
#: konova/forms.py:375
 | 
					#: konova/forms.py:375
 | 
				
			||||||
msgid "Additional comment, maximum {} letters"
 | 
					msgid "Additional comment, maximum {} letters"
 | 
				
			||||||
msgstr "Zusätzlicher Kommentar, maximal {} Zeichen"
 | 
					msgstr "Zusätzlicher Kommentar, maximal {} Zeichen"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/forms/modalForms.py:75
 | 
					#: compensation/forms/modalForms.py:76
 | 
				
			||||||
msgid "Add a payment for intervention '{}'"
 | 
					msgid "Add a payment for intervention '{}'"
 | 
				
			||||||
msgstr "Neue Ersatzzahlung zu Eingriff '{}' hinzufügen"
 | 
					msgstr "Neue Ersatzzahlung zu Eingriff '{}' hinzufügen"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/forms/modalForms.py:95
 | 
					#: compensation/forms/modalForms.py:96
 | 
				
			||||||
msgid "If there is no date you can enter, please explain why."
 | 
					msgid "If there is no date you can enter, please explain why."
 | 
				
			||||||
msgstr "Falls Sie kein Datum angeben können, erklären Sie bitte weshalb."
 | 
					msgstr "Falls Sie kein Datum angeben können, erklären Sie bitte weshalb."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/forms/modalForms.py:114 compensation/forms/modalForms.py:126
 | 
					#: compensation/forms/modalForms.py:115 compensation/forms/modalForms.py:127
 | 
				
			||||||
msgid "Biotope Type"
 | 
					msgid "Biotope Type"
 | 
				
			||||||
msgstr "Biotoptyp"
 | 
					msgstr "Biotoptyp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/forms/modalForms.py:117
 | 
					#: compensation/forms/modalForms.py:118
 | 
				
			||||||
msgid "Select the biotope type"
 | 
					msgid "Select the biotope type"
 | 
				
			||||||
msgstr "Biotoptyp wählen"
 | 
					msgstr "Biotoptyp wählen"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/forms/modalForms.py:136 intervention/forms/modalForms.py:297
 | 
					#: compensation/forms/modalForms.py:132 compensation/forms/modalForms.py:144
 | 
				
			||||||
 | 
					#: compensation/templates/compensation/detail/compensation/includes/states-after.html:36
 | 
				
			||||||
 | 
					#: compensation/templates/compensation/detail/compensation/includes/states-before.html:36
 | 
				
			||||||
 | 
					#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:36
 | 
				
			||||||
 | 
					#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:36
 | 
				
			||||||
 | 
					#: ema/templates/ema/detail/includes/states-after.html:36
 | 
				
			||||||
 | 
					#: ema/templates/ema/detail/includes/states-before.html:36
 | 
				
			||||||
 | 
					msgid "Biotope additional type"
 | 
				
			||||||
 | 
					msgstr "Zusatzbezeichnung"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: compensation/forms/modalForms.py:135
 | 
				
			||||||
 | 
					msgid "Select an additional biotope type"
 | 
				
			||||||
 | 
					msgstr "Zusatzbezeichnung wählen"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: compensation/forms/modalForms.py:154 intervention/forms/modalForms.py:297
 | 
				
			||||||
msgid "in m²"
 | 
					msgid "in m²"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/forms/modalForms.py:147
 | 
					#: compensation/forms/modalForms.py:165
 | 
				
			||||||
msgid "New state"
 | 
					msgid "New state"
 | 
				
			||||||
msgstr "Neuer Zustand"
 | 
					msgstr "Neuer Zustand"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/forms/modalForms.py:148
 | 
					#: compensation/forms/modalForms.py:166
 | 
				
			||||||
msgid "Insert data for the new state"
 | 
					msgid "Insert data for the new state"
 | 
				
			||||||
msgstr "Geben Sie die Daten des neuen Zustandes ein"
 | 
					msgstr "Geben Sie die Daten des neuen Zustandes ein"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/forms/modalForms.py:155 konova/forms.py:190
 | 
					#: compensation/forms/modalForms.py:173 konova/forms.py:190
 | 
				
			||||||
msgid "Object removed"
 | 
					msgid "Object removed"
 | 
				
			||||||
msgstr "Objekt entfernt"
 | 
					msgstr "Objekt entfernt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/forms/modalForms.py:209
 | 
					#: compensation/forms/modalForms.py:227
 | 
				
			||||||
msgid "Deadline Type"
 | 
					msgid "Deadline Type"
 | 
				
			||||||
msgstr "Fristart"
 | 
					msgstr "Fristart"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/forms/modalForms.py:212
 | 
					#: compensation/forms/modalForms.py:230
 | 
				
			||||||
msgid "Select the deadline type"
 | 
					msgid "Select the deadline type"
 | 
				
			||||||
msgstr "Fristart wählen"
 | 
					msgstr "Fristart wählen"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/forms/modalForms.py:221
 | 
					#: compensation/forms/modalForms.py:239
 | 
				
			||||||
#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:31
 | 
					#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:31
 | 
				
			||||||
#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:31
 | 
					#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:31
 | 
				
			||||||
#: ema/templates/ema/detail/includes/deadlines.html:31
 | 
					#: ema/templates/ema/detail/includes/deadlines.html:31
 | 
				
			||||||
@ -532,43 +550,43 @@ msgstr "Fristart wählen"
 | 
				
			|||||||
msgid "Date"
 | 
					msgid "Date"
 | 
				
			||||||
msgstr "Datum"
 | 
					msgstr "Datum"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/forms/modalForms.py:224
 | 
					#: compensation/forms/modalForms.py:242
 | 
				
			||||||
msgid "Select date"
 | 
					msgid "Select date"
 | 
				
			||||||
msgstr "Datum wählen"
 | 
					msgstr "Datum wählen"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/forms/modalForms.py:251
 | 
					#: compensation/forms/modalForms.py:269
 | 
				
			||||||
msgid "New deadline"
 | 
					msgid "New deadline"
 | 
				
			||||||
msgstr "Neue Frist"
 | 
					msgstr "Neue Frist"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/forms/modalForms.py:252
 | 
					#: compensation/forms/modalForms.py:270
 | 
				
			||||||
msgid "Insert data for the new deadline"
 | 
					msgid "Insert data for the new deadline"
 | 
				
			||||||
msgstr "Geben Sie die Daten der neuen Frist ein"
 | 
					msgstr "Geben Sie die Daten der neuen Frist ein"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/forms/modalForms.py:270
 | 
					#: compensation/forms/modalForms.py:288
 | 
				
			||||||
msgid "Action Type"
 | 
					msgid "Action Type"
 | 
				
			||||||
msgstr "Maßnahmentyp"
 | 
					msgstr "Maßnahmentyp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/forms/modalForms.py:273
 | 
					#: compensation/forms/modalForms.py:291
 | 
				
			||||||
msgid "Select the action type"
 | 
					msgid "Select the action type"
 | 
				
			||||||
msgstr "Maßnahmentyp wählen"
 | 
					msgstr "Maßnahmentyp wählen"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/forms/modalForms.py:282
 | 
					#: compensation/forms/modalForms.py:300
 | 
				
			||||||
#: compensation/templates/compensation/detail/compensation/includes/actions.html:38
 | 
					#: compensation/templates/compensation/detail/compensation/includes/actions.html:41
 | 
				
			||||||
#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:38
 | 
					#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:38
 | 
				
			||||||
#: compensation/templates/compensation/detail/compensation/includes/documents.html:35
 | 
					#: compensation/templates/compensation/detail/compensation/includes/documents.html:35
 | 
				
			||||||
#: compensation/templates/compensation/detail/compensation/includes/states-after.html:40
 | 
					#: compensation/templates/compensation/detail/compensation/includes/states-after.html:43
 | 
				
			||||||
#: compensation/templates/compensation/detail/compensation/includes/states-before.html:40
 | 
					#: compensation/templates/compensation/detail/compensation/includes/states-before.html:43
 | 
				
			||||||
#: compensation/templates/compensation/detail/eco_account/includes/actions.html:38
 | 
					#: compensation/templates/compensation/detail/eco_account/includes/actions.html:38
 | 
				
			||||||
#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:37
 | 
					#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:37
 | 
				
			||||||
#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:40
 | 
					#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:40
 | 
				
			||||||
#: compensation/templates/compensation/detail/eco_account/includes/documents.html:34
 | 
					#: compensation/templates/compensation/detail/eco_account/includes/documents.html:34
 | 
				
			||||||
#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:40
 | 
					#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:43
 | 
				
			||||||
#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:40
 | 
					#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:43
 | 
				
			||||||
#: ema/templates/ema/detail/includes/actions.html:37
 | 
					#: ema/templates/ema/detail/includes/actions.html:37
 | 
				
			||||||
#: ema/templates/ema/detail/includes/deadlines.html:37
 | 
					#: ema/templates/ema/detail/includes/deadlines.html:37
 | 
				
			||||||
#: ema/templates/ema/detail/includes/documents.html:34
 | 
					#: ema/templates/ema/detail/includes/documents.html:34
 | 
				
			||||||
#: ema/templates/ema/detail/includes/states-after.html:39
 | 
					#: ema/templates/ema/detail/includes/states-after.html:42
 | 
				
			||||||
#: ema/templates/ema/detail/includes/states-before.html:39
 | 
					#: ema/templates/ema/detail/includes/states-before.html:42
 | 
				
			||||||
#: intervention/templates/intervention/detail/includes/compensations.html:37
 | 
					#: intervention/templates/intervention/detail/includes/compensations.html:37
 | 
				
			||||||
#: intervention/templates/intervention/detail/includes/deductions.html:38
 | 
					#: intervention/templates/intervention/detail/includes/deductions.html:38
 | 
				
			||||||
#: intervention/templates/intervention/detail/includes/documents.html:35
 | 
					#: intervention/templates/intervention/detail/includes/documents.html:35
 | 
				
			||||||
@ -578,23 +596,31 @@ msgstr "Maßnahmentyp wählen"
 | 
				
			|||||||
msgid "Action"
 | 
					msgid "Action"
 | 
				
			||||||
msgstr "Aktionen"
 | 
					msgstr "Aktionen"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/forms/modalForms.py:287
 | 
					#: compensation/forms/modalForms.py:305 compensation/forms/modalForms.py:317
 | 
				
			||||||
 | 
					msgid "Action Type detail"
 | 
				
			||||||
 | 
					msgstr "Zusatzmerkmal"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: compensation/forms/modalForms.py:308
 | 
				
			||||||
 | 
					msgid "Select the action type detail"
 | 
				
			||||||
 | 
					msgstr "Zusatzmerkmal wählen"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: compensation/forms/modalForms.py:322
 | 
				
			||||||
msgid "Unit"
 | 
					msgid "Unit"
 | 
				
			||||||
msgstr "Einheit"
 | 
					msgstr "Einheit"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/forms/modalForms.py:290
 | 
					#: compensation/forms/modalForms.py:325
 | 
				
			||||||
msgid "Select the unit"
 | 
					msgid "Select the unit"
 | 
				
			||||||
msgstr "Einheit wählen"
 | 
					msgstr "Einheit wählen"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/forms/modalForms.py:302
 | 
					#: compensation/forms/modalForms.py:337
 | 
				
			||||||
msgid "Insert the amount"
 | 
					msgid "Insert the amount"
 | 
				
			||||||
msgstr "Menge eingeben"
 | 
					msgstr "Menge eingeben"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/forms/modalForms.py:328
 | 
					#: compensation/forms/modalForms.py:363
 | 
				
			||||||
msgid "New action"
 | 
					msgid "New action"
 | 
				
			||||||
msgstr "Neue Maßnahme"
 | 
					msgstr "Neue Maßnahme"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/forms/modalForms.py:329
 | 
					#: compensation/forms/modalForms.py:364
 | 
				
			||||||
msgid "Insert data for the new action"
 | 
					msgid "Insert data for the new action"
 | 
				
			||||||
msgstr "Geben Sie die Daten der neuen Maßnahme ein"
 | 
					msgstr "Geben Sie die Daten der neuen Maßnahme ein"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -724,13 +750,17 @@ msgid "Action type"
 | 
				
			|||||||
msgstr "Maßnahmentyp"
 | 
					msgstr "Maßnahmentyp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/templates/compensation/detail/compensation/includes/actions.html:31
 | 
					#: compensation/templates/compensation/detail/compensation/includes/actions.html:31
 | 
				
			||||||
 | 
					msgid "Action type details"
 | 
				
			||||||
 | 
					msgstr "Zusatzmerkmale"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: compensation/templates/compensation/detail/compensation/includes/actions.html:34
 | 
				
			||||||
#: compensation/templates/compensation/detail/eco_account/includes/actions.html:31
 | 
					#: compensation/templates/compensation/detail/eco_account/includes/actions.html:31
 | 
				
			||||||
#: ema/templates/ema/detail/includes/actions.html:31
 | 
					#: ema/templates/ema/detail/includes/actions.html:31
 | 
				
			||||||
msgctxt "Compensation"
 | 
					msgctxt "Compensation"
 | 
				
			||||||
msgid "Amount"
 | 
					msgid "Amount"
 | 
				
			||||||
msgstr "Menge"
 | 
					msgstr "Menge"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/templates/compensation/detail/compensation/includes/actions.html:53
 | 
					#: compensation/templates/compensation/detail/compensation/includes/actions.html:61
 | 
				
			||||||
#: compensation/templates/compensation/detail/eco_account/includes/actions.html:53
 | 
					#: compensation/templates/compensation/detail/eco_account/includes/actions.html:53
 | 
				
			||||||
#: ema/templates/ema/detail/includes/actions.html:51
 | 
					#: ema/templates/ema/detail/includes/actions.html:51
 | 
				
			||||||
msgid "Remove action"
 | 
					msgid "Remove action"
 | 
				
			||||||
@ -840,12 +870,12 @@ msgstr "Fehlende Flächenmengen laut Ausgangszustand: "
 | 
				
			|||||||
msgid "Biotope type"
 | 
					msgid "Biotope type"
 | 
				
			||||||
msgstr "Biotoptyp"
 | 
					msgstr "Biotoptyp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/templates/compensation/detail/compensation/includes/states-after.html:54
 | 
					#: compensation/templates/compensation/detail/compensation/includes/states-after.html:64
 | 
				
			||||||
#: compensation/templates/compensation/detail/compensation/includes/states-before.html:54
 | 
					#: compensation/templates/compensation/detail/compensation/includes/states-before.html:64
 | 
				
			||||||
#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:54
 | 
					#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:64
 | 
				
			||||||
#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:54
 | 
					#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:64
 | 
				
			||||||
#: ema/templates/ema/detail/includes/states-after.html:52
 | 
					#: ema/templates/ema/detail/includes/states-after.html:62
 | 
				
			||||||
#: ema/templates/ema/detail/includes/states-before.html:52
 | 
					#: ema/templates/ema/detail/includes/states-before.html:62
 | 
				
			||||||
msgid "Remove state"
 | 
					msgid "Remove state"
 | 
				
			||||||
msgstr "Zustand entfernen"
 | 
					msgstr "Zustand entfernen"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -876,13 +906,13 @@ msgstr "Ist CEF Maßnahme"
 | 
				
			|||||||
#: compensation/templates/compensation/detail/compensation/view.html:56
 | 
					#: compensation/templates/compensation/detail/compensation/view.html:56
 | 
				
			||||||
#: venv/lib/python3.7/site-packages/django/forms/widgets.py:710
 | 
					#: venv/lib/python3.7/site-packages/django/forms/widgets.py:710
 | 
				
			||||||
msgid "Yes"
 | 
					msgid "Yes"
 | 
				
			||||||
msgstr ""
 | 
					msgstr "Ja"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/templates/compensation/detail/compensation/view.html:48
 | 
					#: compensation/templates/compensation/detail/compensation/view.html:48
 | 
				
			||||||
#: compensation/templates/compensation/detail/compensation/view.html:58
 | 
					#: compensation/templates/compensation/detail/compensation/view.html:58
 | 
				
			||||||
#: venv/lib/python3.7/site-packages/django/forms/widgets.py:711
 | 
					#: venv/lib/python3.7/site-packages/django/forms/widgets.py:711
 | 
				
			||||||
msgid "No"
 | 
					msgid "No"
 | 
				
			||||||
msgstr ""
 | 
					msgstr "Nein"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: compensation/templates/compensation/detail/compensation/view.html:53
 | 
					#: compensation/templates/compensation/detail/compensation/view.html:53
 | 
				
			||||||
msgid "Is Coherence keeping compensation"
 | 
					msgid "Is Coherence keeping compensation"
 | 
				
			||||||
@ -1725,21 +1755,6 @@ msgstr ""
 | 
				
			|||||||
msgid "English"
 | 
					msgid "English"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: konova/templates/konova/home.html:27 konova/templates/konova/home.html:65
 | 
					 | 
				
			||||||
#: konova/templates/konova/home.html:104
 | 
					 | 
				
			||||||
msgid "Shared with you"
 | 
					 | 
				
			||||||
msgstr "Für Sie freigegeben"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: konova/templates/konova/home.html:35 konova/templates/konova/home.html:73
 | 
					 | 
				
			||||||
#: konova/templates/konova/home.html:114
 | 
					 | 
				
			||||||
msgid "Create"
 | 
					 | 
				
			||||||
msgstr "Neu"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: konova/templates/konova/home.html:40 konova/templates/konova/home.html:78
 | 
					 | 
				
			||||||
#: konova/templates/konova/home.html:119
 | 
					 | 
				
			||||||
msgid "Show"
 | 
					 | 
				
			||||||
msgstr "Anzeigen"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#: konova/templates/konova/includes/parcels.html:3
 | 
					#: konova/templates/konova/includes/parcels.html:3
 | 
				
			||||||
msgid "Spatial reference"
 | 
					msgid "Spatial reference"
 | 
				
			||||||
msgstr "Raumreferenz"
 | 
					msgstr "Raumreferenz"
 | 
				
			||||||
@ -1764,6 +1779,24 @@ msgstr "Kreis"
 | 
				
			|||||||
msgid "Gemarkung"
 | 
					msgid "Gemarkung"
 | 
				
			||||||
msgstr "Gemarkung"
 | 
					msgstr "Gemarkung"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: konova/templates/konova/includes/quickstart/compensations.html:20
 | 
				
			||||||
 | 
					#: konova/templates/konova/includes/quickstart/ecoaccounts.html:20
 | 
				
			||||||
 | 
					#: konova/templates/konova/includes/quickstart/interventions.html:20
 | 
				
			||||||
 | 
					msgid "Shared with you"
 | 
				
			||||||
 | 
					msgstr "Für Sie freigegeben"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: konova/templates/konova/includes/quickstart/compensations.html:28
 | 
				
			||||||
 | 
					#: konova/templates/konova/includes/quickstart/ecoaccounts.html:30
 | 
				
			||||||
 | 
					#: konova/templates/konova/includes/quickstart/interventions.html:28
 | 
				
			||||||
 | 
					msgid "Create"
 | 
				
			||||||
 | 
					msgstr "Neu"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: konova/templates/konova/includes/quickstart/compensations.html:33
 | 
				
			||||||
 | 
					#: konova/templates/konova/includes/quickstart/ecoaccounts.html:35
 | 
				
			||||||
 | 
					#: konova/templates/konova/includes/quickstart/interventions.html:33
 | 
				
			||||||
 | 
					msgid "Show"
 | 
				
			||||||
 | 
					msgstr "Anzeigen"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: konova/templates/konova/widgets/generate-content-input.html:6
 | 
					#: konova/templates/konova/widgets/generate-content-input.html:6
 | 
				
			||||||
msgid "Generate new"
 | 
					msgid "Generate new"
 | 
				
			||||||
msgstr "Neu generieren"
 | 
					msgstr "Neu generieren"
 | 
				
			||||||
 | 
				
			|||||||
@ -10,7 +10,7 @@
 | 
				
			|||||||
                        {{msg.subject}}
 | 
					                        {{msg.subject}}
 | 
				
			||||||
                    </h6>
 | 
					                    </h6>
 | 
				
			||||||
                    <small>{% trans 'Published on' %} {{msg.publish_on}}</small>
 | 
					                    <small>{% trans 'Published on' %} {{msg.publish_on}}</small>
 | 
				
			||||||
                    <article class="card-text">{{msg.body|safe}}</article>
 | 
					                    <article class="scroll-150">{{msg.body|safe}}</article>
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
 | 
				
			|||||||
@ -19,7 +19,7 @@
 | 
				
			|||||||
                            <small> {% trans 'Published on' %} {{msg.publish_on}}</small>
 | 
					                            <small> {% trans 'Published on' %} {{msg.publish_on}}</small>
 | 
				
			||||||
                        </h5>
 | 
					                        </h5>
 | 
				
			||||||
                        <small></small>
 | 
					                        <small></small>
 | 
				
			||||||
                        <article class="card-text">{{msg.body|safe}}</article>
 | 
					                        <article class="scroll-150">{{msg.body|safe}}</article>
 | 
				
			||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
            {% endfor %}
 | 
					            {% endfor %}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user