Skip to content
2 changes: 1 addition & 1 deletion dynamic_manipulation/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
VERSION = '0.1.0'
VERSION = '0.1.1'
8 changes: 3 additions & 5 deletions dynamic_manipulation/dynamic_actions.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@

from dynamic_rules.dynamic_actions import BaseDynamicAction

from dynamic_manipulation import models
from dynamic_manipulation.models import ManipulationLog

__all__ = ('BaseDynamicManipulation',)
__all__ = ('BaseDynamicManipulation', )


class BaseDynamicManipulation(BaseDynamicAction):

Expand Down Expand Up @@ -46,9 +46,7 @@ def do_manipulations(self, *args, **kwargs):
pass

def log_manipulation(self, side_effect_model=None, side_effect_uri=None):
data = dict(
rule=self.rule_model,
trigger_model=self.trigger_model)
data = dict(rule=self.rule_model, trigger_model=self.trigger_model)

if side_effect_uri:
data['side_effect_uri'] = side_effect_uri
Expand Down
123 changes: 93 additions & 30 deletions dynamic_manipulation/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -1,56 +1,119 @@
# encoding: utf-8
# flake8: noqa
import datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models


class Migration(SchemaMigration):

def forwards(self, orm):

# Adding model 'ManipulationLog'
db.create_table('dynamic_manipulation_manipulationlog', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('rule', self.gf('django.db.models.fields.related.ForeignKey')(related_name='manipulation_logs', to=orm['dynamic_rules.Rule'])),
('trigger_content_type', self.gf('django.db.models.fields.related.ForeignKey')(related_name='manipulation_triggers', to=orm['contenttypes.ContentType'])),
('trigger_model_id', self.gf('django.db.models.fields.PositiveIntegerField')(db_index=True)),
('side_effect_content_type', self.gf('django.db.models.fields.related.ForeignKey')(related_name='manipulation_side_effects', to=orm['contenttypes.ContentType'])),
('side_effect_model_id', self.gf('django.db.models.fields.PositiveIntegerField')(db_index=True)),
))
db.create_table(
'dynamic_manipulation_manipulationlog', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
(
'rule', self.gf('django.db.models.fields.related.ForeignKey')(
related_name='manipulation_logs', to=orm['dynamic_rules.Rule']
)
),
(
'trigger_content_type', self.gf('django.db.models.fields.related.ForeignKey')(
related_name='manipulation_triggers', to=orm['contenttypes.ContentType']
)
),
('trigger_model_id', self.gf('django.db.models.fields.PositiveIntegerField')(db_index=True)),
(
'side_effect_content_type', self.gf('django.db.models.fields.related.ForeignKey')(
related_name='manipulation_side_effects', to=orm['contenttypes.ContentType']
)
),
('side_effect_model_id', self.gf('django.db.models.fields.PositiveIntegerField')(db_index=True)),
)
)
db.send_create_signal('dynamic_manipulation', ['ManipulationLog'])


def backwards(self, orm):

# Deleting model 'ManipulationLog'
db.delete_table('dynamic_manipulation_manipulationlog')


