Table improvements
* enhances visualization of editable column on tables
    * simplifies code
* enhances visualization of parcel_group column on tables
* WIP: Ordering on intervention table is odd. Same results are being displayed on page 2. Needs further analysis and fixing!
			
			
This commit is contained in:
		
							parent
							
								
									729a8f991c
								
							
						
					
					
						commit
						20c9950b7f
					
				@ -148,20 +148,3 @@ class CompensationTable(BaseTable, TableRenderMixin, TableOrderMixin):
 | 
				
			|||||||
        )
 | 
					        )
 | 
				
			||||||
        return format_html(html)
 | 
					        return format_html(html)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def render_e(self, value, record: Compensation):
 | 
					 | 
				
			||||||
        """ Renders the editable column for a compensation
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        Args:
 | 
					 | 
				
			||||||
            value (str): The identifier value
 | 
					 | 
				
			||||||
            record (Compensation): The compensation record
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        Returns:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        """
 | 
					 | 
				
			||||||
        has_access = record.is_shared_with(self.user)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        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)
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -134,23 +134,3 @@ class EcoAccountTable(BaseTable, TableRenderMixin, TableOrderMixin):
 | 
				
			|||||||
            icn_filled=checked,
 | 
					            icn_filled=checked,
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
        return format_html(html)
 | 
					        return format_html(html)
 | 
				
			||||||
 | 
					 | 
				
			||||||
    def render_e(self, value, record: EcoAccount):
 | 
					 | 
				
			||||||
        """ Renders the editable column for an eco account
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        Args:
 | 
					 | 
				
			||||||
            value (str): The identifier value
 | 
					 | 
				
			||||||
            record (EcoAccount): The eco account record
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        Returns:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        """
 | 
					 | 
				
			||||||
        html = ""
 | 
					 | 
				
			||||||
        # Do not use value in here, since value does use unprefetched 'users' manager, where record has already
 | 
					 | 
				
			||||||
        # prefetched users data
 | 
					 | 
				
			||||||
        has_access = record.is_shared_with(self.user)
 | 
					 | 
				
			||||||
        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)
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -111,22 +111,3 @@ class EmaTable(BaseTable, TableRenderMixin, TableOrderMixin):
 | 
				
			|||||||
            icn_filled=recorded,
 | 
					            icn_filled=recorded,
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
        return format_html(html)
 | 
					        return format_html(html)
 | 
				
			||||||
 | 
					 | 
				
			||||||
    def render_e(self, value, record: Ema):
 | 
					 | 
				
			||||||
        """ Renders the editable column for a EMA
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        Args:
 | 
					 | 
				
			||||||
            value (str): The identifier value
 | 
					 | 
				
			||||||
            record (Ema): The EMA record
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        Returns:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        """
 | 
					 | 
				
			||||||
        html = ""
 | 
					 | 
				
			||||||
        has_access = record.is_shared_with(self.user)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        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)
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -39,9 +39,8 @@ def index_view(request: HttpRequest):
 | 
				
			|||||||
    template = "generic_index.html"
 | 
					    template = "generic_index.html"
 | 
				
			||||||
    emas = Ema.objects.filter(
 | 
					    emas = Ema.objects.filter(
 | 
				
			||||||
        deleted=None,
 | 
					        deleted=None,
 | 
				
			||||||
    ).order_by(
 | 
					 | 
				
			||||||
        "-modified"
 | 
					 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    table = EmaTable(
 | 
					    table = EmaTable(
 | 
				
			||||||
        request,
 | 
					        request,
 | 
				
			||||||
        queryset=emas
 | 
					        queryset=emas
 | 
				
			||||||
 | 
				
			|||||||
@ -146,22 +146,3 @@ class InterventionTable(BaseTable, TableRenderMixin, TableOrderMixin):
 | 
				
			|||||||
        )
 | 
					        )
 | 
				
			||||||
        return format_html(html)
 | 
					        return format_html(html)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def render_e(self, value, record: Intervention):
 | 
					 | 
				
			||||||
        """ Renders the editable column for an intervention
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        Args:
 | 
					 | 
				
			||||||
            value (str): The identifier value
 | 
					 | 
				
			||||||
            record (Intervention): The intervention record
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        Returns:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        """
 | 
					 | 
				
			||||||
        html = ""
 | 
					 | 
				
			||||||
        has_access = record.is_shared_with(self.user)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        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)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,8 @@
 | 
				
			|||||||
{% load i18n l10n %}
 | 
					{% load i18n l10n fontawesome_5 %}
 | 
				
			||||||
<div class="table-container w-100 scroll-300">
 | 
					<div class="table-container w-100 scroll-300">
 | 
				
			||||||
    {% if parcels|length == 0 %}
 | 
					    {% if parcels|length == 0 %}
 | 
				
			||||||
    <article class="alert alert-info">
 | 
					    <article class="alert alert-info">
 | 
				
			||||||
 | 
					        {% fa5_icon 'search-location' %}
 | 
				
			||||||
        {% trans 'Parcels can not be calculated, since no geometry is given.' %}
 | 
					        {% trans 'Parcels can not be calculated, since no geometry is given.' %}
 | 
				
			||||||
    </article>
 | 
					    </article>
 | 
				
			||||||
    {% else %}
 | 
					    {% else %}
 | 
				
			||||||
 | 
				
			|||||||
@ -12,8 +12,9 @@ from django.http import HttpRequest
 | 
				
			|||||||
from django.template.loader import render_to_string
 | 
					from django.template.loader import render_to_string
 | 
				
			||||||
from django.utils.html import format_html
 | 
					from django.utils.html import format_html
 | 
				
			||||||
import django_tables2 as tables
 | 
					import django_tables2 as tables
 | 
				
			||||||
 | 
					from django.utils.translation import gettext_lazy as _
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from konova.models import BaseObject, GeoReferencedMixin
 | 
					from konova.models import BaseObject, GeoReferencedMixin, ShareableObjectMixin
 | 
				
			||||||
from konova.settings import PAGE_SIZE_DEFAULT, PAGE_PARAM, RESULTS_PER_PAGE_PARAM, PAGE_SIZE_OPTIONS
 | 
					from konova.settings import PAGE_SIZE_DEFAULT, PAGE_PARAM, RESULTS_PER_PAGE_PARAM, PAGE_SIZE_OPTIONS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -200,6 +201,25 @@ class TableRenderMixin:
 | 
				
			|||||||
        )
 | 
					        )
 | 
				
			||||||
        return html
 | 
					        return html
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def render_e(self, value, record: ShareableObjectMixin):
 | 
				
			||||||
 | 
					        """ Renders the editable column
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Args:
 | 
				
			||||||
 | 
					            value (str): The identifier value
 | 
				
			||||||
 | 
					            record (ShareableObjectMixin): The record
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Returns:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        html = ""
 | 
				
			||||||
 | 
					        has_access = record.is_shared_with(self.user)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        html += self.render_icn(
 | 
				
			||||||
 | 
					            tooltip=_("Full access granted") if has_access else _("Access not granted"),
 | 
				
			||||||
 | 
					            icn_class="fas fa-share-alt rlp-r-inv" if has_access else "",
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					        return format_html(html)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class TableOrderMixin:
 | 
					class TableOrderMixin:
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
 | 
				
			|||||||
@ -1,4 +1,4 @@
 | 
				
			|||||||
{% load i18n %}
 | 
					{% load i18n fontawesome_5 %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{% comment %}
 | 
					{% comment %}
 | 
				
			||||||
    Encapsules the rendering and initializing of a geometry view component, e.g. used in the detail views.
 | 
					    Encapsules the rendering and initializing of a geometry view component, e.g. used in the detail views.
 | 
				
			||||||
@ -6,7 +6,10 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
{% if geom_form.empty %}
 | 
					{% if geom_form.empty %}
 | 
				
			||||||
    <div class="w-100">
 | 
					    <div class="w-100">
 | 
				
			||||||
        <div class="alert alert-info">{% trans 'No geometry added, yet.' %}</div>
 | 
					        <div class="alert alert-info">
 | 
				
			||||||
 | 
					            {% fa5_icon 'search-location' %}
 | 
				
			||||||
 | 
					            {% trans 'No geometry added, yet.' %}
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
{% endif %}
 | 
					{% endif %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -10,6 +10,7 @@
 | 
				
			|||||||
    {% endfor %}
 | 
					    {% endfor %}
 | 
				
			||||||
{% else %}
 | 
					{% else %}
 | 
				
			||||||
        <span class="text-info" title="{% translate 'No geometry added, yet.' %}">
 | 
					        <span class="text-info" title="{% translate 'No geometry added, yet.' %}">
 | 
				
			||||||
            {% fa5_icon 'ellipsis-h' %}
 | 
					            {% fa5_icon 'search-location' %}
 | 
				
			||||||
 | 
					            {% fa5_icon 'question' %}
 | 
				
			||||||
        </span>
 | 
					        </span>
 | 
				
			||||||
{% endif %}
 | 
					{% endif %}
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user