# HG changeset patch # User Peter Sanchez # Date 1318020278 25200 # Fri Oct 07 13:44:38 2011 -0700 # Node ID e12e119ce5af5079c6cfa173afd932850403dc69 # Parent be251264059bd0c01bfaa615d387b8887487cf89 Added signals for stored and processed callbacks diff --git a/callback/callback.py b/callback/callback.py --- a/callback/callback.py +++ b/callback/callback.py @@ -1,6 +1,7 @@ from django.db import models from models import CallbackMap from base import CallbackException, CallbackBase +from signals import stored_callback, processed_callback REQUIRED_METHODS = ('process',) @@ -46,7 +47,13 @@ model_instance.save() cls = self.get_callback_class(model_instance) - return CallbackMap.objects.store_callback(model_instance) + callback_instance = CallbackMap.objects.store_callback(model_instance) + stored_callback.send( + sender=self, + callback_instance=callback_instance, + model_instance=model_instance, + ) + return callback_instance def process_callback(self, callback_instance): model = callback_instance.content_object @@ -54,6 +61,11 @@ try: cls.process(model) callback_instance.mark_complete() + processed_callback.send( + sender=self, + callback_instance=callback_instance, + model_instance=model, + ) except Exception, e: callback_instance.mark_error(str(e)) raise CallbackException(str(e)) diff --git a/callback/signals.py b/callback/signals.py new file mode 100644 --- /dev/null +++ b/callback/signals.py @@ -0,0 +1,10 @@ +from django import dispatch + + +stored_callback = dispatch.Signal( + providing_args=['callback_instance', 'model_instance'], +) + +processed_callback = dispatch.Signal( + providing_args=['callback_instance', 'model_instance'], +)