Files
@ 72027870920f
Branch filter:
Location: website/www/conservancy/static/views.py - annotation
72027870920f
2.3 KiB
text/x-python
supporter: Reorganize form post-input notes.
This makes it easier to keep baseline alignment between labels and their
respective inputs. Declaring `margin-left: 51%;` for the post-input notes
is not exactly what we want, but it's much closer and less troublesome than
dealing with the vertical alignment of labels otherwise.
This makes it easier to keep baseline alignment between labels and their
respective inputs. Declaring `margin-left: 51%;` for the post-input notes
is not exactly what we want, but it's much closer and less troublesome than
dealing with the vertical alignment of labels otherwise.
93787dc82072 2bf594b86cb1 2bf594b86cb1 2bf594b86cb1 f8f37dd39c6b 2bf594b86cb1 3fe5f09d18cf 6b1b3b8f2ebb 39314c254e73 2bf594b86cb1 58e22337b06a 39314c254e73 2bf594b86cb1 2bf594b86cb1 2bf594b86cb1 2bf594b86cb1 cf5b073d44b0 2bf594b86cb1 2bf594b86cb1 58e22337b06a 2bf594b86cb1 2bf594b86cb1 58e22337b06a 2bf594b86cb1 2bf594b86cb1 58e22337b06a 2bf594b86cb1 2bf594b86cb1 58e22337b06a 2bf594b86cb1 ab2239009a1b ab2239009a1b ab2239009a1b ab2239009a1b ab2239009a1b ab2239009a1b ab2239009a1b 09654a5eac60 3705a2ba1dac 3705a2ba1dac 3705a2ba1dac 6b1b3b8f2ebb 6b1b3b8f2ebb 6b1b3b8f2ebb 6b1b3b8f2ebb 6b1b3b8f2ebb 6b1b3b8f2ebb 2bf594b86cb1 2bf594b86cb1 93787dc82072 93787dc82072 93787dc82072 93787dc82072 93787dc82072 93787dc82072 2bf594b86cb1 93787dc82072 93787dc82072 93787dc82072 b3f019265b24 93787dc82072 5c4cc1e2e114 93787dc82072 93787dc82072 93787dc82072 b3f019265b24 2bf594b86cb1 2bf594b86cb1 2bf594b86cb1 2bf594b86cb1 2bf594b86cb1 | import mimetypes
import os.path
from django.http import HttpResponse
from django.template import RequestContext, loader
from conservancy.apps.fundgoal.models import FundraisingGoal as FundraisingGoal
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)
template = loader.get_template(path)
context = RequestContext(request)
return HttpResponse(template.render(context), 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 fundgoal_lookup(fundraiser_sought):
try:
return FundraisingGoal.objects.get(fundraiser_code_name=fundraiser_sought)
except FundraisingGoal.DoesNotExist:
# we have no object! do something
return None
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':
content = open(fullpath)
else:
content_type = None # Let Django use its default
template = loader.get_template(path)
kwargs = kwargs.copy()
if kwargs.has_key('fundraiser_sought'):
kwargs['fundgoal'] = fundgoal_lookup(kwargs['fundraiser_sought'])
kwargs['sitefundgoal'] = fundgoal_lookup('supporterrun')
context = RequestContext(request, kwargs)
content = template.render(context)
return HttpResponse(content, content_type)
def debug(request):
path = request.get_full_path()
path = path.lstrip('/')
return HttpResponse("Hello, static world: " + path)
|