EcoAccount index
* renames eco_withdraws to withdraws * adds EcoAccountTableFilter * changes percentage withdraw to surface withdraw --> renames amount to surface * updates EcoAccountTable * adds column for rendering rest of available account using a progress bar * adds progressbar.html to konova/custom_widgets * adds/updates translations
This commit is contained in:
		
							parent
							
								
									a7aeecde2e
								
							
						
					
					
						commit
						93c02a72ca
					
				@ -52,7 +52,7 @@ class EcoAccountWithdrawAdmin(admin.ModelAdmin):
 | 
			
		||||
        "id",
 | 
			
		||||
        "account",
 | 
			
		||||
        "intervention",
 | 
			
		||||
        "amount",
 | 
			
		||||
        "surface",
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -53,3 +53,48 @@ class CompensationTableFilter(InterventionTableFilter):
 | 
			
		||||
            )
 | 
			
		||||
        else:
 | 
			
		||||
            return queryset
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class EcoAccountTableFilter(InterventionTableFilter):
 | 
			
		||||
    """ TableFilter for eco accounts
 | 
			
		||||
 | 
			
		||||
    Based widely on InterventionTableFilter.
 | 
			
		||||
    Just some minor changes for EcoAccount model.
 | 
			
		||||
 | 
			
		||||
    """
 | 
			
		||||
 | 
			
		||||
    def _filter_show_all(self, queryset, name, value) -> QuerySet:
 | 
			
		||||
        """ Filters queryset depending on value of 'show_all' setting
 | 
			
		||||
 | 
			
		||||
        Args:
 | 
			
		||||
            queryset ():
 | 
			
		||||
            name ():
 | 
			
		||||
            value ():
 | 
			
		||||
 | 
			
		||||
        Returns:
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        if not value:
 | 
			
		||||
            return queryset.filter(
 | 
			
		||||
                users__in=[self.user],  # requesting user has access
 | 
			
		||||
            )
 | 
			
		||||
        else:
 | 
			
		||||
            return queryset
 | 
			
		||||
 | 
			
		||||
    def _filter_show_recorded(self, queryset, name, value) -> QuerySet:
 | 
			
		||||
        """ Filters queryset depending on value of 'show_recorded' setting
 | 
			
		||||
 | 
			
		||||
        Args:
 | 
			
		||||
            queryset ():
 | 
			
		||||
            name ():
 | 
			
		||||
            value ():
 | 
			
		||||
 | 
			
		||||
        Returns:
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        if not value:
 | 
			
		||||
            return queryset.filter(
 | 
			
		||||
                recorded=None,
 | 
			
		||||
            )
 | 
			
		||||
        else:
 | 
			
		||||
            return queryset
 | 
			
		||||
 | 
			
		||||
