from datetime import datetime
import urlparse
-from pgweb.util.decorators import ssl_required
+from pgweb.util.decorators import ssl_required, nocache
from pgweb.util.contexts import NavContext
from pgweb.util.helpers import simple_form, add_xml_element
except:
return None
+@nocache
def mirrorselect(request, path):
try:
numericip = _get_numeric_ip(request)
newurl = "%s://%s/%s" % (scheme, host, path)
return HttpResponseRedirect(newurl)
+@nocache
def mirror_redirect(request, mirrorid, protocol, path):
try:
mirror = Mirror.objects.get(pk=mirrorid)
path,
)
+@nocache
def mirror_redirect_old(request):
# Version of redirect that takes parameters in the querystring. This is
# only used by the stackbuilder.
+import datetime
+
def ssl_required(fn):
def _require_ssl(request, *_args, **_kwargs):
return fn(request, *_args, **_kwargs)
return _require_ssl
+
+def nocache(fn):
+ def _nocache(request, *_args, **_kwargs):
+ resp = fn(request, *_args, **_kwargs)
+ resp['Cache-Control'] = 's-maxage: 0'
+ return resp
+ return _nocache
+
+def cache(days=0, hours=0, minutes=0, seconds=0):
+ "Set the server to cache object a specified time. td must be a timedelta object"
+ def _cache(fn):
+ def __cache(request, *_args, **_kwargs):
+ resp = fn(request, *_args, **_kwargs)
+ td = datetime.timedelta(hours=hours, minutes=minutes, seconds=seconds)
+ resp['Cache-Control'] = 's-maxage: %s' % (td.days*3600*24 + td.seconds)
+ return resp
+ return __cache
+ return _cache