From a8ec5c533ffd3ca4300a8bc8f5139aa47462f3ac Mon Sep 17 00:00:00 2001 From: Keegan McAllister Date: Fri, 28 Sep 2012 15:53:20 -0400 Subject: [PATCH] Move the code for new messages immediately available into views.py (imported from commit 4cfa0ead850b1a37a21ec7945b477e12681c5830) --- zephyr/models.py | 10 +--------- zephyr/views.py | 11 ++++++++++- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/zephyr/models.py b/zephyr/models.py index f427d2f894..daf4dd7d18 100644 --- a/zephyr/models.py +++ b/zephyr/models.py @@ -85,16 +85,8 @@ class UserProfile(models.Model): callback_table[self.user.id] = [] - def add_callback(self, cb, last_received=None): + def add_callback(self, cb): global callback_table - - if last_received: - new_zephyrs = (Zephyr.objects.filter(usermessage__user_profile = self, - id__gt = last_received) - .order_by('id')[:400]) - if new_zephyrs: - return cb(new_zephyrs) - callback_table.setdefault(self.user.id, []).append(cb) def __repr__(self): diff --git a/zephyr/views.py b/zephyr/views.py index 2b39b95946..06286a1d74 100644 --- a/zephyr/views.py +++ b/zephyr/views.py @@ -148,6 +148,15 @@ def format_updates_response(messages, mit_sync_bot=False, apply_markdown=False): def get_updates_backend(request, handler, last_received=None, **kwargs): user_profile = UserProfile.objects.get(user=request.user) + + if last_received: + new_messages = (Zephyr.objects.filter(usermessage__user_profile = user_profile, + id__gt = last_received) + .order_by('id')[:400]) + if new_messages: + handler.finish(format_updates_response(new_messages, **kwargs)) + return + def on_receive(zephyrs): if handler.request.connection.stream.closed(): return @@ -156,7 +165,7 @@ def get_updates_backend(request, handler, last_received=None, **kwargs): except socket.error: pass - user_profile.add_callback(handler.async_callback(on_receive), last_received) + user_profile.add_callback(handler.async_callback(on_receive)) @login_required @asynchronous