@ -175,6 +175,16 @@ class EcoAccount(AbstractCompensation):
 | 
			
		||||
        help_text="Users having access (shared with)"
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    # Refers to "verzeichnen"
 | 
			
		||||
    recorded = models.OneToOneField(
 | 
			
		||||
        UserActionLogEntry,
 | 
			
		||||
        on_delete=models.SET_NULL,
 | 
			
		||||
        null=True,
 | 
			
		||||
        blank=True,
 | 
			
		||||
        help_text="Holds data on user and timestamp of this action",
 | 
			
		||||
        related_name="+"
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    def __str__(self):
 | 
			
		||||
        return "{}".format(self.identifier)
 | 
			
		||||
 | 
			
		||||
@ -189,15 +199,14 @@ class EcoAccountWithdraw(BaseResource):
 | 
			
		||||
        null=True,
 | 
			
		||||
        blank=True,
 | 
			
		||||
        help_text="Withdrawn from",
 | 
			
		||||
        related_name="eco_withdraws",
 | 
			
		||||
        related_name="withdraws",
 | 
			
		||||
    )
 | 
			
		||||
    amount = models.FloatField(
 | 
			
		||||
    surface = models.FloatField(
 | 
			
		||||
        null=True,
 | 
			
		||||
        blank=True,
 | 
			
		||||
        help_text="Amount withdrawn (percentage)",
 | 
			
		||||
        help_text="Amount withdrawn (m²)",
 | 
			
		||||
        validators=[
 | 
			
		||||
            MinValueValidator(limit_value=0.00),
 | 
			
		||||
            MaxValueValidator(limit_value=100),
 | 
			
		||||
        ]
 | 
			
		||||
    )
 | 
			
		||||
    intervention = models.ForeignKey(
 | 
			
		||||
@ -206,8 +215,8 @@ class EcoAccountWithdraw(BaseResource):
 | 
			
		||||
        null=True,
 | 
			
		||||
        blank=True,
 | 
			
		||||
        help_text="Withdrawn for",
 | 
			
		||||
        related_name="eco_withdraws",
 | 
			
		||||
        related_name="withdraws",
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    def __str__(self):
 | 
			
		||||
        return "{} of {}".format(self.amount, self.account)
 | 
			
		||||
        return "{} of {}".format(self.surface, self.account)
 | 
			
		||||
 | 
			
		||||
@ -5,14 +5,16 @@ Contact: michel.peltriaux@sgdnord.rlp.de
 | 
			
		||||
Created on: 01.12.20
 | 
			
		||||
 | 
			
		||||
"""
 | 
			
		||||
from django.db.models import Sum
 | 
			
		||||
from django.http import HttpRequest
 | 
			
		||||
from django.template.loader import render_to_string
 | 
			
		||||
from django.urls import reverse
 | 
			
		||||
from django.utils.html import format_html
 | 
			
		||||
from django.utils.timezone import localtime
 | 
			
		||||
from django.utils.translation import gettext_lazy as _
 | 
			
		||||
 | 
			
		||||
from compensation.filters import CompensationTableFilter
 | 
			
		||||
from compensation.models import Compensation
 | 
			
		||||
from compensation.filters import CompensationTableFilter, EcoAccountTableFilter
 | 
			
		||||
from compensation.models import Compensation, EcoAccount
 | 
			
		||||
from intervention.filters import InterventionTableFilter
 | 
			
		||||
from konova.sub_settings.django_settings import DEFAULT_DATE_TIME_FORMAT
 | 
			
		||||
from konova.utils.tables import BaseTable
 | 
			
		||||
@ -57,7 +59,7 @@ class CompensationTable(BaseTable):
 | 
			
		||||
    class Meta(BaseTable.Meta):
 | 
			
		||||
        template_name = "django_tables2/bootstrap4.html"
 | 
			
		||||
 | 
			
		||||
    def __init__(self, request:HttpRequest, *args, **kwargs):
 | 
			
		||||
    def __init__(self, request: HttpRequest, *args, **kwargs):
 | 
			
		||||
        self.title = _("Compensations")
 | 
			
		||||
        self.add_new_url = reverse("compensation:new")
 | 
			
		||||
        qs = kwargs.get("queryset", None)
 | 
			
		||||
@ -170,43 +172,120 @@ class EcoAccountTable(BaseTable):
 | 
			
		||||
        orderable=True,
 | 
			
		||||
        accessor="title",
 | 
			
		||||
    )
 | 
			
		||||
    d = tables.Column(
 | 
			
		||||
        verbose_name=_("Created on"),
 | 
			
		||||
    av = tables.Column(
 | 
			
		||||
        verbose_name=_("Available"),
 | 
			
		||||
        orderable=True,
 | 
			
		||||
        empty_values=[],
 | 
			
		||||
    )
 | 
			
		||||
    r = tables.Column(
 | 
			
		||||
        verbose_name=_("Recorded"),
 | 
			
		||||
        orderable=True,
 | 
			
		||||
        empty_values=[],
 | 
			
		||||
        accessor="recorded",
 | 
			
		||||
    )
 | 
			
		||||
    e = tables.Column(
 | 
			
		||||
        verbose_name=_("Editable"),
 | 
			
		||||
        orderable=True,
 | 
			
		||||
        empty_values=[],
 | 
			
		||||
        accessor="users",
 | 
			
		||||
    )
 | 
			
		||||
    lm = tables.Column(
 | 
			
		||||
        verbose_name=_("Last edit"),
 | 
			
		||||
        orderable=True,
 | 
			
		||||
        accessor="created__timestamp",
 | 
			
		||||
    )
 | 
			
		||||
    ac = tables.Column(
 | 
			
		||||
        verbose_name=_("Actions"),
 | 
			
		||||
        orderable=False,
 | 
			
		||||
        empty_values=[],
 | 
			
		||||
        attrs={"td": {"class": "action-col"}}
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    class Meta(BaseTable.Meta):
 | 
			
		||||
        pass
 | 
			
		||||
        template_name = "django_tables2/bootstrap4.html"
 | 
			
		||||
 | 
			
		||||
    def __init__(self, *args, **kwargs):
 | 
			
		||||
        super().__init__(*args, **kwargs)
 | 
			
		||||
    def __init__(self,  request: HttpRequest, *args, **kwargs):
 | 
			
		||||
        self.title = _("Eco Accounts")
 | 
			
		||||
        self.add_new_url = reverse("compensation:acc-new")
 | 
			
		||||
        qs = kwargs.get("queryset", None)
 | 
			
		||||
        self.filter = EcoAccountTableFilter(
 | 
			
		||||
            user=request.user,
 | 
			
		||||
            data=request.GET,
 | 
			
		||||
            queryset=qs,
 | 
			
		||||
        )
 | 
			
		||||
        super().__init__(request, self.filter, *args, **kwargs)
 | 
			
		||||
 | 
			
		||||
    def render_id(self, value, record: EcoAccount):
 | 
			
		||||
        """ Renders the id column for an eco account
 | 
			
		||||
 | 
			
		||||
        Args:
 | 
			
		||||
            value (str): The identifier value
 | 
			
		||||
            record (EcoAccount): The eco account record
 | 
			
		||||
 | 
			
		||||
        Returns:
 | 
			
		||||
 | 
			
		||||
    def render_ac(self, value, record):
 | 
			
		||||
        """
 | 
			
		||||
        Renders possible actions for this record, such as delete.
 | 
			
		||||
        """
 | 
			
		||||
        intervention = _("Compensation")
 | 
			
		||||
        html = ""
 | 
			
		||||
        html += self.render_open_btn(
 | 
			
		||||
            _("Open {}").format(intervention),
 | 
			
		||||
            reverse("compensation:open", args=(record.id,)),
 | 
			
		||||
            new_tab=True
 | 
			
		||||
        )
 | 
			
		||||
        html += self.render_edit_btn(
 | 
			
		||||
            _("Edit {}").format(intervention),
 | 
			
		||||
            reverse("compensation:edit", args=(record.id,)),
 | 
			
		||||
        )
 | 
			
		||||
        html += self.render_delete_btn(
 | 
			
		||||
            _("Delete {}").format(intervention),
 | 
			
		||||
            reverse("compensation:remove", args=(record.id,)),
 | 
			
		||||
        html += self.render_link(
 | 
			
		||||
            tooltip=_("Open {}").format(_("Eco-account")),
 | 
			
		||||
            href=reverse("compensation:acc-open", args=(record.id,)),
 | 
			
		||||
            txt=value,
 | 
			
		||||
            new_tab=False,
 | 
			
		||||
        )
 | 
			
		||||
        return format_html(html)
 | 
			
		||||
 | 
			
		||||
    def render_av(self, value, record: EcoAccount):
 | 
			
		||||
        """ Renders the available column for an eco account
 | 
			
		||||
 | 
			
		||||
        Args:
 | 
			
		||||
            value (str): The identifier value
 | 
			
		||||
            record (EcoAccount): The eco account record
 | 
			
		||||
 | 
			
		||||
        Returns:
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        withdraws = record.withdraws.all()
 | 
			
		||||
        withdraw_surfaces = withdraws.aggregate(Sum("amount"))["amount__sum"] or 0
 | 
			
		||||
        after_states_surfaces = record.after_states.all().aggregate(Sum("surface"))["surface__sum"] or withdraw_surfaces ## no division by zero
 | 
			
		||||
        value = int(((after_states_surfaces - withdraw_surfaces) / after_states_surfaces) * 100)
 | 
			
		||||
        html = render_to_string("konova/custom_widgets/progressbar.html", {"value": value})
 | 
			
		||||
        return format_html(html)
 | 
			
		||||
 | 
			
		||||
    def render_r(self, value, record: EcoAccount):
 | 
			
		||||
        """ Renders the registered column for an eco account
 | 
			
		||||
 | 
			
		||||
        Args:
 | 
			
		||||
            value (str): The identifier value
 | 
			
		||||
            record (EcoAccount): The eco account record
 | 
			
		||||
 | 
			
		||||
        Returns:
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        html = ""
 | 
			
		||||
        checked = value is not None
 | 
			
		||||
        tooltip = _("Not recorded yet. Can not be used for withdraws, yet.")
 | 
			
		||||
        if checked:
 | 
			
		||||
            value = value.timestamp
 | 
			
		||||
            value = localtime(value)
 | 
			
		||||
            on = value.strftime(DEFAULT_DATE_TIME_FORMAT)
 | 
			
		||||
            tooltip = _("Recorded on {} by {}").format(on, record.recorded.user)
 | 
			
		||||
        html += self.render_bookmark(
 | 
			
		||||
            tooltip=tooltip,
 | 
			
		||||
            icn_filled=checked,
 | 
			
		||||
        )
 | 
			
		||||
        return format_html(html)
 | 
			
		||||
 | 
			
		||||
    def render_e(self, value, record: EcoAccount):
 | 
			
		||||
        """ Renders the registered column for an eco account
 | 
			
		||||
 | 
			
		||||
        Args:
 | 
			
		||||
            value (str): The identifier value
 | 
			
		||||
            record (EcoAccount): The eco account record
 | 
			
		||||
 | 
			
		||||
        Returns:
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        html = ""
 | 
			
		||||
        has_access = value.filter(
 | 
			
		||||
            username=self.user.username
 | 
			
		||||
        ).exists()
 | 
			
		||||
 | 
			
		||||
        html += self.render_icn(
 | 
			
		||||
            tooltip=_("Full access granted") if has_access else _("Access not granted"),
 | 
			
		||||
            icn_class="fas fa-edit rlp-r-inv" if has_access else "far fa-edit",
 | 
			
		||||
        )
 | 
			
		||||
        return format_html(html)
 | 
			
		||||
 | 
			
		||||
@ -90,7 +90,7 @@ def withdraw_remove_view(request: HttpRequest, id: str, withdraw_id: str):
 | 
			
		||||
    """
 | 
			
		||||
    acc = get_object_or_404(EcoAccount, id=id)
 | 
			
		||||
    try:
 | 
			
		||||
        eco_withdraw = acc.eco_withdraws.get(id=withdraw_id)
 | 
			
		||||
        eco_withdraw = acc.withdraws.get(id=withdraw_id)
 | 
			
		||||
    except ObjectDoesNotExist:
 | 
			
		||||
        raise Http404("Unknown withdraw")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@
 | 
			
		||||
        <div class="row">
 | 
			
		||||
            <div class="col-sm-6">
 | 
			
		||||
                <h5>
 | 
			
		||||
                    <span class="badge badge-light">{{intervention.eco_withdraws.count}}</span>
 | 
			
		||||
                    <span class="badge badge-light">{{intervention.withdraws.count}}</span>
 | 
			
		||||
                    {% trans 'Eco Account Withdraws' %}
 | 
			
		||||
                </h5>
 | 
			
		||||
            </div>
 | 
			
		||||
@ -38,7 +38,7 @@
 | 
			
		||||
            </tr>
 | 
			
		||||
            </thead>
 | 
			
		||||
            <tbody>
 | 
			
		||||
            {% for withdraw in intervention.eco_withdraws.all %}
 | 
			
		||||
            {% for withdraw in intervention.withdraws.all %}
 | 
			
		||||
            <tr>
 | 
			
		||||
                <td class="align-middle">
 | 
			
		||||
                    <a href="{% url 'compensation:acc-open' withdraw.account.id %}">
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										7
									
								
								konova/templates/konova/custom_widgets/progressbar.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								konova/templates/konova/custom_widgets/progressbar.html
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,7 @@
 | 
			
		||||
{% load i18n %}
 | 
			
		||||
 | 
			
		||||
<div class="progress" title="{% trans 'Available: ' %}{{ value }}%">
 | 
			
		||||
    <div class="progress-bar rlp-r" role="progressbar" style="width: {{ value }}%" aria-valuenow="{{ value }}" aria-valuemin="0" aria-valuemax="100">
 | 
			
		||||
        {{ value }} %
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							@ -8,15 +8,15 @@
 | 
			
		||||
#: intervention/filters.py:26 intervention/filters.py:40
 | 
			
		||||
#: intervention/filters.py:47 intervention/filters.py:48
 | 
			
		||||
#: intervention/forms.py:318 intervention/forms.py:330
 | 
			
		||||
#: intervention/forms.py:342 konova/forms.py:92 konova/forms.py:228
 | 
			
		||||
#: konova/forms.py:261 konova/forms.py:266 konova/forms.py:278
 | 
			
		||||
#: konova/forms.py:290 konova/forms.py:303 user/forms.py:38
 | 
			
		||||
#: intervention/forms.py:342 konova/forms.py:91 konova/forms.py:227
 | 
			
		||||
#: konova/forms.py:260 konova/forms.py:265 konova/forms.py:277
 | 
			
		||||
#: konova/forms.py:289 konova/forms.py:302 user/forms.py:38
 | 
			
		||||
#, fuzzy
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: PACKAGE VERSION\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2021-08-05 12:43+0200\n"
 | 
			
		||||
"POT-Creation-Date: 2021-08-09 14:12+0200\n"
 | 
			
		||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 | 
			
		||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 | 
			
		||||
"Language-Team: LANGUAGE <LL@li.org>\n"
 | 
			
		||||
@ -94,7 +94,7 @@ msgstr "Geben Sie die Daten des neuen Zustandes ein"
 | 
			
		||||
msgid "Added state"
 | 
			
		||||
msgstr "Zustand hinzugefügt"
 | 
			
		||||
 | 
			
		||||
#: compensation/forms.py:133 konova/forms.py:142
 | 
			
		||||
#: compensation/forms.py:133 konova/forms.py:141
 | 
			
		||||
msgid "Object removed"
 | 
			
		||||
msgstr "Objekt entfernt"
 | 
			
		||||
 | 
			
		||||
@ -123,12 +123,12 @@ msgstr "Datum wählen"
 | 
			
		||||
#: intervention/forms.py:341
 | 
			
		||||
#: intervention/templates/intervention/detail/includes/documents.html:31
 | 
			
		||||
#: intervention/templates/intervention/detail/includes/revocation.html:35
 | 
			
		||||
#: konova/forms.py:289
 | 
			
		||||
#: konova/forms.py:288
 | 
			
		||||
msgid "Comment"
 | 
			
		||||
msgstr "Kommentar"
 | 
			
		||||
 | 
			
		||||
#: compensation/forms.py:204 compensation/forms.py:272
 | 
			
		||||
#: intervention/forms.py:343 konova/forms.py:291
 | 
			
		||||
#: intervention/forms.py:343 konova/forms.py:290
 | 
			
		||||
msgid "Additional comment, maximum {} letters"
 | 
			
		||||
msgstr "Zusätzlicher Kommentar, maximal {} Zeichen"
 | 
			
		||||
 | 
			
		||||
@ -200,106 +200,109 @@ msgstr ""
 | 
			
		||||
msgid "Pieces"
 | 
			
		||||
msgstr "Stück"
 | 
			
		||||
 | 
			
		||||
#: compensation/tables.py:24 compensation/tables.py:164
 | 
			
		||||
#: compensation/tables.py:26 compensation/tables.py:166
 | 
			
		||||
#: intervention/forms.py:28 intervention/tables.py:23
 | 
			
		||||
#: intervention/templates/intervention/detail/includes/compensations.html:30
 | 
			
		||||
msgid "Identifier"
 | 
			
		||||
msgstr "Kennung"
 | 
			
		||||
 | 
			
		||||
#: compensation/tables.py:29 compensation/tables.py:169
 | 
			
		||||
#: compensation/tables.py:31 compensation/tables.py:171
 | 
			
		||||
#: compensation/templates/compensation/detail/includes/documents.html:28
 | 
			
		||||
#: compensation/templates/compensation/detail/view.html:24
 | 
			
		||||
#: intervention/forms.py:35 intervention/tables.py:28
 | 
			
		||||
#: intervention/templates/intervention/detail/includes/compensations.html:33
 | 
			
		||||
#: intervention/templates/intervention/detail/includes/documents.html:28
 | 
			
		||||
#: intervention/templates/intervention/detail/view.html:24 konova/forms.py:260
 | 
			
		||||
#: intervention/templates/intervention/detail/view.html:24 konova/forms.py:259
 | 
			
		||||
msgid "Title"
 | 
			
		||||
msgstr "Bezeichnung"
 | 
			
		||||
 | 
			
		||||
#: compensation/tables.py:34
 | 
			
		||||
#: compensation/tables.py:36
 | 
			
		||||
#: compensation/templates/compensation/detail/view.html:36
 | 
			
		||||
#: intervention/tables.py:33
 | 
			
		||||
#: intervention/templates/intervention/detail/view.html:56 user/models.py:48
 | 
			
		||||
msgid "Checked"
 | 
			
		||||
msgstr "Geprüft"
 | 
			
		||||
 | 
			
		||||
#: compensation/tables.py:40
 | 
			
		||||
#: compensation/tables.py:42 compensation/tables.py:181
 | 
			
		||||
#: compensation/templates/compensation/detail/view.html:50
 | 
			
		||||
#: intervention/tables.py:39
 | 
			
		||||
#: intervention/templates/intervention/detail/view.html:70 user/models.py:49
 | 
			
		||||
msgid "Recorded"
 | 
			
		||||
msgstr "Verzeichnet"
 | 
			
		||||
 | 
			
		||||
#: compensation/tables.py:46 intervention/tables.py:45
 | 
			
		||||
#: compensation/tables.py:48 compensation/tables.py:187
 | 
			
		||||
#: intervention/tables.py:45
 | 
			
		||||
msgid "Editable"
 | 
			
		||||
msgstr "Freigegeben"
 | 
			
		||||
 | 
			
		||||
#: compensation/tables.py:52 intervention/tables.py:51
 | 
			
		||||
#: compensation/tables.py:54 compensation/tables.py:193
 | 
			
		||||
#: intervention/tables.py:51
 | 
			
		||||
msgid "Last edit"
 | 
			
		||||
msgstr "Zuletzt bearbeitet"
 | 
			
		||||
 | 
			
		||||
#: compensation/tables.py:61
 | 
			
		||||
#: compensation/tables.py:63
 | 
			
		||||
#: intervention/templates/intervention/detail/includes/compensations.html:8
 | 
			
		||||
msgid "Compensations"
 | 
			
		||||
msgstr "Kompensationen"
 | 
			
		||||
 | 
			
		||||
#: compensation/tables.py:83 compensation/tables.py:200
 | 
			
		||||
#: compensation/tables.py:85 compensation/tables.py:224
 | 
			
		||||
#: intervention/tables.py:92 intervention/tables.py:175
 | 
			
		||||
msgid "Open {}"
 | 
			
		||||
msgstr "Öffne {}"
 | 
			
		||||
 | 
			
		||||
#: compensation/tables.py:83 compensation/tables.py:197
 | 
			
		||||
#: compensation/tables.py:85
 | 
			
		||||
#: compensation/templates/compensation/detail/view.html:12
 | 
			
		||||
#: konova/templates/konova/home.html:49 templates/navbar.html:28
 | 
			
		||||
msgid "Compensation"
 | 
			
		||||
msgstr "Kompensation"
 | 
			
		||||
 | 
			
		||||
#: compensation/tables.py:104 intervention/tables.py:111
 | 
			
		||||
#: compensation/tables.py:106 intervention/tables.py:111
 | 
			
		||||
msgid "Not checked yet"
 | 
			
		||||
msgstr "Noch nicht geprüft"
 | 
			
		||||
 | 
			
		||||
#: compensation/tables.py:109 intervention/tables.py:116
 | 
			
		||||
#: compensation/tables.py:111 intervention/tables.py:116
 | 
			
		||||
msgid "Checked on {} by {}"
 | 
			
		||||
msgstr "Am {} von {} geprüft worden"
 | 
			
		||||
 | 
			
		||||
#: compensation/tables.py:128
 | 
			
		||||
#: compensation/tables.py:130
 | 
			
		||||
#: compensation/templates/compensation/detail/view.html:53
 | 
			
		||||
#: intervention/tables.py:135
 | 
			
		||||
#: intervention/templates/intervention/detail/view.html:73
 | 
			
		||||
msgid "Not recorded yet"
 | 
			
		||||
msgstr "Noch nicht verzeichnet"
 | 
			
		||||
 | 
			
		||||
#: compensation/tables.py:133 intervention/tables.py:140
 | 
			
		||||
#: compensation/tables.py:135 compensation/tables.py:265
 | 
			
		||||
#: intervention/tables.py:140
 | 
			
		||||
msgid "Recorded on {} by {}"
 | 
			
		||||
msgstr "Am {} von {} verzeichnet worden"
 | 
			
		||||
 | 
			
		||||
#: compensation/tables.py:156 intervention/tables.py:163
 | 
			
		||||
#: compensation/tables.py:158 compensation/tables.py:288
 | 
			
		||||
#: intervention/tables.py:163
 | 
			
		||||
msgid "Full access granted"
 | 
			
		||||
msgstr "Für Sie freigegeben - Datensatz kann bearbeitet werden"
 | 
			
		||||
 | 
			
		||||
#: compensation/tables.py:156 intervention/tables.py:163
 | 
			
		||||
#: compensation/tables.py:158 compensation/tables.py:288
 | 
			
		||||
#: intervention/tables.py:163
 | 
			
		||||
msgid "Access not granted"
 | 
			
		||||
msgstr "Nicht freigegeben - Datensatz nur lesbar"
 | 
			
		||||
 | 
			
		||||
#: compensation/tables.py:174 konova/forms.py:265
 | 
			
		||||
msgid "Created on"
 | 
			
		||||
msgstr "Erstellt"
 | 
			
		||||
#: compensation/tables.py:176
 | 
			
		||||
msgid "Available"
 | 
			
		||||
msgstr "Verfügbar"
 | 
			
		||||
 | 
			
		||||
#: compensation/tables.py:179
 | 
			
		||||
msgid "Actions"
 | 
			
		||||
msgstr "Aktionen"
 | 
			
		||||
 | 
			
		||||
#: compensation/tables.py:190
 | 
			
		||||
#: compensation/tables.py:202
 | 
			
		||||
msgid "Eco Accounts"
 | 
			
		||||
msgstr "Ökokonten"
 | 
			
		||||
 | 
			
		||||
#: compensation/tables.py:205 intervention/tables.py:179
 | 
			
		||||
msgid "Edit {}"
 | 
			
		||||
msgstr "Bearbeite {}"
 | 
			
		||||
#: compensation/tables.py:224 konova/templates/konova/home.html:88
 | 
			
		||||
#: templates/navbar.html:34
 | 
			
		||||
msgid "Eco-account"
 | 
			
		||||
msgstr "Ökokonto"
 | 
			
		||||
 | 
			
		||||
#: compensation/tables.py:209 intervention/tables.py:183
 | 
			
		||||
msgid "Delete {}"
 | 
			
		||||
msgstr "Lösche {}"
 | 
			
		||||
#: compensation/tables.py:260
 | 
			
		||||
msgid "Not recorded yet. Can not be used for withdraws, yet."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Noch nicht verzeichnet. Kann noch nicht für Abbuchungen genutzt werden."
 | 
			
		||||
 | 
			
		||||
#: compensation/templates/compensation/detail/includes/actions.html:8
 | 
			
		||||
msgctxt "Compensation"
 | 
			
		||||
@ -353,11 +356,12 @@ msgid "Edit"
 | 
			
		||||
msgstr "Bearbeiten"
 | 
			
		||||
 | 
			
		||||
#: compensation/templates/compensation/detail/includes/controls.html:21
 | 
			
		||||
#: intervention/templates/intervention/detail/includes/controls.html:36
 | 
			
		||||
msgid "Show log"
 | 
			
		||||
msgstr "Log anzeigen"
 | 
			
		||||
 | 
			
		||||
#: compensation/templates/compensation/detail/includes/controls.html:24
 | 
			
		||||
#: intervention/templates/intervention/detail/includes/controls.html:36
 | 
			
		||||
#: intervention/templates/intervention/detail/includes/controls.html:39
 | 
			
		||||
#: venv/lib/python3.7/site-packages/django/forms/formsets.py:391
 | 
			
		||||
msgid "Delete"
 | 
			
		||||
msgstr "Löschen"
 | 
			
		||||
@ -386,7 +390,7 @@ msgstr "Dokumente"
 | 
			
		||||
 | 
			
		||||
#: compensation/templates/compensation/detail/includes/documents.html:14
 | 
			
		||||
#: intervention/templates/intervention/detail/includes/documents.html:14
 | 
			
		||||
#: konova/forms.py:302
 | 
			
		||||
#: konova/forms.py:301
 | 
			
		||||
msgid "Add new document"
 | 
			
		||||
msgstr "Neues Dokument hinzufügen"
 | 
			
		||||
 | 
			
		||||
@ -466,50 +470,50 @@ msgstr "Freigegeben für"
 | 
			
		||||
msgid "No geometry added, yet."
 | 
			
		||||
msgstr "Keine Geometrie vorhanden"
 | 
			
		||||
 | 
			
		||||
#: compensation/views.py:127
 | 
			
		||||
#: compensation/views/compensation_views.py:121 intervention/views.py:391
 | 
			
		||||
msgid "Log"
 | 
			
		||||
msgstr "Log"
 | 
			
		||||
 | 
			
		||||
#: compensation/views.py:148
 | 
			
		||||
#: compensation/views/compensation_views.py:142
 | 
			
		||||
msgid "Compensation removed"
 | 
			
		||||
msgstr "Kompensation entfernt"
 | 
			
		||||
 | 
			
		||||
#: compensation/views.py:228
 | 
			
		||||
msgid "Payment added"
 | 
			
		||||
msgstr "Zahlung hinzugefügt"
 | 
			
		||||
 | 
			
		||||
#: compensation/views.py:263
 | 
			
		||||
msgid "Payment removed"
 | 
			
		||||
msgstr "Zahlung gelöscht"
 | 
			
		||||
 | 
			
		||||
#: compensation/views.py:289
 | 
			
		||||
msgid "Withdraw removed"
 | 
			
		||||
msgstr "Abbuchung entfernt"
 | 
			
		||||
 | 
			
		||||
#: compensation/views.py:307 intervention/views.py:96
 | 
			
		||||
#: compensation/views/compensation_views.py:159 intervention/views.py:96
 | 
			
		||||
msgid "Document added"
 | 
			
		||||
msgstr "Dokument hinzugefügt"
 | 
			
		||||
 | 
			
		||||
#: compensation/views.py:326
 | 
			
		||||
#: compensation/views/compensation_views.py:178
 | 
			
		||||
msgid "State added"
 | 
			
		||||
msgstr "Zustand hinzugefügt"
 | 
			
		||||
 | 
			
		||||
#: compensation/views.py:345
 | 
			
		||||
#: compensation/views/compensation_views.py:197
 | 
			
		||||
msgid "Action added"
 | 
			
		||||
msgstr "Maßnahme hinzugefügt"
 | 
			
		||||
 | 
			
		||||
#: compensation/views.py:364
 | 
			
		||||
#: compensation/views/compensation_views.py:216
 | 
			
		||||
msgid "Deadline added"
 | 
			
		||||
msgstr "Frist hinzugefügt"
 | 
			
		||||
 | 
			
		||||
#: compensation/views.py:383
 | 
			
		||||
#: compensation/views/compensation_views.py:235
 | 
			
		||||
msgid "State removed"
 | 
			
		||||
msgstr "Zustand gelöscht"
 | 
			
		||||
 | 
			
		||||
#: compensation/views.py:402
 | 
			
		||||
#: compensation/views/compensation_views.py:254
 | 
			
		||||
msgid "Action removed"
 | 
			
		||||
msgstr "Maßnahme entfernt"
 | 
			
		||||
 | 
			
		||||
#: compensation/views/eco_account_views.py:100
 | 
			
		||||
msgid "Withdraw removed"
 | 
			
		||||
msgstr "Abbuchung entfernt"
 | 
			
		||||
 | 
			
		||||
#: compensation/views/payment_views.py:43
 | 
			
		||||
msgid "Payment added"
 | 
			
		||||
msgstr "Zahlung hinzugefügt"
 | 
			
		||||
 | 
			
		||||
#: compensation/views/payment_views.py:78
 | 
			
		||||
msgid "Payment removed"
 | 
			
		||||
msgstr "Zahlung gelöscht"
 | 
			
		||||
 | 
			
		||||
#: intervention/filters.py:25
 | 
			
		||||
msgid "Show unshared"
 | 
			
		||||
msgstr "Nicht freigegebene anzeigen"
 | 
			
		||||
@ -622,7 +626,7 @@ msgstr "Datum des Widerspruchs"
 | 
			
		||||
msgid "Document"
 | 
			
		||||
msgstr "Dokument"
 | 
			
		||||
 | 
			
		||||
#: intervention/forms.py:331 konova/forms.py:279
 | 
			
		||||
#: intervention/forms.py:331 konova/forms.py:278
 | 
			
		||||
msgid "Must be smaller than 15 Mb"
 | 
			
		||||
msgstr "Muss kleiner als 15 Mb sein"
 | 
			
		||||
 | 
			
		||||
@ -653,6 +657,14 @@ msgstr ""
 | 
			
		||||
"wurden:"
 | 
			
		||||
 | 
			
		||||
#: intervention/models.py:216
 | 
			
		||||
#: intervention/templates/intervention/detail/view.html:23
 | 
			
		||||
#: intervention/templates/intervention/detail/view.html:27
 | 
			
		||||
#: intervention/templates/intervention/detail/view.html:31
 | 
			
		||||
#: intervention/templates/intervention/detail/view.html:39
 | 
			
		||||
#: intervention/templates/intervention/detail/view.html:51
 | 
			
		||||
#: intervention/templates/intervention/detail/view.html:83
 | 
			
		||||
#: intervention/templates/intervention/detail/view.html:87
 | 
			
		||||
#: intervention/templates/intervention/detail/view.html:91
 | 
			
		||||
msgid "Missing"
 | 
			
		||||
msgstr "Fehlt"
 | 
			
		||||
 | 
			
		||||
@ -670,6 +682,14 @@ msgstr "Eingriffe"
 | 
			
		||||
msgid "Intervention"
 | 
			
		||||
msgstr "Eingriff"
 | 
			
		||||
 | 
			
		||||
#: intervention/tables.py:179
 | 
			
		||||
msgid "Edit {}"
 | 
			
		||||
msgstr "Bearbeite {}"
 | 
			
		||||
 | 
			
		||||
#: intervention/tables.py:183
 | 
			
		||||
msgid "Delete {}"
 | 
			
		||||
msgstr "Lösche {}"
 | 
			
		||||
 | 
			
		||||
#: intervention/templates/intervention/detail/includes/compensations.html:14
 | 
			
		||||
msgid "Add new compensation"
 | 
			
		||||
msgstr "Neue Kompensation hinzufügen"
 | 
			
		||||
@ -848,36 +868,40 @@ msgstr ""
 | 
			
		||||
msgid "You need to be part of another user group."
 | 
			
		||||
msgstr "Hierfür müssen Sie einer anderen Nutzergruppe angehören!"
 | 
			
		||||
 | 
			
		||||
#: konova/forms.py:65
 | 
			
		||||
#: konova/forms.py:64
 | 
			
		||||
msgid "Not editable"
 | 
			
		||||
msgstr "Nicht editierbar"
 | 
			
		||||
 | 
			
		||||
#: konova/forms.py:91 konova/forms.py:227
 | 
			
		||||
#: konova/forms.py:90 konova/forms.py:226
 | 
			
		||||
msgid "Confirm"
 | 
			
		||||
msgstr "Bestätige"
 | 
			
		||||
 | 
			
		||||
#: konova/forms.py:103 konova/forms.py:236
 | 
			
		||||
#: konova/forms.py:102 konova/forms.py:235
 | 
			
		||||
msgid "Remove"
 | 
			
		||||
msgstr "Löschen"
 | 
			
		||||
 | 
			
		||||
#: konova/forms.py:105
 | 
			
		||||
#: konova/forms.py:104
 | 
			
		||||
msgid "You are about to remove {} {}"
 | 
			
		||||
msgstr "Sie sind dabei {} {} zu löschen"
 | 
			
		||||
 | 
			
		||||
#: konova/forms.py:237
 | 
			
		||||
#: konova/forms.py:236
 | 
			
		||||
msgid "Are you sure?"
 | 
			
		||||
msgstr "Sind Sie sicher?"
 | 
			
		||||
 | 
			
		||||
#: konova/forms.py:267
 | 
			
		||||
#: konova/forms.py:264
 | 
			
		||||
msgid "Created on"
 | 
			
		||||
msgstr "Erstellt"
 | 
			
		||||
 | 
			
		||||
#: konova/forms.py:266
 | 
			
		||||
msgid "When has this file been created? Important for photos."
 | 
			
		||||
msgstr "Wann wurde diese Datei erstellt oder das Foto aufgenommen?"
 | 
			
		||||
 | 
			
		||||
#: konova/forms.py:277
 | 
			
		||||
#: konova/forms.py:276
 | 
			
		||||
#: venv/lib/python3.7/site-packages/django/db/models/fields/files.py:231
 | 
			
		||||
msgid "File"
 | 
			
		||||
msgstr "Datei"
 | 
			
		||||
 | 
			
		||||
#: konova/forms.py:327
 | 
			
		||||
#: konova/forms.py:326
 | 
			
		||||
msgid "Added document"
 | 
			
		||||
msgstr "Dokument hinzugefügt"
 | 
			
		||||
 | 
			
		||||
@ -921,6 +945,10 @@ msgstr "Kontrolle am"
 | 
			
		||||
msgid "Other"
 | 
			
		||||
msgstr "Sonstige"
 | 
			
		||||
 | 
			
		||||
#: konova/templates/konova/custom_widgets/progressbar.html:3
 | 
			
		||||
msgid "Available: "
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: konova/templates/konova/custom_widgets/text-to-clipboard-input.html:6
 | 
			
		||||
msgid "Copy to clipboard"
 | 
			
		||||
msgstr "In Zwischenablage kopieren"
 | 
			
		||||
@ -949,10 +977,6 @@ msgstr "Neu"
 | 
			
		||||
msgid "Show"
 | 
			
		||||
msgstr "Anzeigen"
 | 
			
		||||
 | 
			
		||||
#: konova/templates/konova/home.html:88 templates/navbar.html:34
 | 
			
		||||
msgid "Eco-account"
 | 
			
		||||
msgstr "Ökokonto"
 | 
			
		||||
 | 
			
		||||
#: konova/templates/konova/home.html:130
 | 
			
		||||
msgid "Withdraw"
 | 
			
		||||
msgstr "Abbuchen"
 | 
			
		||||
@ -2377,6 +2401,9 @@ msgstr ""
 | 
			
		||||
msgid "A fontawesome icon field"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#~ msgid "Actions"
 | 
			
		||||
#~ msgstr "Aktionen"
 | 
			
		||||
 | 
			
		||||
#~ msgid "Additional comment"
 | 
			
		||||
#~ msgstr "Zusätzlicher Kommentar"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user