44 lines
1.8 KiB
Python
44 lines
1.8 KiB
Python
import os
|
|
import time
|
|
from django.conf import settings
|
|
from .models import Tenant
|
|
from .permissions import (
|
|
can_view_donations, can_edit_voter, get_user_role,
|
|
can_view_volunteers, can_edit_volunteer, can_view_voters,
|
|
is_block_walker, STAFF_ROLES, can_access_call_queue
|
|
)
|
|
|
|
def project_context(request):
|
|
"""
|
|
Adds project-specific environment variables to the template context globally.
|
|
"""
|
|
context = {
|
|
"project_description": os.getenv("PROJECT_DESCRIPTION", ""),
|
|
"project_image_url": os.getenv("PROJECT_IMAGE_URL", ""),
|
|
# Used for cache-busting static assets
|
|
"deployment_timestamp": int(time.time()),
|
|
"GOOGLE_MAPS_API_KEY": getattr(settings, 'GOOGLE_MAPS_API_KEY', ''),
|
|
}
|
|
|
|
if request.user.is_authenticated:
|
|
context['is_block_walker'] = is_block_walker(request.user)
|
|
context['is_staff'] = request.user.is_superuser
|
|
context['can_access_call_queue'] = can_access_call_queue(request.user)
|
|
|
|
tenant_id = request.session.get('tenant_id')
|
|
if tenant_id:
|
|
tenant = Tenant.objects.filter(id=tenant_id).first()
|
|
if tenant:
|
|
context['can_view_donations'] = can_view_donations(request.user, tenant)
|
|
context['can_edit_voter'] = can_edit_voter(request.user, tenant)
|
|
context['can_view_voters'] = can_view_voters(request.user, tenant)
|
|
context['can_view_volunteers'] = can_view_volunteers(request.user, tenant)
|
|
context['can_edit_volunteer'] = can_edit_volunteer(request.user, tenant)
|
|
|
|
role = get_user_role(request.user, tenant)
|
|
context['user_role'] = role
|
|
if not context['is_staff']:
|
|
context['is_staff'] = role in STAFF_ROLES
|
|
|
|
return context
|