Quality of Life improvements

* disables ordering of parcel_group ("Gemarkung") column on tables
    * ordering can not be done properly due to more complex nature of this column's content
* introduces "Keine Geometrie vorhanden" message instead of hour glass icon on entries where no geometry has been entered yet
* properly orders last_modified column by moving null values to the lower end of the ordering
This commit is contained in:
2022-10-12 10:01:23 +02:00
parent 18242d2cba
commit 97b7156b9c
6 changed files with 60 additions and 112 deletions

View File

@@ -6,21 +6,18 @@ Created on: 19.08.21
"""
from django.http import HttpRequest
from django.template.loader import render_to_string
from django.utils.html import format_html
from django.utils.timezone import localtime
from django.utils.translation import gettext_lazy as _
from django.urls import reverse
import django_tables2 as tables
from konova.sub_settings.django_settings import DEFAULT_DATE_TIME_FORMAT
from konova.utils.tables import BaseTable, TableRenderMixin
from konova.utils.tables import BaseTable, TableRenderMixin, TableOrderMixin
from ema.filters import EmaTableFilter
from ema.models import Ema
class EmaTable(BaseTable, TableRenderMixin):
class EmaTable(BaseTable, TableRenderMixin, TableOrderMixin):
"""
Since EMA and compensation are basically the same, we can reuse CompensationTableFilter and extend the EMA filter
in the future by inheriting.
@@ -37,7 +34,7 @@ class EmaTable(BaseTable, TableRenderMixin):
)
d = tables.Column(
verbose_name=_("Parcel gmrkng"),
orderable=True,
orderable=False,
accessor="geometry",
)
r = tables.Column(
@@ -93,28 +90,6 @@ class EmaTable(BaseTable, TableRenderMixin):
)
return format_html(html)
def render_d(self, value, record: Ema):
""" Renders the parcel district column for a ema
Args:
value (str): The geometry
record (Ema): The ema record
Returns:
"""
parcels = value.get_underlying_parcels().values_list(
"parcel_group__name",
flat=True
).distinct()
html = render_to_string(
"table/gmrkng_col.html",
{
"entries": parcels
}
)
return html
def render_r(self, value, record: Ema):
""" Renders the registered column for a EMA