27 lines
825 B
Python
27 lines
825 B
Python
from django.db.models import Q
|
|
|
|
from .models import GovernmentPlan
|
|
|
|
|
|
def has_limited_access(user):
|
|
if not user.is_authenticated:
|
|
return True
|
|
return not user.has_perm("froide_govplan.add_governmentplan")
|
|
|
|
|
|
def get_allowed_plans(request):
|
|
if not has_limited_access(request.user):
|
|
return GovernmentPlan.objects.all()
|
|
groups = request.user.groups.all()
|
|
return GovernmentPlan.objects.filter(group__in=groups).distinct()
|
|
|
|
|
|
def get_visible_plans(request):
|
|
if not has_limited_access(request.user):
|
|
return GovernmentPlan.objects.all()
|
|
if request.user.is_authenticated:
|
|
groups = request.user.groups.all()
|
|
return GovernmentPlan.objects.filter(
|
|
Q(public=True) | Q(group__in=groups)
|
|
).distinct()
|
|
return GovernmentPlan.objects.filter(public=True)
|