#163 Checked icons improvement
* adds a second star icon on currently unchecked but previously checked entries --> can be detected easier for another check run * simplifies some related code parts * moves some translation string into message_templates.py * enables session timeout after 60 minutes * improves comment card layout sizing * adds/updates translations
This commit is contained in:
parent
fbab67f897
commit
1e86a1ce5e
@ -5,17 +5,15 @@ Contact: michel.peltriaux@sgdnord.rlp.de
|
||||
Created on: 01.12.20
|
||||
|
||||
"""
|
||||
from user.models import User
|
||||
from konova.utils.message_templates import DATA_IS_UNCHECKED, DATA_CHECKED_ON_TEMPLATE, DATA_CHECKED_PREVIOUSLY_TEMPLATE
|
||||
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, EcoAccountTableFilter
|
||||
from compensation.models import Compensation, EcoAccount
|
||||
from konova.sub_settings.django_settings import DEFAULT_DATE_TIME_FORMAT
|
||||
from konova.utils.tables import BaseTable, TableRenderMixin
|
||||
import django_tables2 as tables
|
||||
|
||||
@ -111,16 +109,21 @@ class CompensationTable(BaseTable, TableRenderMixin):
|
||||
"""
|
||||
html = ""
|
||||
checked = value is not None
|
||||
tooltip = _("Not checked yet")
|
||||
tooltip = DATA_IS_UNCHECKED
|
||||
previously_checked = record.intervention.get_last_checked_action()
|
||||
if checked:
|
||||
value = value.timestamp
|
||||
value = localtime(value)
|
||||
checked_on = value.strftime(DEFAULT_DATE_TIME_FORMAT)
|
||||
tooltip = _("Checked on {} by {}").format(checked_on, record.intervention.checked.user)
|
||||
checked_on = value.get_timestamp_str_formatted()
|
||||
tooltip = DATA_CHECKED_ON_TEMPLATE.format(checked_on, record.intervention.checked.user)
|
||||
html += self.render_checked_star(
|
||||
tooltip=tooltip,
|
||||
icn_filled=checked,
|
||||
)
|
||||
if previously_checked and not checked:
|
||||
checked_on = previously_checked.get_timestamp_str_formatted()
|
||||
tooltip = DATA_CHECKED_PREVIOUSLY_TEMPLATE.format(checked_on, previously_checked.user)
|
||||
html += self.render_previously_checked_star(
|
||||
tooltip=tooltip,
|
||||
)
|
||||
return format_html(html)
|
||||
|
||||
def render_d(self, value, record: Compensation):
|
||||
@ -159,9 +162,7 @@ class CompensationTable(BaseTable, TableRenderMixin):
|
||||
recorded = value is not None
|
||||
tooltip = _("Not recorded yet")
|
||||
if recorded:
|
||||
value = value.timestamp
|
||||
value = localtime(value)
|
||||
on = value.strftime(DEFAULT_DATE_TIME_FORMAT)
|
||||
on = value.get_timestamp_str_formatted()
|
||||
tooltip = _("Recorded on {} by {}").format(on, record.intervention.recorded.user)
|
||||
html += self.render_bookmark(
|
||||
tooltip=tooltip,
|
||||
@ -179,8 +180,6 @@ class CompensationTable(BaseTable, TableRenderMixin):
|
||||
Returns:
|
||||
|
||||
"""
|
||||
if value is None:
|
||||
value = User.objects.none()
|
||||
has_access = record.is_shared_with(self.user)
|
||||
|
||||
html = self.render_icn(
|
||||
@ -318,9 +317,7 @@ class EcoAccountTable(BaseTable, TableRenderMixin):
|
||||
checked = value is not None
|
||||
tooltip = _("Not recorded yet. Can not be used for deductions, yet.")
|
||||
if checked:
|
||||
value = value.timestamp
|
||||
value = localtime(value)
|
||||
on = value.strftime(DEFAULT_DATE_TIME_FORMAT)
|
||||
on = value.get_timestamp_str_formatted()
|
||||
tooltip = _("Recorded on {} by {}").format(on, record.recorded.user)
|
||||
html += self.render_bookmark(
|
||||
tooltip=tooltip,
|
||||
|
@ -66,6 +66,11 @@
|
||||
<span>
|
||||
{% fa5_icon 'star' 'far' %}
|
||||
</span>
|
||||
{% if last_checked %}
|
||||
<span class="rlp-gd-inv" title="{{last_checked_tooltip}}">
|
||||
{% fa5_icon 'star' 'fas' %}
|
||||
</span>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<span class="check-star" title="{% trans 'Checked on '%} {{obj.intervention.checked.timestamp}} {% trans 'by' %} {{obj.intervention.checked.user}}">
|
||||
{% fa5_icon 'star' %}
|
||||
|
@ -23,7 +23,7 @@ from konova.utils.message_templates import FORM_INVALID, IDENTIFIER_REPLACED, DA
|
||||
CHECKED_RECORDED_RESET, COMPENSATION_ADDED_TEMPLATE, COMPENSATION_REMOVED_TEMPLATE, DOCUMENT_ADDED, \
|
||||
COMPENSATION_STATE_REMOVED, COMPENSATION_STATE_ADDED, COMPENSATION_ACTION_REMOVED, COMPENSATION_ACTION_ADDED, \
|
||||
DEADLINE_ADDED, DEADLINE_REMOVED, DOCUMENT_EDITED, COMPENSATION_STATE_EDITED, COMPENSATION_ACTION_EDITED, \
|
||||
DEADLINE_EDITED, RECORDED_BLOCKS_EDIT, PARAMS_INVALID
|
||||
DEADLINE_EDITED, RECORDED_BLOCKS_EDIT, PARAMS_INVALID, DATA_CHECKED_PREVIOUSLY_TEMPLATE
|
||||
from konova.utils.user_checks import in_group
|
||||
|
||||
|
||||
@ -217,8 +217,15 @@ def detail_view(request: HttpRequest, id: str):
|
||||
|
||||
request = comp.set_status_messages(request)
|
||||
|
||||
last_checked = comp.intervention.get_last_checked_action()
|
||||
last_checked_tooltip = ""
|
||||
if last_checked:
|
||||
last_checked_tooltip = DATA_CHECKED_PREVIOUSLY_TEMPLATE.format(last_checked.get_timestamp_str_formatted(), last_checked.user)
|
||||
|
||||
context = {
|
||||
"obj": comp,
|
||||
"last_checked": last_checked,
|
||||
"last_checked_tooltip": last_checked_tooltip,
|
||||
"geom_form": geom_form,
|
||||
"parcels": parcels,
|
||||
"has_access": is_data_shared,
|
||||
|
@ -115,7 +115,6 @@ class EmaTable(BaseTable, TableRenderMixin):
|
||||
)
|
||||
return html
|
||||
|
||||
|
||||
def render_r(self, value, record: Ema):
|
||||
""" Renders the registered column for a EMA
|
||||
|
||||
@ -130,9 +129,7 @@ class EmaTable(BaseTable, TableRenderMixin):
|
||||
recorded = value is not None
|
||||
tooltip = _("Not recorded yet")
|
||||
if recorded:
|
||||
value = value.timestamp
|
||||
value = localtime(value)
|
||||
on = value.strftime(DEFAULT_DATE_TIME_FORMAT)
|
||||
on = value.get_timestamp_str_formatted()
|
||||
tooltip = _("Recorded on {} by {}").format(on, record.recorded.user)
|
||||
html += self.render_bookmark(
|
||||
tooltip=tooltip,
|
||||
|
@ -9,12 +9,11 @@ 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 intervention.filters import InterventionTableFilter
|
||||
from intervention.models import Intervention
|
||||
from konova.sub_settings.django_settings import DEFAULT_DATE_TIME_FORMAT, DEFAULT_DATE_FORMAT
|
||||
from konova.utils.message_templates import DATA_CHECKED_ON_TEMPLATE, DATA_IS_UNCHECKED, DATA_CHECKED_PREVIOUSLY_TEMPLATE
|
||||
from konova.utils.tables import BaseTable, TableRenderMixin
|
||||
import django_tables2 as tables
|
||||
|
||||
@ -108,16 +107,21 @@ class InterventionTable(BaseTable, TableRenderMixin):
|
||||
"""
|
||||
html = ""
|
||||
checked = value is not None
|
||||
tooltip = _("Not checked yet")
|
||||
previously_checked = record.get_last_checked_action()
|
||||
tooltip = DATA_IS_UNCHECKED
|
||||
if checked:
|
||||
value = value.timestamp
|
||||
value = localtime(value)
|
||||
checked_on = value.strftime(DEFAULT_DATE_TIME_FORMAT)
|
||||
tooltip = _("Checked on {} by {}").format(checked_on, record.checked.user)
|
||||
checked_on = value.get_timestamp_str_formatted()
|
||||
tooltip = DATA_CHECKED_ON_TEMPLATE.format(checked_on, record.checked.user)
|
||||
html += self.render_checked_star(
|
||||
tooltip=tooltip,
|
||||
icn_filled=checked,
|
||||
)
|
||||
if previously_checked and not checked:
|
||||
checked_on = previously_checked.get_timestamp_str_formatted()
|
||||
tooltip = DATA_CHECKED_PREVIOUSLY_TEMPLATE.format(checked_on, previously_checked.user)
|
||||
html += self.render_previously_checked_star(
|
||||
tooltip=tooltip,
|
||||
)
|
||||
return format_html(html)
|
||||
|
||||
def render_d(self, value, record: Intervention):
|
||||
@ -156,9 +160,7 @@ class InterventionTable(BaseTable, TableRenderMixin):
|
||||
checked = value is not None
|
||||
tooltip = _("Not recorded yet")
|
||||
if checked:
|
||||
value = value.timestamp
|
||||
value = localtime(value)
|
||||
on = value.strftime(DEFAULT_DATE_TIME_FORMAT)
|
||||
on = value.get_timestamp_str_formatted()
|
||||
tooltip = _("Recorded on {} by {}").format(on, record.recorded.user)
|
||||
html += self.render_bookmark(
|
||||
tooltip=tooltip,
|
||||
|
@ -70,6 +70,11 @@
|
||||
<span>
|
||||
{% fa5_icon 'star' 'far' %}
|
||||
</span>
|
||||
{% if last_checked %}
|
||||
<span class="rlp-gd-inv" title="{{last_checked_tooltip}}">
|
||||
{% fa5_icon 'star' 'fas' %}
|
||||
</span>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<span class="check-star" title="{% trans 'Checked on '%} {{obj.checked.timestamp}} {% trans 'by' %} {{obj.checked.user}}">
|
||||
{% fa5_icon 'star' %}
|
||||
|
@ -19,7 +19,7 @@ from konova.utils.generators import generate_qr_code
|
||||
from konova.utils.message_templates import INTERVENTION_INVALID, FORM_INVALID, IDENTIFIER_REPLACED, \
|
||||
CHECKED_RECORDED_RESET, DEDUCTION_REMOVED, DEDUCTION_ADDED, REVOCATION_ADDED, REVOCATION_REMOVED, \
|
||||
COMPENSATION_REMOVED_TEMPLATE, DOCUMENT_ADDED, DEDUCTION_EDITED, REVOCATION_EDITED, DOCUMENT_EDITED, \
|
||||
RECORDED_BLOCKS_EDIT
|
||||
RECORDED_BLOCKS_EDIT, DATA_CHECKED_PREVIOUSLY_TEMPLATE
|
||||
from konova.utils.user_checks import in_group
|
||||
|
||||
|
||||
@ -265,9 +265,15 @@ def detail_view(request: HttpRequest, id: str):
|
||||
geom_form = SimpleGeomForm(
|
||||
instance=intervention,
|
||||
)
|
||||
last_checked = intervention.get_last_checked_action()
|
||||
last_checked_tooltip = ""
|
||||
if last_checked:
|
||||
last_checked_tooltip = DATA_CHECKED_PREVIOUSLY_TEMPLATE.format(last_checked.get_timestamp_str_formatted(), last_checked.user)
|
||||
|
||||
context = {
|
||||
"obj": intervention,
|
||||
"last_checked": last_checked,
|
||||
"last_checked_tooltip": last_checked_tooltip,
|
||||
"compensations": compensations,
|
||||
"has_access": is_data_shared,
|
||||
"geom_form": geom_form,
|
||||
|
@ -408,6 +408,20 @@ class CheckableObjectMixin(models.Model):
|
||||
self.log.add(action)
|
||||
return action
|
||||
|
||||
def get_last_checked_action(self):
|
||||
""" Getter for the most recent checked action on the log
|
||||
|
||||
Returns:
|
||||
previously_checked (UserActionLogEntry): The most recent checked action
|
||||
"""
|
||||
from user.models import UserAction
|
||||
previously_checked = self.log.filter(
|
||||
action=UserAction.CHECKED
|
||||
).order_by(
|
||||
"-timestamp"
|
||||
).first()
|
||||
return previously_checked
|
||||
|
||||
|
||||
class ShareableObjectMixin(models.Model):
|
||||
# Users having access on this object
|
||||
|
@ -46,8 +46,8 @@ ALLOWED_HOSTS = [
|
||||
LOGIN_URL = "/login/"
|
||||
|
||||
# Session settings
|
||||
#SESSION_COOKIE_AGE = 30 * 60 # 30 minutes
|
||||
#SESSION_SAVE_EVERY_REQUEST = True
|
||||
SESSION_COOKIE_AGE = 60 * 60 # 60 minutes
|
||||
SESSION_SAVE_EVERY_REQUEST = True
|
||||
|
||||
# Application definition
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
|
||||
{% if obj.comment %}
|
||||
<div class="w-100">
|
||||
<div class="col-sm-12">
|
||||
<div class="card mt-3">
|
||||
<div class="card-header rlp-gd">
|
||||
<div class="row">
|
||||
|
@ -81,3 +81,8 @@ GEOMETRY_CONFLICT_WITH_TEMPLATE = _("Geometry conflict detected with {}")
|
||||
|
||||
# INTERVENTION
|
||||
INTERVENTION_HAS_REVOCATIONS_TEMPLATE = _("This intervention has {} revocations")
|
||||
|
||||
# CHECKED
|
||||
DATA_CHECKED_ON_TEMPLATE = _("Checked on {} by {}")
|
||||
DATA_CHECKED_PREVIOUSLY_TEMPLATE = _("Data has changed since last check on {} by {}")
|
||||
DATA_IS_UNCHECKED = _("Current data not checked yet")
|
||||
|
@ -112,6 +112,17 @@ class BaseTable(tables.tables.Table):
|
||||
icon
|
||||
)
|
||||
|
||||
def render_previously_checked_star(self, tooltip: str = None):
|
||||
"""
|
||||
Returns a star icon for a check action in the past
|
||||
"""
|
||||
icon = "fas fa-star rlp-gd-inv"
|
||||
return format_html(
|
||||
"<em title='{}' class='{}'></em>",
|
||||
tooltip,
|
||||
icon
|
||||
)
|
||||
|
||||
def render_bookmark(self, tooltip: str = None, icn_filled: bool = False):
|
||||
"""
|
||||
Returns a bookmark icon
|
||||
|
Binary file not shown.
@ -18,15 +18,15 @@
|
||||
#: konova/filters/mixins.py:277 konova/filters/mixins.py:323
|
||||
#: konova/filters/mixins.py:361 konova/filters/mixins.py:362
|
||||
#: konova/filters/mixins.py:393 konova/filters/mixins.py:394
|
||||
#: konova/forms.py:179 konova/forms.py:281 konova/forms.py:382
|
||||
#: konova/forms.py:426 konova/forms.py:436 konova/forms.py:449
|
||||
#: konova/forms.py:461 konova/forms.py:479 user/forms.py:42
|
||||
#: konova/forms.py:179 konova/forms.py:281 konova/forms.py:395
|
||||
#: konova/forms.py:439 konova/forms.py:449 konova/forms.py:462
|
||||
#: konova/forms.py:474 konova/forms.py:492 user/forms.py:42
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-05-11 13:41+0200\n"
|
||||
"POT-Creation-Date: 2022-05-30 09:16+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"
|
||||
@ -138,9 +138,9 @@ msgstr "Zuständigkeitsbereich"
|
||||
#: analysis/templates/analysis/reports/includes/intervention/amount.html:17
|
||||
#: analysis/templates/analysis/reports/includes/intervention/compensated_by.html:8
|
||||
#: analysis/templates/analysis/reports/includes/intervention/laws.html:17
|
||||
#: compensation/tables.py:40
|
||||
#: compensation/tables.py:41
|
||||
#: compensation/templates/compensation/detail/compensation/view.html:64
|
||||
#: intervention/tables.py:39
|
||||
#: intervention/tables.py:40
|
||||
#: intervention/templates/intervention/detail/view.html:68
|
||||
#: user/models/user_action.py:20
|
||||
msgid "Checked"
|
||||
@ -154,12 +154,12 @@ msgstr "Geprüft"
|
||||
#: analysis/templates/analysis/reports/includes/intervention/compensated_by.html:9
|
||||
#: analysis/templates/analysis/reports/includes/intervention/laws.html:20
|
||||
#: analysis/templates/analysis/reports/includes/old_data/amount.html:18
|
||||
#: compensation/tables.py:46 compensation/tables.py:220
|
||||
#: compensation/tables.py:47 compensation/tables.py:230
|
||||
#: compensation/templates/compensation/detail/compensation/view.html:78
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:31
|
||||
#: compensation/templates/compensation/detail/eco_account/view.html:45
|
||||
#: ema/tables.py:44 ema/templates/ema/detail/view.html:35
|
||||
#: intervention/tables.py:45
|
||||
#: intervention/tables.py:46
|
||||
#: intervention/templates/intervention/detail/view.html:82
|
||||
#: user/models/user_action.py:21
|
||||
msgid "Recorded"
|
||||
@ -198,7 +198,7 @@ msgid "Other registration office"
|
||||
msgstr "Andere Zulassungsbehörden"
|
||||
|
||||
#: analysis/templates/analysis/reports/includes/compensation/card_compensation.html:11
|
||||
#: compensation/tables.py:67
|
||||
#: compensation/tables.py:68
|
||||
#: intervention/templates/intervention/detail/includes/compensations.html:8
|
||||
#: intervention/templates/intervention/report/report.html:45
|
||||
msgid "Compensations"
|
||||
@ -227,7 +227,7 @@ msgid "Surface"
|
||||
msgstr "Fläche"
|
||||
|
||||
#: analysis/templates/analysis/reports/includes/intervention/card_intervention.html:10
|
||||
#: intervention/tables.py:66
|
||||
#: intervention/tables.py:67
|
||||
msgid "Interventions"
|
||||
msgstr "Eingriffe"
|
||||
|
||||
@ -285,8 +285,8 @@ msgid "Type"
|
||||
msgstr "Typ"
|
||||
|
||||
#: analysis/templates/analysis/reports/includes/old_data/amount.html:24
|
||||
#: compensation/tables.py:89 intervention/forms/modalForms.py:375
|
||||
#: intervention/forms/modalForms.py:382 intervention/tables.py:88
|
||||
#: compensation/tables.py:90 intervention/forms/modalForms.py:375
|
||||
#: intervention/forms/modalForms.py:382 intervention/tables.py:89
|
||||
#: intervention/templates/intervention/detail/view.html:19
|
||||
#: konova/templates/konova/includes/quickstart/interventions.html:4
|
||||
#: templates/navbars/navbar.html:22
|
||||
@ -294,7 +294,7 @@ msgid "Intervention"
|
||||
msgstr "Eingriff"
|
||||
|
||||
#: analysis/templates/analysis/reports/includes/old_data/amount.html:34
|
||||
#: compensation/tables.py:264
|
||||
#: compensation/tables.py:274
|
||||
#: compensation/templates/compensation/detail/eco_account/view.html:20
|
||||
#: intervention/forms/modalForms.py:348 intervention/forms/modalForms.py:355
|
||||
#: konova/templates/konova/includes/quickstart/ecoaccounts.html:4
|
||||
@ -314,9 +314,9 @@ msgstr "Vor"
|
||||
msgid "Show only unrecorded"
|
||||
msgstr "Nur unverzeichnete anzeigen"
|
||||
|
||||
#: compensation/forms/forms.py:32 compensation/tables.py:25
|
||||
#: compensation/tables.py:195 ema/tables.py:29 intervention/forms/forms.py:28
|
||||
#: intervention/tables.py:24
|
||||
#: compensation/forms/forms.py:32 compensation/tables.py:26
|
||||
#: compensation/tables.py:205 ema/tables.py:29 intervention/forms/forms.py:28
|
||||
#: intervention/tables.py:25
|
||||
#: intervention/templates/intervention/detail/includes/compensations.html:30
|
||||
msgid "Identifier"
|
||||
msgstr "Kennung"
|
||||
@ -326,8 +326,8 @@ msgstr "Kennung"
|
||||
msgid "Generated automatically"
|
||||
msgstr "Automatisch generiert"
|
||||
|
||||
#: compensation/forms/forms.py:44 compensation/tables.py:30
|
||||
#: compensation/tables.py:200
|
||||
#: compensation/forms/forms.py:44 compensation/tables.py:31
|
||||
#: compensation/tables.py:210
|
||||
#: compensation/templates/compensation/detail/compensation/includes/documents.html:28
|
||||
#: compensation/templates/compensation/detail/compensation/view.html:32
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/documents.html:28
|
||||
@ -337,12 +337,12 @@ msgstr "Automatisch generiert"
|
||||
#: ema/tables.py:34 ema/templates/ema/detail/includes/documents.html:28
|
||||
#: ema/templates/ema/detail/view.html:31
|
||||
#: ema/templates/ema/report/report.html:12 intervention/forms/forms.py:40
|
||||
#: intervention/tables.py:29
|
||||
#: intervention/tables.py:30
|
||||
#: intervention/templates/intervention/detail/includes/compensations.html:33
|
||||
#: intervention/templates/intervention/detail/includes/documents.html:28
|
||||
#: intervention/templates/intervention/detail/view.html:31
|
||||
#: intervention/templates/intervention/report/report.html:12
|
||||
#: konova/forms.py:425
|
||||
#: konova/forms.py:438
|
||||
msgid "Title"
|
||||
msgstr "Bezeichnung"
|
||||
|
||||
@ -369,7 +369,7 @@ msgstr "Kompensation XY; Flur ABC"
|
||||
#: intervention/templates/intervention/detail/includes/documents.html:34
|
||||
#: intervention/templates/intervention/detail/includes/payments.html:34
|
||||
#: intervention/templates/intervention/detail/includes/revocation.html:38
|
||||
#: konova/forms.py:460 konova/templates/konova/includes/comment_card.html:16
|
||||
#: konova/forms.py:473 konova/templates/konova/includes/comment_card.html:16
|
||||
msgid "Comment"
|
||||
msgstr "Kommentar"
|
||||
|
||||
@ -493,7 +493,7 @@ msgid "Due on which date"
|
||||
msgstr "Zahlung wird an diesem Datum erwartet"
|
||||
|
||||
#: compensation/forms/modalForms.py:65 compensation/forms/modalForms.py:363
|
||||
#: intervention/forms/modalForms.py:177 konova/forms.py:462
|
||||
#: intervention/forms/modalForms.py:177 konova/forms.py:475
|
||||
msgid "Additional comment, maximum {} letters"
|
||||
msgstr "Zusätzlicher Kommentar, maximal {} Zeichen"
|
||||
|
||||
@ -675,70 +675,62 @@ msgstr ""
|
||||
"Es wurde bereits mehr Fläche abgebucht, als Sie nun als abbuchbar einstellen "
|
||||
"wollen. Kontaktieren Sie die für die Abbuchungen verantwortlichen Nutzer!"
|
||||
|
||||
#: compensation/tables.py:35 compensation/tables.py:205 ema/tables.py:39
|
||||
#: intervention/tables.py:34 konova/filters/mixins.py:98
|
||||
#: compensation/tables.py:36 compensation/tables.py:215 ema/tables.py:39
|
||||
#: intervention/tables.py:35 konova/filters/mixins.py:98
|
||||
msgid "Parcel gmrkng"
|
||||
msgstr "Gemarkung"
|
||||
|
||||
#: compensation/tables.py:52 compensation/tables.py:226 ema/tables.py:50
|
||||
#: intervention/tables.py:51
|
||||
#: compensation/tables.py:53 compensation/tables.py:236 ema/tables.py:50
|
||||
#: intervention/tables.py:52
|
||||
msgid "Editable"
|
||||
msgstr "Freigegeben"
|
||||
|
||||
#: compensation/tables.py:58 compensation/tables.py:232 ema/tables.py:56
|
||||
#: intervention/tables.py:57
|
||||
#: compensation/tables.py:59 compensation/tables.py:242 ema/tables.py:56
|
||||
#: intervention/tables.py:58
|
||||
msgid "Last edit"
|
||||
msgstr "Zuletzt bearbeitet"
|
||||
|
||||
#: compensation/tables.py:89 compensation/tables.py:264 ema/tables.py:89
|
||||
#: intervention/tables.py:88
|
||||
#: compensation/tables.py:90 compensation/tables.py:274 ema/tables.py:89
|
||||
#: intervention/tables.py:89
|
||||
msgid "Open {}"
|
||||
msgstr "Öffne {}"
|
||||
|
||||
#: compensation/tables.py:114 intervention/tables.py:111
|
||||
msgid "Not checked yet"
|
||||
msgstr "Noch nicht geprüft"
|
||||
|
||||
#: compensation/tables.py:119 intervention/tables.py:116
|
||||
msgid "Checked on {} by {}"
|
||||
msgstr "Am {} von {} geprüft worden"
|
||||
|
||||
#: compensation/tables.py:160
|
||||
#: compensation/tables.py:170
|
||||
#: compensation/templates/compensation/detail/compensation/view.html:81
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:58
|
||||
#: compensation/templates/compensation/detail/eco_account/view.html:48
|
||||
#: ema/tables.py:131 ema/templates/ema/detail/view.html:38
|
||||
#: intervention/tables.py:157
|
||||
#: intervention/tables.py:167
|
||||
#: intervention/templates/intervention/detail/view.html:85
|
||||
msgid "Not recorded yet"
|
||||
msgstr "Noch nicht verzeichnet"
|
||||
|
||||
#: compensation/tables.py:165 compensation/tables.py:324 ema/tables.py:136
|
||||
#: intervention/tables.py:162
|
||||
#: compensation/tables.py:175 compensation/tables.py:334 ema/tables.py:136
|
||||
#: intervention/tables.py:172
|
||||
msgid "Recorded on {} by {}"
|
||||
msgstr "Am {} von {} verzeichnet worden"
|
||||
|
||||
#: compensation/tables.py:187 compensation/tables.py:346 ema/tables.py:157
|
||||
#: intervention/tables.py:183
|
||||
#: compensation/tables.py:197 compensation/tables.py:356 ema/tables.py:157
|
||||
#: intervention/tables.py:193
|
||||
msgid "Full access granted"
|
||||
msgstr "Für Sie freigegeben - Datensatz kann bearbeitet werden"
|
||||
|
||||
#: compensation/tables.py:187 compensation/tables.py:346 ema/tables.py:157
|
||||
#: intervention/tables.py:183
|
||||
#: compensation/tables.py:197 compensation/tables.py:356 ema/tables.py:157
|
||||
#: intervention/tables.py:193
|
||||
msgid "Access not granted"
|
||||
msgstr "Nicht freigegeben - Datensatz nur lesbar"
|
||||
|
||||
#: compensation/tables.py:210
|
||||
#: compensation/tables.py:220
|
||||
#: compensation/templates/compensation/detail/eco_account/view.html:36
|
||||
#: konova/templates/konova/widgets/progressbar.html:3
|
||||
msgid "Available"
|
||||
msgstr "Verfügbar"
|
||||
|
||||
#: compensation/tables.py:241
|
||||
#: compensation/tables.py:251
|
||||
msgid "Eco Accounts"
|
||||
msgstr "Ökokonten"
|
||||
|
||||
#: compensation/tables.py:319
|
||||
#: compensation/tables.py:329
|
||||
msgid "Not recorded yet. Can not be used for deductions, yet."
|
||||
msgstr ""
|
||||
"Noch nicht verzeichnet. Kann noch nicht für Abbuchungen genutzt werden."
|
||||
@ -871,7 +863,7 @@ msgstr "Dokumente"
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/documents.html:14
|
||||
#: ema/templates/ema/detail/includes/documents.html:14
|
||||
#: intervention/templates/intervention/detail/includes/documents.html:14
|
||||
#: konova/forms.py:478
|
||||
#: konova/forms.py:491
|
||||
msgid "Add new document"
|
||||
msgstr "Neues Dokument hinzufügen"
|
||||
|
||||
@ -879,7 +871,7 @@ msgstr "Neues Dokument hinzufügen"
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/documents.html:31
|
||||
#: ema/templates/ema/detail/includes/documents.html:31
|
||||
#: intervention/templates/intervention/detail/includes/documents.html:31
|
||||
#: konova/forms.py:435
|
||||
#: konova/forms.py:448
|
||||
msgid "Created on"
|
||||
msgstr "Erstellt"
|
||||
|
||||
@ -887,7 +879,7 @@ msgstr "Erstellt"
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/documents.html:61
|
||||
#: ema/templates/ema/detail/includes/documents.html:61
|
||||
#: intervention/templates/intervention/detail/includes/documents.html:65
|
||||
#: konova/forms.py:540
|
||||
#: konova/forms.py:553
|
||||
msgid "Edit document"
|
||||
msgstr "Dokument bearbeiten"
|
||||
|
||||
@ -1150,17 +1142,17 @@ msgid "Compensation {} edited"
|
||||
msgstr "Kompensation {} bearbeitet"
|
||||
|
||||
#: compensation/views/compensation.py:182 compensation/views/eco_account.py:173
|
||||
#: ema/views.py:240 intervention/views.py:334
|
||||
#: ema/views.py:240 intervention/views.py:332
|
||||
msgid "Edit {}"
|
||||
msgstr "Bearbeite {}"
|
||||
|
||||
#: compensation/views/compensation.py:261 compensation/views/eco_account.py:359
|
||||
#: ema/views.py:194 intervention/views.py:538
|
||||
#: ema/views.py:194 intervention/views.py:536
|
||||
msgid "Log"
|
||||
msgstr "Log"
|
||||
|
||||
#: compensation/views/compensation.py:605 compensation/views/eco_account.py:727
|
||||
#: ema/views.py:558 intervention/views.py:684
|
||||
#: ema/views.py:558 intervention/views.py:682
|
||||
msgid "Report {}"
|
||||
msgstr "Bericht {}"
|
||||
|
||||
@ -1181,32 +1173,32 @@ msgid "Eco-account removed"
|
||||
msgstr "Ökokonto entfernt"
|
||||
|
||||
#: compensation/views/eco_account.py:380 ema/views.py:282
|
||||
#: intervention/views.py:637
|
||||
#: intervention/views.py:635
|
||||
msgid "{} unrecorded"
|
||||
msgstr "{} entzeichnet"
|
||||
|
||||
#: compensation/views/eco_account.py:380 ema/views.py:282
|
||||
#: intervention/views.py:637
|
||||
#: intervention/views.py:635
|
||||
msgid "{} recorded"
|
||||
msgstr "{} verzeichnet"
|
||||
|
||||
#: compensation/views/eco_account.py:804 ema/views.py:628
|
||||
#: intervention/views.py:435
|
||||
#: intervention/views.py:433
|
||||
msgid "{} has already been shared with you"
|
||||
msgstr "{} wurde bereits für Sie freigegeben"
|
||||
|
||||
#: compensation/views/eco_account.py:809 ema/views.py:633
|
||||
#: intervention/views.py:440
|
||||
#: intervention/views.py:438
|
||||
msgid "{} has been shared with you"
|
||||
msgstr "{} ist nun für Sie freigegeben"
|
||||
|
||||
#: compensation/views/eco_account.py:816 ema/views.py:640
|
||||
#: intervention/views.py:447
|
||||
#: intervention/views.py:445
|
||||
msgid "Share link invalid"
|
||||
msgstr "Freigabelink ungültig"
|
||||
|
||||
#: compensation/views/eco_account.py:839 ema/views.py:663
|
||||
#: intervention/views.py:470
|
||||
#: intervention/views.py:468
|
||||
msgid "Share settings updated"
|
||||
msgstr "Freigabe Einstellungen aktualisiert"
|
||||
|
||||
@ -1312,7 +1304,7 @@ msgstr "Datum Zulassung bzw. Satzungsbeschluss"
|
||||
msgid "Binding on"
|
||||
msgstr "Datum Bestandskraft bzw. Rechtskraft"
|
||||
|
||||
#: intervention/forms/forms.py:211 intervention/views.py:97
|
||||
#: intervention/forms/forms.py:211 intervention/views.py:95
|
||||
msgid "New intervention"
|
||||
msgstr "Neuer Eingriff"
|
||||
|
||||
@ -1392,7 +1384,7 @@ msgstr "Kompensationen und Zahlungen geprüft"
|
||||
msgid "Run check"
|
||||
msgstr "Prüfung vornehmen"
|
||||
|
||||
#: intervention/forms/modalForms.py:264 konova/forms.py:581
|
||||
#: intervention/forms/modalForms.py:264 konova/forms.py:594
|
||||
msgid ""
|
||||
"I, {} {}, confirm that all necessary control steps have been performed by "
|
||||
"myself."
|
||||
@ -1532,27 +1524,27 @@ msgstr ""
|
||||
"Kein Ausgleich jeglicher Art gefunden (Kompensation, Ersatzzahlung, "
|
||||
"Abbuchung)"
|
||||
|
||||
#: intervention/views.py:54
|
||||
#: intervention/views.py:52
|
||||
msgid "Interventions - Overview"
|
||||
msgstr "Eingriffe - Übersicht"
|
||||
|
||||
#: intervention/views.py:87
|
||||
#: intervention/views.py:85
|
||||
msgid "Intervention {} added"
|
||||
msgstr "Eingriff {} hinzugefügt"
|
||||
|
||||
#: intervention/views.py:322
|
||||
#: intervention/views.py:320
|
||||
msgid "Intervention {} edited"
|
||||
msgstr "Eingriff {} bearbeitet"
|
||||
|
||||
#: intervention/views.py:358
|
||||
#: intervention/views.py:356
|
||||
msgid "{} removed"
|
||||
msgstr "{} entfernt"
|
||||
|
||||
#: intervention/views.py:491
|
||||
#: intervention/views.py:489
|
||||
msgid "Check performed"
|
||||
msgstr "Prüfung durchgeführt"
|
||||
|
||||
#: intervention/views.py:642
|
||||
#: intervention/views.py:640
|
||||
msgid "There are errors on this intervention:"
|
||||
msgstr "Es liegen Fehler in diesem Eingriff vor:"
|
||||
|
||||
@ -1645,11 +1637,11 @@ msgstr "Speichern"
|
||||
msgid "Not editable"
|
||||
msgstr "Nicht editierbar"
|
||||
|
||||
#: konova/forms.py:178 konova/forms.py:381
|
||||
#: konova/forms.py:178 konova/forms.py:394
|
||||
msgid "Confirm"
|
||||
msgstr "Bestätige"
|
||||
|
||||
#: konova/forms.py:190 konova/forms.py:390
|
||||
#: konova/forms.py:190 konova/forms.py:403
|
||||
msgid "Remove"
|
||||
msgstr "Löschen"
|
||||
|
||||
@ -1662,48 +1654,49 @@ msgstr "Sie sind dabei {} {} zu löschen"
|
||||
msgid "Geometry"
|
||||
msgstr "Geometrie"
|
||||
|
||||
#: konova/forms.py:325
|
||||
#: konova/forms.py:331
|
||||
msgid "Only surfaces allowed. Points or lines must be buffered."
|
||||
msgstr "Nur Flächen erlaubt. Punkte oder Linien müssen zu Flächen gepuffert werden."
|
||||
msgstr ""
|
||||
"Nur Flächen erlaubt. Punkte oder Linien müssen zu Flächen gepuffert werden."
|
||||
|
||||
#: konova/forms.py:391
|
||||
#: konova/forms.py:404
|
||||
msgid "Are you sure?"
|
||||
msgstr "Sind Sie sicher?"
|
||||
|
||||
#: konova/forms.py:437
|
||||
#: konova/forms.py:450
|
||||
msgid "When has this file been created? Important for photos."
|
||||
msgstr "Wann wurde diese Datei erstellt oder das Foto aufgenommen?"
|
||||
|
||||
#: konova/forms.py:448
|
||||
#: konova/forms.py:461
|
||||
#: venv/lib/python3.7/site-packages/django/db/models/fields/files.py:231
|
||||
msgid "File"
|
||||
msgstr "Datei"
|
||||
|
||||
#: konova/forms.py:450
|
||||
#: konova/forms.py:463
|
||||
msgid "Allowed formats: pdf, jpg, png. Max size 15 MB."
|
||||
msgstr "Formate: pdf, jpg, png. Maximal 15 MB."
|
||||
|
||||
#: konova/forms.py:515
|
||||
#: konova/forms.py:528
|
||||
msgid "Added document"
|
||||
msgstr "Dokument hinzugefügt"
|
||||
|
||||
#: konova/forms.py:572
|
||||
#: konova/forms.py:585
|
||||
msgid "Confirm record"
|
||||
msgstr "Verzeichnen bestätigen"
|
||||
|
||||
#: konova/forms.py:580
|
||||
#: konova/forms.py:593
|
||||
msgid "Record data"
|
||||
msgstr "Daten verzeichnen"
|
||||
|
||||
#: konova/forms.py:587
|
||||
#: konova/forms.py:600
|
||||
msgid "Confirm unrecord"
|
||||
msgstr "Entzeichnen bestätigen"
|
||||
|
||||
#: konova/forms.py:588
|
||||
#: konova/forms.py:601
|
||||
msgid "Unrecord data"
|
||||
msgstr "Daten entzeichnen"
|
||||
|
||||
#: konova/forms.py:589
|
||||
#: konova/forms.py:602
|
||||
msgid "I, {} {}, confirm that this data must be unrecorded."
|
||||
msgstr ""
|
||||
"Ich, {} {}, bestätige, dass diese Daten wieder entzeichnet werden müssen."
|
||||
@ -2059,6 +2052,18 @@ msgstr "Geometriekonflikt mit folgenden Einträgen erkannt: {}"
|
||||
msgid "This intervention has {} revocations"
|
||||
msgstr "Dem Eingriff liegen {} Widersprüche vor"
|
||||
|
||||
#: konova/utils/message_templates.py:86
|
||||
msgid "Checked on {} by {}"
|
||||
msgstr "Am {} von {} geprüft worden"
|
||||
|
||||
#: konova/utils/message_templates.py:87
|
||||
msgid "Data has changed since last check on {} by {}"
|
||||
msgstr "Daten wurden nach der letzten Prüfung geändert. Letzte Prüfung am {} durch {}"
|
||||
|
||||
#: konova/utils/message_templates.py:88
|
||||
msgid "Current data not checked yet"
|
||||
msgstr "Momentane Daten noch nicht geprüft"
|
||||
|
||||
#: konova/utils/messenger.py:70
|
||||
msgid "{} checked"
|
||||
msgstr "{} geprüft"
|
||||
@ -2489,8 +2494,9 @@ msgid ""
|
||||
msgstr ""
|
||||
"\n"
|
||||
" Diese Daten sind noch nicht veröffentlicht und/oder haben das "
|
||||
"Bestands-/Rechtskraftdatum noch nicht erreicht. Sie können daher aktuell nicht "
|
||||
"eingesehen werden. Schauen Sie zu einem späteren Zeitpunkt wieder vorbei. \n"
|
||||
"Bestands-/Rechtskraftdatum noch nicht erreicht. Sie können daher aktuell "
|
||||
"nicht eingesehen werden. Schauen Sie zu einem späteren Zeitpunkt wieder "
|
||||
"vorbei. \n"
|
||||
" "
|
||||
|
||||
#: templates/table/gmrkng_col.html:6
|
||||
|
@ -8,6 +8,7 @@ Created on: 15.11.21
|
||||
import uuid
|
||||
|
||||
from django.db import models
|
||||
from django.utils.timezone import localtime
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from konova.sub_settings.django_settings import DEFAULT_DATE_TIME_FORMAT
|
||||
@ -122,3 +123,13 @@ class UserActionLogEntry(models.Model):
|
||||
comment=comment,
|
||||
)
|
||||
return action
|
||||
|
||||
def get_timestamp_str_formatted(self):
|
||||
""" Getter for formatted timestamp string of the entry
|
||||
|
||||
Returns:
|
||||
val (str): The formatted timestamp as string
|
||||
"""
|
||||
val = self.timestamp
|
||||
val = localtime(val)
|
||||
return val.strftime(DEFAULT_DATE_TIME_FORMAT)
|
||||
|
Loading…
Reference in New Issue
Block a user