Skip to content

Instantly share code, notes, and snippets.

@wilkes
Created November 26, 2008 18:38
Show Gist options
  • Save wilkes/29481 to your computer and use it in GitHub Desktop.
Save wilkes/29481 to your computer and use it in GitHub Desktop.
def _get_or_instantiate(request, objclass):
try:
key = _keyify(objclass)
return objclass._default_manager.get(pk=session.get(request, key))
except (ObjectDoesNotExist, KeyError):
return objclass()
# becomes:
def _get(request, objclass):
key = _keyify(objclass)
return objclass._default_manager.get(pk=session.get(request, key))
# all calles to _get_or_instantiate are changed to _get or objclass() as appropriate
def refer_caller_to_physician(request, physician_id, save_redirect='/call/summary/'):
"""
We are checking if not caller, but the decorator will make that never happen.
We can at least check for not id
"""
caller = _get_or_instantiate(request, Caller)
if not caller.id:
signals.referral_without_caller.send(sender=refer_caller_to_physician, request=request)
if physician_id:
p = Physician.objects.get(pk=physician_id)
p.refer(caller)
else:
if caller.referral:
caller.referral.delete()
# This will go in a method on caller when there's a disposition
# form on the summary page.
caller.disposition = request.GET.get('disposition', '')
caller.save()
return HttpResponseRedirect(save_redirect)
# becomes:
def refer_caller_to_physician_new_version(request, physician_id, save_redirect='/call/summary/'):
try:
caller = _get(request, Caller)
except (KeyError, ObjectDoesNotExist):
signals.referral_without_caller.send(sender=refer_caller_to_physician, request=request)
raise # last error, can't remember how to do it off the top of my head
if physician_id:
p = Physician.objects.get(pk=physician_id)
p.refer(caller)
else:
if caller.referral:
caller.referral.delete()
# This will go in a method on caller when there's a disposition
# form on the summary page.
caller.disposition = request.GET.get('disposition', '')
caller.save()
return HttpResponseRedirect(save_redirect)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment