Files
@ 70b8aa07aee4
Branch filter:
Location: website/conservancy/static/views.py - annotation
70b8aa07aee4
1.8 KiB
text/x-python
Simplify settings and move some standard settings into settings.py
These were previously in djangocommonsettings.py, but don't ever vary between
development and production environments.
These were previously in djangocommonsettings.py, but don't ever vary between
development and production environments.
93787dc82072 2bf594b86cb1 47a30a750ad1 2bf594b86cb1 a00195c8f6d0 a00195c8f6d0 15ce31eedbb3 2bf594b86cb1 3fe5f09d18cf 6b1b3b8f2ebb 39314c254e73 2bf594b86cb1 58e22337b06a 39314c254e73 2bf594b86cb1 a00195c8f6d0 a00195c8f6d0 a00195c8f6d0 2bf594b86cb1 2bf594b86cb1 58e22337b06a 2bf594b86cb1 2bf594b86cb1 58e22337b06a 2bf594b86cb1 2bf594b86cb1 58e22337b06a 2bf594b86cb1 2bf594b86cb1 58e22337b06a 2bf594b86cb1 09654a5eac60 9e39d7eadced 9e39d7eadced 9e39d7eadced 69725698aeae 6b1ed75d7ac9 6b1ed75d7ac9 6b1ed75d7ac9 6b1ed75d7ac9 6b1ed75d7ac9 6b1ed75d7ac9 2bf594b86cb1 93787dc82072 93787dc82072 a00195c8f6d0 93787dc82072 a00195c8f6d0 a00195c8f6d0 a00195c8f6d0 a00195c8f6d0 a00195c8f6d0 a00195c8f6d0 b3f019265b24 2bf594b86cb1 2bf594b86cb1 2bf594b86cb1 2bf594b86cb1 | import mimetypes
import os.path
from django.http import HttpResponse
from django.template.response import TemplateResponse
from ..local_context_processors import fundgoal_lookup
STATIC_ROOT = os.path.abspath(os.path.dirname(__file__))
FILESYSTEM_ENCODING = 'utf-8'
def handler(request, errorcode):
path = os.path.join('error', str(errorcode), 'index.html')
fullpath = os.path.join(STATIC_ROOT, path)
if not os.path.exists(fullpath):
return HttpResponse("Internal error: " + path, status=int(errorcode))
else:
return TemplateResponse(request, path, status=int(errorcode))
def handler401(request):
return handler(request, 401)
def handler403(request):
return handler(request, 403)
def handler404(request):
return handler(request, 404)
def handler500(request):
return handler(request, 500)
def index(request, *args, **kwargs):
path = request.path.lstrip('/')
if path.endswith('/'):
path += 'index.html'
fullpath = os.path.join(STATIC_ROOT, path)
try:
# Junk URLs in production (Python 3.5) are causing UnicodeEncodeErrors
# here. Can't reproduce in development in Python 3.9 - only Python 2.7.
if not os.path.exists(fullpath):
return handler404(request)
except UnicodeEncodeError:
return handler404(request)
content_type, _ = mimetypes.guess_type(path)
if content_type != 'text/html':
return HttpResponse(open(fullpath, 'rb'), content_type)
else:
context = kwargs.copy()
try:
context['fundgoal'] = fundgoal_lookup(kwargs['fundraiser_sought'])
except KeyError:
pass
return TemplateResponse(request, path, context)
def debug(request):
path = request.get_full_path()
path = path.lstrip('/')
return HttpResponse("Hello, static world: " + path)
|