adjust citysite table name to activesites
This commit is contained in:
1 parent
fb0f996776
commit
64b37b6b6d
27 files changed
+382
-221
No files matched your search
@@ -1,11 +1,11 @@
|
||||
"""Visibility scoping for HQ executives.
|
||||
|
||||
- director / director_admin: all sites / city sites / GMs
|
||||
- director / director_admin: all sites / active sites / GMs
|
||||
- buh / bu_admin: only GMs (and gm_admins) they manage, plus those GMs' sites
|
||||
- gm / gm_admin: only their own sites / city sites they registered
|
||||
- gm / gm_admin: only their own sites / active sites they registered
|
||||
|
||||
Farm Site rows are only visible to non-directors when linked to an active
|
||||
CitySite in the viewer's Pengaturan registry.
|
||||
ActiveSite in the viewer's Pengaturan registry.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
@@ -61,7 +61,7 @@ def managed_gm_ids(buh: User) -> list[int]:
|
||||
|
||||
def visible_owner_ids(user: User) -> list[int] | None:
|
||||
"""
|
||||
Site.user / CitySite.registered_by ids this viewer may see.
|
||||
Site.user / ActiveSite.registered_by ids this viewer may see.
|
||||
|
||||
Returns None when there is no restriction (director / superuser).
|
||||
"""
|
||||
@@ -74,13 +74,13 @@ def visible_owner_ids(user: User) -> list[int] | None:
|
||||
return []
|
||||
|
||||
|
||||
def visible_active_city_site_ids(user: User) -> list[int] | None:
|
||||
def visible_active_site_ids(user: User) -> list[int] | None:
|
||||
"""
|
||||
Active CitySite pks in this viewer's Pengaturan registry.
|
||||
Enabled ActiveSite pks in this viewer's Pengaturan registry.
|
||||
|
||||
Returns None for directors (no restriction). Empty list means no farm sites.
|
||||
"""
|
||||
from apps.sync.models import CitySite
|
||||
from apps.sync.models import ActiveSite
|
||||
|
||||
owners = visible_owner_ids(user)
|
||||
if owners is None:
|
||||
@@ -88,7 +88,7 @@ def visible_active_city_site_ids(user: User) -> list[int] | None:
|
||||
if not owners:
|
||||
return []
|
||||
return list(
|
||||
CitySite.objects.filter(
|
||||
ActiveSite.objects.filter(
|
||||
registered_by_id__in=owners,
|
||||
is_active=True,
|
||||
).values_list("pk", flat=True)
|
||||
@@ -120,13 +120,13 @@ def filter_sites_queryset(qs: QuerySet, viewer: User) -> QuerySet:
|
||||
return qs
|
||||
if not owners:
|
||||
return qs.none()
|
||||
city_ids = visible_active_city_site_ids(viewer)
|
||||
if not city_ids:
|
||||
active_ids = visible_active_site_ids(viewer)
|
||||
if not active_ids:
|
||||
return qs.none()
|
||||
return qs.filter(user_id__in=owners, city_site_id__in=city_ids)
|
||||
return qs.filter(user_id__in=owners, active_site_id__in=active_ids)
|
||||
|
||||
|
||||
def filter_city_sites_queryset(qs: QuerySet, viewer: User) -> QuerySet:
|
||||
def filter_active_sites_queryset(qs: QuerySet, viewer: User) -> QuerySet:
|
||||
owners = visible_owner_ids(viewer)
|
||||
if owners is None:
|
||||
return qs
|
||||
@@ -141,10 +141,12 @@ def filter_kandangs_queryset(qs: QuerySet, viewer: User) -> QuerySet:
|
||||
return qs
|
||||
if not owners:
|
||||
return qs.none()
|
||||
city_ids = visible_active_city_site_ids(viewer)
|
||||
if not city_ids:
|
||||
active_ids = visible_active_site_ids(viewer)
|
||||
if not active_ids:
|
||||
return qs.none()
|
||||
return qs.filter(site__user_id__in=owners, site__city_site_id__in=city_ids)
|
||||
return qs.filter(
|
||||
site__user_id__in=owners, site__active_site_id__in=active_ids
|
||||
)
|
||||
|
||||
|
||||
def filter_flocks_queryset(qs: QuerySet, viewer: User) -> QuerySet:
|
||||
@@ -153,12 +155,12 @@ def filter_flocks_queryset(qs: QuerySet, viewer: User) -> QuerySet:
|
||||
return qs
|
||||
if not owners:
|
||||
return qs.none()
|
||||
city_ids = visible_active_city_site_ids(viewer)
|
||||
if not city_ids:
|
||||
active_ids = visible_active_site_ids(viewer)
|
||||
if not active_ids:
|
||||
return qs.none()
|
||||
return qs.filter(
|
||||
kandang__site__user_id__in=owners,
|
||||
kandang__site__city_site_id__in=city_ids,
|
||||
kandang__site__active_site_id__in=active_ids,
|
||||
)
|
||||
|
||||
|
||||
@@ -168,10 +170,10 @@ def filter_cycles_queryset(qs: QuerySet, viewer: User) -> QuerySet:
|
||||
return qs
|
||||
if not owners:
|
||||
return qs.none()
|
||||
city_ids = visible_active_city_site_ids(viewer)
|
||||
if not city_ids:
|
||||
active_ids = visible_active_site_ids(viewer)
|
||||
if not active_ids:
|
||||
return qs.none()
|
||||
return qs.filter(
|
||||
kandang__site__user_id__in=owners,
|
||||
kandang__site__city_site_id__in=city_ids,
|
||||
kandang__site__active_site_id__in=active_ids,
|
||||
)
|
||||
Reference in new issue
Block a user