models = {
'contenttypes.contenttype': {
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
'Meta': {
'ordering': "('name',)",
'unique_together': "(('app_label', 'model'),)",
'object_name': 'ContentType',
'db_table': "'django_content_type'"
},
'app_label': ('django.db.models.fields.CharField', [], {
'max_length': '100'
}),
'id': ('django.db.models.fields.AutoField', [], {
'primary_key': 'True'
}),
'model': ('django.db.models.fields.CharField', [], {
'max_length': '100'
}),
'name': ('django.db.models.fields.CharField', [], {
'max_length': '100'
})
},
'dynamic_manipulation.manipulationlog': {
'Meta': {'object_name': 'ManipulationLog'},
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'rule': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'manipulation_logs'", 'to': "orm['dynamic_rules.Rule']"}),
'side_effect_content_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'manipulation_side_effects'", 'to': "orm['contenttypes.ContentType']"}),
'side_effect_model_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
'trigger_content_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'manipulation_triggers'", 'to': "orm['contenttypes.ContentType']"}),
'trigger_model_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'})
'Meta': {
'object_name': 'ManipulationLog'
},
'id': ('django.db.models.fields.AutoField', [], {
'primary_key': 'True'
}),
'rule': (
'django.db.models.fields.related.ForeignKey', [], {
'related_name': "'manipulation_logs'",
'to': "orm['dynamic_rules.Rule']"
}
),
'side_effect_content_type': (
'django.db.models.fields.related.ForeignKey', [], {
'related_name': "'manipulation_side_effects'",
'to': "orm['contenttypes.ContentType']"
}
),
'side_effect_model_id': ('django.db.models.fields.PositiveIntegerField', [], {
'db_index': 'True'
}),
'trigger_content_type': (
'django.db.models.fields.related.ForeignKey', [], {
'related_name': "'manipulation_triggers'",
'to': "orm['contenttypes.ContentType']"
}
),
'trigger_model_id': ('django.db.models.fields.PositiveIntegerField', [], {
'db_index': 'True'
})
},
'dynamic_rules.rule': {
'Meta': {'object_name': 'Rule'},
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
'Meta': {
'object_name': 'Rule'
},
'content_type':
('django.db.models.fields.related.ForeignKey', [], {
'to': "orm['contenttypes.ContentType']"
}),
'dynamic_fields': ('django_fields.fields.PickleField', [], {}),
'group_object_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'key': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
'group_object_id': ('django.db.models.fields.PositiveIntegerField', [], {
'db_index': 'True'
}),
'id': ('django.db.models.fields.AutoField', [], {
'primary_key': 'True'
}),
'key': ('django.db.models.fields.CharField', [], {
'max_length': '50'
}),
'name': ('django.db.models.fields.CharField', [], {
'max_length': '100'
})
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*-
# flake8: noqa
import datetime
from south.db import db
from south.v2 import SchemaMigration
Expand All @@ -10,53 +11,122 @@ class Migration(SchemaMigration):

def forwards(self, orm):
# Adding field 'ManipulationLog.side_effect_uri'
db.add_column('dynamic_manipulation_manipulationlog', 'side_effect_uri',
self.gf('django.db.models.fields.URLField')(max_length=200, null=True, blank=True),
keep_default=False)

db.add_column(
'dynamic_manipulation_manipulationlog',
'side_effect_uri',
self.gf('django.db.models.fields.URLField')(max_length=200, null=True, blank=True),
keep_default=False
)

# Changing field 'ManipulationLog.side_effect_content_type'
db.alter_column('dynamic_manipulation_manipulationlog', 'side_effect_content_type_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['contenttypes.ContentType']))
db.alter_column(
'dynamic_manipulation_manipulationlog', 'side_effect_content_type_id',
self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['contenttypes.ContentType'])
)

# Changing field 'ManipulationLog.side_effect_model_id'
db.alter_column('dynamic_manipulation_manipulationlog', 'side_effect_model_id', self.gf('django.db.models.fields.PositiveIntegerField')(null=True))
db.alter_column(
'dynamic_manipulation_manipulationlog',
'side_effect_model_id',
self.gf('django.db.models.fields.PositiveIntegerField')(null=True)
)

def backwards(self, orm):
db.delete_column('dynamic_manipulation_manipulationlog', 'side_effect_uri')
for record in orm.ManipulationLog.objects.filter(side_effect_model_id=None):
record.delete()




models = {
'contenttypes.contenttype': {
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
'Meta': {
'ordering': "('name',)",
'unique_together': "(('app_label', 'model'),)",
'object_name': 'ContentType',
'db_table': "'django_content_type'"
},
'app_label': ('django.db.models.fields.CharField', [], {
'max_length': '100'
}),
'id': ('django.db.models.fields.AutoField', [], {
'primary_key': 'True'
}),
'model': ('django.db.models.fields.CharField', [], {
'max_length': '100'
}),
'name': ('django.db.models.fields.CharField', [], {
'max_length': '100'
})
},
'dynamic_manipulation.manipulationlog': {
'Meta': {'object_name': 'ManipulationLog'},
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'rule': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'manipulation_logs'", 'to': "orm['dynamic_rules.Rule']"}),
'side_effect_content_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'manipulation_side_effects'", 'null': 'True', 'to': "orm['contenttypes.ContentType']"}),
'side_effect_model_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
'side_effect_uri': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
'trigger_content_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'manipulation_triggers'", 'to': "orm['contenttypes.ContentType']"}),
'trigger_model_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'})
'Meta': {
'object_name': 'ManipulationLog'
},
'id': ('django.db.models.fields.AutoField', [], {
'primary_key': 'True'
}),
'rule': (
'django.db.models.fields.related.ForeignKey', [], {
'related_name': "'manipulation_logs'",
'to': "orm['dynamic_rules.Rule']"
}
),
'side_effect_content_type': (
'django.db.models.fields.related.ForeignKey', [], {
'blank': 'True',
'related_name': "'manipulation_side_effects'",
'null': 'True',
'to': "orm['contenttypes.ContentType']"
}
),
'side_effect_model_id':
('django.db.models.fields.PositiveIntegerField', [], {
'db_index': 'True',
'null': 'True',
'blank': 'True'
}),
'side_effect_uri':
('django.db.models.fields.URLField', [], {
'max_length': '200',
'null': 'True',
'blank': 'True'
}),
'trigger_content_type': (
'django.db.models.fields.related.ForeignKey', [], {
'related_name': "'manipulation_triggers'",
'to': "orm['contenttypes.ContentType']"
}
),
'trigger_model_id': ('django.db.models.fields.PositiveIntegerField', [], {
'db_index': 'True'
})
},
'dynamic_rules.rule': {
'Meta': {'object_name': 'Rule'},
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
'Meta': {
'object_name': 'Rule'
},
'content_type':
('django.db.models.fields.related.ForeignKey', [], {
'to': "orm['contenttypes.ContentType']"
}),
'dynamic_fields': ('django_fields.fields.PickleField', [], {}),
'group_object_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'key': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'secondary_object_id': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'db_index': 'True'})
'group_object_id': ('django.db.models.fields.PositiveIntegerField', [], {
'db_index': 'True'
}),
'id': ('django.db.models.fields.AutoField', [], {
'primary_key': 'True'
}),
'key': ('django.db.models.fields.CharField', [], {
'max_length': '50'
}),
'name': ('django.db.models.fields.CharField', [], {
'max_length': '100'
}),
'secondary_object_id':
('django.db.models.fields.PositiveIntegerField', [], {
'default': '0',
'db_index': 'True'
})
}
}

complete_apps = ['dynamic_manipulation']
complete_apps = ['dynamic_manipulation']
6 changes: 4 additions & 2 deletions dynamic_manipulation/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@ class ManipulationLog(models.Model):
trigger_model_id = models.PositiveIntegerField(db_index=True)
trigger_model = generic.GenericForeignKey(fk_field='trigger_model_id', ct_field='trigger_content_type')

side_effect_content_type = models.ForeignKey('contenttypes.ContentType', related_name="manipulation_side_effects", null=True, blank=True)
side_effect_content_type = models.ForeignKey(
'contenttypes.ContentType', related_name="manipulation_side_effects", null=True, blank=True
)
side_effect_model_id = models.PositiveIntegerField(db_index=True, null=True, blank=True)
side_effect_model = generic.GenericForeignKey(fk_field='side_effect_model_id', ct_field='side_effect_content_type')

Expand All @@ -22,4 +24,4 @@ class ManipulationLog(models.Model):

def clean(self):
if not self.side_effect_uri and not self.side_effect_model:
raise ValidationError("Side effect URI -or- Model is required.")
raise ValidationError("Side effect URI -or- Model is required.")
Loading
Loading