Add a field to the activity stream model that more closely identifies the api object type for aid in api querying

This commit is contained in:
Matthew Jones
2013-11-14 23:24:00 -05:00
parent 639b87d55a
commit 8448c5b4d5
4 changed files with 23 additions and 6 deletions

View File

@@ -16,8 +16,10 @@ class Migration(SchemaMigration):
('timestamp', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
('changes', self.gf('django.db.models.fields.TextField')(blank=True)),
('object1_id', self.gf('django.db.models.fields.PositiveIntegerField')(db_index=True)),
('object1', self.gf('django.db.models.fields.TextField')()),
('object1_type', self.gf('django.db.models.fields.TextField')()),
('object2_id', self.gf('django.db.models.fields.PositiveIntegerField')(null=True, db_index=True)),
('object2', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
('object2_type', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
('object_relationship_type', self.gf('django.db.models.fields.TextField')(blank=True)),
))
@@ -70,8 +72,10 @@ class Migration(SchemaMigration):
'Meta': {'object_name': 'ActivityStream'},
'changes': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'object1': ('django.db.models.fields.TextField', [], {}),
'object1_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
'object1_type': ('django.db.models.fields.TextField', [], {}),
'object2': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
'object2_id': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'db_index': 'True'}),
'object2_type': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
'object_relationship_type': ('django.db.models.fields.TextField', [], {'blank': 'True'}),

View File

@@ -28,9 +28,11 @@ class ActivityStream(models.Model):
changes = models.TextField(blank=True)
object1_id = models.PositiveIntegerField(db_index=True)
object1 = models.TextField()
object1_type = models.TextField()
object2_id = models.PositiveIntegerField(db_index=True, null=True)
object2 = models.TextField(null=True, blank=True)
object2_type = models.TextField(null=True, blank=True)
object_relationship_type = models.TextField(blank=True)

View File

@@ -12,7 +12,7 @@ from django.dispatch import receiver
# AWX
from awx.main.models import *
from awx.main.utils import model_instance_diff, model_to_dict
from awx.main.utils import model_instance_diff, model_to_dict, camelcase_to_underscore
__all__ = []
@@ -178,6 +178,7 @@ def activity_stream_create(sender, instance, created, **kwargs):
activity_entry = ActivityStream(
operation='create',
object1_id=instance.id,
object1=camelcase_to_underscore(instance.__class__.__name__),
object1_type=instance.__class__.__module__ + "." + instance.__class__.__name__,
changes=json.dumps(model_to_dict(instance)))
activity_entry.save()
@@ -193,6 +194,7 @@ def activity_stream_update(sender, instance, **kwargs):
activity_entry = ActivityStream(
operation='update',
object1_id=instance.id,
object1=camelcase_to_underscore(instance.__class__.__name__),
object1_type=instance.__class__.__module__ + "." + instance.__class__.__name__,
changes=json.dumps(changes))
activity_entry.save()
@@ -202,6 +204,7 @@ def activity_stream_delete(sender, instance, **kwargs):
activity_entry = ActivityStream(
operation='delete',
object1_id=instance.id,
object1=camelcase_to_underscore(instance.__class__.__name__),
object1_type=instance.__class__.__module__ + "." + instance.__class__.__name__)
activity_entry.save()
@@ -222,8 +225,10 @@ def activity_stream_associate(sender, instance, **kwargs):
activity_entry = ActivityStream(
operation=action,
object1_id=obj1_id,
object1=camelcase_to_underscore(obj1.__class__.__name__),
object1_type=obj1.__class__.__module__ + "." + obj1.__class__.__name__,
object2_id=obj2_id,
object2=camelcase_to_underscore(obj2.__name__),
object2_type=obj2.__module__ + "." + obj2.__name__,
object_relationship_type=obj_rel)
activity_entry.save()