GetTogether/resume/api.py
2018-06-13 10:03:55 -04:00

29 lines
918 B
Python

from django.shortcuts import redirect, resolve_url
class ResumeFailure(Exception):
pass
def set_resume(request):
try:
resume_points = request._resume_points
except AttributeError:
if not hasattr(request, 'META'):
raise TypeError(
"add_resume_point() argument must be an HttpRequest object, not "
"'%s'." % request.__class__.__name__
)
raise ResumeFailure(
'You cannot add resume points without installing '
'resume.middleware.ResumeMiddleware'
)
else:
return resume_points.add(request.get_full_path())
def resume_or_redirect(request, to, permanent=False, *args, **kwargs):
if len(request._resume_points) > 0:
resume_from = request._resume_points.pop()
return redirect(resume_from)
else:
return redirect(to, permanent=permanent, *args, **kwargs)