Fix an issue with the Activity Stream where we weren't performing the right type conversion to track object types

This commit is contained in:
Matthew Jones 2013-11-08 11:08:11 -05:00
parent f3d2b0b5bc
commit 5986a48036
4 changed files with 11 additions and 9 deletions

View File

@ -1,4 +1,5 @@
from django.conf import settings
from django.contrib.auth.models import User
from django.db.models.signals import pre_save
from django.utils.functional import curry
from awx.main.models.base import ActivityStream
@ -20,5 +21,5 @@ class ActivityStreamMiddleware(object):
return response
def set_actor(self, user, sender, instance, **kwargs):
if sender == ActivityStream and isinstance(user, settings.AUTH_USER_MODEL) and instance.user is None:
if sender == ActivityStream and isinstance(user, User) and instance.user is None:
instance.user = user

View File

@ -22,7 +22,7 @@ from taggit.managers import TaggableManager
# Django-Celery
from djcelery.models import TaskMeta
__all__ = ['VarsDictProperty', 'PrimordialModel', 'CommonModel',
__all__ = ['VarsDictProperty', 'PrimordialModel', 'CommonModel', 'ActivityStream',
'CommonModelNameNotUnique', 'CommonTask', 'PERM_INVENTORY_ADMIN',
'PERM_INVENTORY_READ', 'PERM_INVENTORY_WRITE',
'PERM_INVENTORY_DEPLOY', 'PERM_INVENTORY_CHECK', 'JOB_TYPE_CHOICES',

View File

@ -24,7 +24,8 @@ class ActivityStreamRegistrar(object):
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))
pass
#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:

View File

@ -177,21 +177,21 @@ def activity_stream_create(sender, instance, created, **kwargs):
activity_entry = ActivityStream(
operation='create',
object1_id=instance.id,
object1_type=instance.__class__)
object1_type=str(instance.__class__))
activity_entry.save()
def activity_stream_update(sender, instance, **kwargs):
try:
old = sender.objects.get(id=instance.id)
except sender.DoesNotExist:
pass
return
new = instance
changes = model_instance_diff(old, new)
activity_entry = ActivityStream(
operation='update',
object1_id=instance.id,
object1_type=instance.__class__,
object1_type=str(instance.__class__),
changes=json.dumps(changes))
activity_entry.save()
@ -200,7 +200,7 @@ def activity_stream_delete(sender, instance, **kwargs):
activity_entry = ActivityStream(
operation='delete',
object1_id=instance.id,
object1_type=instance.__class__)
object1_type=str(instance.__class__))
activity_entry.save()
def activity_stream_associate(sender, instance, **kwargs):
@ -220,8 +220,8 @@ def activity_stream_associate(sender, instance, **kwargs):
activity_entry = ActivityStream(
operation=action,
object1_id=obj1_id,
object1_type=obj1.__class__,
object1_type=str(obj1.__class__),
object2_id=obj2_id,
object2_type=obj2.__class__,
object2_type=str(obj2.__class__),
object_relationship_type=obj_rel)
activity_entry.save()