Files
@ 26ff31bb7878
Branch filter:
Location: website/www/conservancy/static/views.py - annotation
26ff31bb7878
1.8 KiB
text/x-python
progress bar: Drop JS, make mobile friendly, match design to new site.
The existing jQuery UI-based fundraising progress bar used a float layout,
making it hard to adapt for mobile use. Given that there is not interactivity,
I've dropped all the JS and switched to a flexbox layout. This works well
because the bar will stretch to fit the text rather than always maintaining its scale.
The existing jQuery UI-based fundraising progress bar used a float layout,
making it hard to adapt for mobile use. Given that there is not interactivity,
I've dropped all the JS and switched to a flexbox layout. This works well
because the bar will stretch to fit the text rather than always maintaining its scale.
93787dc82072 2bf594b86cb1 2bf594b86cb1 a00195c8f6d0 a00195c8f6d0 a00195c8f6d0 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 3705a2ba1dac 3705a2ba1dac 3705a2ba1dac 6b1b3b8f2ebb 6b1b3b8f2ebb 6b1b3b8f2ebb 6b1b3b8f2ebb 6b1b3b8f2ebb 6b1b3b8f2ebb 2bf594b86cb1 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 conservancy.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(u'/')
if path.endswith(u'/'):
path += u'index.html'
try:
path_bytes = path.encode(FILESYSTEM_ENCODING)
except UnicodeEncodeError:
# If the path can't be expressed on the filesystem, it must not exist.
return handler404(request)
fullpath = os.path.join(STATIC_ROOT, path_bytes)
if not os.path.exists(fullpath):
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)
|