Merge pull request '299_Performance_tweaks' (#302) from 299_Performance_tweaks into master
Reviewed-on: SGD-Nord/konova#302
This commit is contained in:
@@ -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
|
||||
@@ -506,10 +506,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 = {
|
||||
|
||||
Reference in New Issue
Block a user