37769-vm/core/context_processors.py
2026-05-30 08:01:02 +00:00

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