299_Performance_tweaks #302
@ -55,10 +55,12 @@ class CheckboxCompensationTableFilter(CheckboxTableFilter):
|
||||
|
||||
"""
|
||||
if not value:
|
||||
return queryset.filter(
|
||||
user_teams = self.user.shared_teams
|
||||
result = queryset.filter(
|
||||
Q(intervention__users__in=[self.user]) | # requesting user has access
|
||||
Q(intervention__teams__in=self.user.shared_teams)
|
||||
Q(intervention__teams__in=user_teams)
|
||||
).distinct()
|
||||
return result
|
||||
else:
|
||||
return queryset
|
||||
|
||||
|
@ -8,6 +8,7 @@ Created on: 18.08.22
|
||||
from django.http import HttpRequest
|
||||
from django.template.loader import render_to_string
|
||||
from django.urls import reverse
|
||||
from django.utils.formats import number_format
|
||||
from django.utils.html import format_html
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
@ -111,6 +112,7 @@ class EcoAccountTable(BaseTable, TableRenderMixin, TableOrderMixin):
|
||||
except ZeroDivisionError:
|
||||
value_relative = 0
|
||||
html = render_to_string("konova/widgets/progressbar.html", {"value": value_relative})
|
||||
html += f"{number_format(record.deductable_rest, decimal_pos=2)} m²"
|
||||
return format_html(html)
|
||||
|
||||
def render_r(self, value, record: EcoAccount):
|
||||
|
@ -204,7 +204,11 @@ def detail_view(request: HttpRequest, id: str):
|
||||
"""
|
||||
template = "compensation/detail/compensation/view.html"
|
||||
comp = get_object_or_404(
|
||||
Compensation,
|
||||
Compensation.objects.select_related(
|
||||
"modified",
|
||||
"created",
|
||||
"geometry"
|
||||
),
|
||||
id=id,
|
||||
deleted=None,
|
||||
intervention__deleted=None,
|
||||
|
@ -142,6 +142,8 @@ def detail_view(request: HttpRequest, id: str):
|
||||
"geometry",
|
||||
"legal",
|
||||
"responsible",
|
||||
).prefetch_related(
|
||||
"legal__revocations",
|
||||
),
|
||||
id=id,
|
||||
deleted=None
|
||||
@ -158,7 +160,10 @@ def detail_view(request: HttpRequest, id: str):
|
||||
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)
|
||||
last_checked_tooltip = DATA_CHECKED_PREVIOUSLY_TEMPLATE.format(
|
||||
last_checked.get_timestamp_str_formatted(),
|
||||
last_checked.user
|
||||
)
|
||||
|
||||
has_payment_without_document = intervention.payments.exists() and not intervention.get_documents()[1].exists()
|
||||
|
||||
|
@ -50,9 +50,11 @@ class ShareableTableFilterMixin(django_filters.FilterSet):
|
||||
|
||||
"""
|
||||
if not value:
|
||||
return queryset.filter(
|
||||
user_teams = self.user.shared_teams
|
||||
result = queryset.filter(
|
||||
Q(users__in=[self.user]) | # requesting user has access
|
||||
Q(teams__in=self.user.shared_teams)
|
||||
Q(teams__in=user_teams)
|
||||
).distinct()
|
||||
return result
|
||||
else:
|
||||
return queryset
|
@ -501,10 +501,13 @@ class ShareableObjectMixin(models.Model):
|
||||
Returns:
|
||||
|
||||
"""
|
||||
directly_shared = self.shared_users.filter(id=user.id).exists()
|
||||
team_shared = self.shared_teams.filter(
|
||||
users__in=[user]
|
||||
).exists()
|
||||
obj_shared_teams = self.shared_teams
|
||||
obj_shared_users = self.shared_users
|
||||
user_shared_teams = user.shared_teams
|
||||
|
||||
directly_shared = obj_shared_users.filter(id=user.id).exists()
|
||||
team_shared = (obj_shared_teams & user_shared_teams).exists()
|
||||
|
||||
is_shared = directly_shared or team_shared
|
||||
return is_shared
|
||||
|
||||
|
@ -35,6 +35,7 @@ def home_view(request: HttpRequest):
|
||||
template = "konova/home.html"
|
||||
now = timezone.now()
|
||||
user = request.user
|
||||
user_teams = user.shared_teams
|
||||
|
||||
# Fetch the four newest active and published ServerMessages
|
||||
msgs = ServerMessage.objects.filter(
|
||||
@ -51,7 +52,7 @@ def home_view(request: HttpRequest):
|
||||
)
|
||||
# Then fetch only user related ones
|
||||
user_interventions = interventions.filter(
|
||||
Q(users__in=[user]) | Q(teams__in=user.shared_teams)
|
||||
Q(users__in=[user]) | Q(teams__in=user_teams)
|
||||
).distinct()
|
||||
|
||||
# Repeat for other objects
|
||||
@ -59,13 +60,13 @@ def home_view(request: HttpRequest):
|
||||
deleted=None,
|
||||
)
|
||||
user_comps = comps.filter(
|
||||
Q(intervention__users__in=[user]) | Q(intervention__teams__in=user.shared_teams)
|
||||
Q(intervention__users__in=[user]) | Q(intervention__teams__in=user_teams)
|
||||
).distinct()
|
||||
eco_accs = EcoAccount.objects.filter(
|
||||
deleted=None,
|
||||
)
|
||||
user_ecco_accs = eco_accs.filter(
|
||||
Q(users__in=[user]) | Q(teams__in=user.shared_teams)
|
||||
Q(users__in=[user]) | Q(teams__in=user_teams)
|
||||
).distinct()
|
||||
|
||||
additional_context = {
|
||||
|
Loading…
Reference in New Issue
Block a user