From f3d2b0b5bce875677e707bc6bd1344b69a9d708d Mon Sep 17 00:00:00 2001 From: Matthew Jones Date: Fri, 8 Nov 2013 10:21:30 -0500 Subject: [PATCH] Catch some errors that pop up during ActivityStream testing --- awx/main/middleware.py | 4 ++-- awx/main/models/__init__.py | 2 +- awx/main/registrar.py | 13 ++++++++++--- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/awx/main/middleware.py b/awx/main/middleware.py index 33a1e51f50..04aacc239d 100644 --- a/awx/main/middleware.py +++ b/awx/main/middleware.py @@ -1,10 +1,10 @@ from django.conf import settings from django.db.models.signals import pre_save from django.utils.functional import curry -from awx.main.models import ActivityStream +from awx.main.models.base import ActivityStream -class ActvitiyStreamMiddleware(object): +class ActivityStreamMiddleware(object): def process_request(self, request): if hasattr(request, 'user') and hasattr(request.user, 'is_authenticated') and request.user.is_authenticated(): diff --git a/awx/main/models/__init__.py b/awx/main/models/__init__.py index 05d38c027b..150741c440 100644 --- a/awx/main/models/__init__.py +++ b/awx/main/models/__init__.py @@ -44,4 +44,4 @@ activity_stream_registrar.connect(JobTemplate) activity_stream_registrar.connect(Job) activity_stream_registrar.connect(JobHostSummary) activity_stream_registrar.connect(JobEvent) -activity_stream_registrar.connect(Profile) +#activity_stream_registrar.connect(Profile) diff --git a/awx/main/registrar.py b/awx/main/registrar.py index f4a6b64484..863e707423 100644 --- a/awx/main/registrar.py +++ b/awx/main/registrar.py @@ -1,6 +1,10 @@ +import logging + from django.db.models.signals import pre_save, post_save, post_delete, m2m_changed from signals import activity_stream_create, activity_stream_update, activity_stream_delete, activity_stream_associate +logger = logging.getLogger('awx.main.registrar') + class ActivityStreamRegistrar(object): def __init__(self): @@ -15,9 +19,12 @@ class ActivityStreamRegistrar(object): post_delete.connect(activity_stream_delete, sender=model, dispatch_uid=str(self.__class__) + str(model) + "_delete") for m2mfield in model._meta.many_to_many: - m2m_attr = getattr(model, m2mfield.name) - m2m_changed.connect(activity_stream_associate, sender=m2m_attr.through, - dispatch_uid=str(self.__class__) + str(m2m_attr.through) + "_associate") + try: + m2m_attr = getattr(model, m2mfield.name) + m2m_changed.connect(activity_stream_associate, sender=m2m_attr.through, + dispatch_uid=str(self.__class__) + str(m2m_attr.through) + "_associate") + except AttributeError: + logger.warning("Failed to attach m2m activity stream tracker on class %s attribute %s" % (model, m2mfield.name)) def disconnect(self, model): if model in self.models: