29 lines
918 B
Python
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)
|