class Migration(SchemaMigration):
def forwards(self, orm):
- # Adding model 'Collection'
- db.create_table('timeside_collections', (
+ # Adding model 'Selection'
+ db.create_table('timeside_selections', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('date_added', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
('date_modified', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, null=True, blank=True)),
- ('uuid', self.gf('django.db.models.fields.CharField')(max_length=512, blank=True)),
+ ('uuid', self.gf('django.db.models.fields.CharField')(unique=True, max_length=512, blank=True)),
('title', self.gf('django.db.models.fields.CharField')(max_length=512, blank=True)),
('description', self.gf('django.db.models.fields.TextField')(blank=True)),
+ ('author', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='selections', null=True, on_delete=models.SET_NULL, to=orm['auth.User'])),
))
- db.send_create_signal('timeside', ['Collection'])
+ db.send_create_signal('timeside', ['Selection'])
- # Adding M2M table for field items on 'Collection'
- m2m_table_name = db.shorten_name('timeside_collections_items')
+ # Adding M2M table for field items on 'Selection'
+ m2m_table_name = db.shorten_name('timeside_selections_items')
db.create_table(m2m_table_name, (
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
- ('collection', models.ForeignKey(orm['timeside.collection'], null=False)),
+ ('selection', models.ForeignKey(orm['timeside.selection'], null=False)),
('item', models.ForeignKey(orm['timeside.item'], null=False))
))
- db.create_unique(m2m_table_name, ['collection_id', 'item_id'])
+ db.create_unique(m2m_table_name, ['selection_id', 'item_id'])
+
+ # Adding M2M table for field selections on 'Selection'
+ m2m_table_name = db.shorten_name('timeside_selections_selections')
+ db.create_table(m2m_table_name, (
+ ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
+ ('from_selection', models.ForeignKey(orm['timeside.selection'], null=False)),
+ ('to_selection', models.ForeignKey(orm['timeside.selection'], null=False))
+ ))
+ db.create_unique(m2m_table_name, ['from_selection_id', 'to_selection_id'])
# Adding model 'Item'
db.create_table('timeside_items', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('date_added', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
('date_modified', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, null=True, blank=True)),
- ('uuid', self.gf('django.db.models.fields.CharField')(max_length=512, blank=True)),
+ ('uuid', self.gf('django.db.models.fields.CharField')(unique=True, max_length=512, blank=True)),
('title', self.gf('django.db.models.fields.CharField')(max_length=512, blank=True)),
('description', self.gf('django.db.models.fields.TextField')(blank=True)),
('file', self.gf('django.db.models.fields.files.FileField')(max_length=1024, blank=True)),
('url', self.gf('django.db.models.fields.URLField')(max_length=1024, blank=True)),
- ('sha1', self.gf('django.db.models.fields.CharField')(unique=True, max_length=512, blank=True)),
+ ('sha1', self.gf('django.db.models.fields.CharField')(max_length=512, blank=True)),
('mime_type', self.gf('django.db.models.fields.CharField')(max_length=256, blank=True)),
('hdf5', self.gf('django.db.models.fields.files.FileField')(max_length=1024, blank=True)),
('lock', self.gf('django.db.models.fields.BooleanField')(default=False)),
+ ('author', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='items', null=True, on_delete=models.SET_NULL, to=orm['auth.User'])),
))
db.send_create_signal('timeside', ['Item'])
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('date_added', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
('date_modified', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, null=True, blank=True)),
- ('uuid', self.gf('django.db.models.fields.CharField')(max_length=512, blank=True)),
+ ('uuid', self.gf('django.db.models.fields.CharField')(unique=True, max_length=512, blank=True)),
('title', self.gf('django.db.models.fields.CharField')(max_length=512, blank=True)),
('description', self.gf('django.db.models.fields.TextField')(blank=True)),
('author', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='experiences', null=True, on_delete=models.SET_NULL, to=orm['auth.User'])),
+ ('is_preset', self.gf('django.db.models.fields.BooleanField')(default=False)),
))
db.send_create_signal('timeside', ['Experience'])
))
db.create_unique(m2m_table_name, ['experience_id', 'processor_id'])
+ # Adding M2M table for field experiences on 'Experience'
+ m2m_table_name = db.shorten_name('timeside_experiences_experiences')
+ db.create_table(m2m_table_name, (
+ ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
+ ('from_experience', models.ForeignKey(orm['timeside.experience'], null=False)),
+ ('to_experience', models.ForeignKey(orm['timeside.experience'], null=False))
+ ))
+ db.create_unique(m2m_table_name, ['from_experience_id', 'to_experience_id'])
+
# Adding model 'Processor'
db.create_table('timeside_processors', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
- ('date_added', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
- ('date_modified', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, null=True, blank=True)),
- ('uuid', self.gf('django.db.models.fields.CharField')(max_length=512, blank=True)),
('pid', self.gf('django.db.models.fields.CharField')(max_length=256)),
('type', self.gf('django.db.models.fields.CharField')(default='none', max_length=64)),
- ('parameters', self.gf('jsonfield.fields.JSONField')(null=True, blank=True)),
('version', self.gf('django.db.models.fields.CharField')(max_length=64, blank=True)),
))
db.send_create_signal('timeside', ['Processor'])
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('date_added', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
('date_modified', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, null=True, blank=True)),
- ('uuid', self.gf('django.db.models.fields.CharField')(max_length=512, blank=True)),
+ ('uuid', self.gf('django.db.models.fields.CharField')(unique=True, max_length=512, blank=True)),
('item', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='results', null=True, on_delete=models.SET_NULL, to=orm['timeside.Item'])),
('processor', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='results', null=True, on_delete=models.SET_NULL, to=orm['timeside.Processor'])),
- ('output', self.gf('django.db.models.fields.files.FileField')(max_length=1024)),
- ('json', self.gf('jsonfield.fields.JSONField')(blank=True)),
- ('hdf5', self.gf('django.db.models.fields.files.FileField')(max_length=1024)),
- ('output_mime_type', self.gf('django.db.models.fields.CharField')(max_length=256, null=True)),
+ ('hdf5', self.gf('django.db.models.fields.files.FileField')(max_length=1024, blank=True)),
+ ('output', self.gf('django.db.models.fields.files.FileField')(max_length=1024, blank=True)),
+ ('output_mime_type', self.gf('django.db.models.fields.CharField')(max_length=256, blank=True)),
+ ('status', self.gf('django.db.models.fields.IntegerField')(default=1)),
))
db.send_create_signal('timeside', ['Result'])
+ # Adding model 'Parameters'
+ db.create_table('timeside_parameters', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('processor', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='parameters', null=True, to=orm['timeside.Experience'])),
+ ('parameters', self.gf('django.db.models.fields.TextField')(blank=True)),
+ ('is_preset', self.gf('django.db.models.fields.BooleanField')(default=False)),
+ ))
+ db.send_create_signal('timeside', ['Parameters'])
+
# Adding model 'Task'
db.create_table('timeside_tasks', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('experience', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='task', null=True, to=orm['timeside.Experience'])),
+ ('selection', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='task', null=True, to=orm['timeside.Selection'])),
('status', self.gf('django.db.models.fields.IntegerField')(default=1)),
+ ('author', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='tasks', null=True, on_delete=models.SET_NULL, to=orm['auth.User'])),
))
db.send_create_signal('timeside', ['Task'])
- # Adding M2M table for field items on 'Task'
- m2m_table_name = db.shorten_name('timeside_tasks_items')
- db.create_table(m2m_table_name, (
- ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
- ('task', models.ForeignKey(orm['timeside.task'], null=False)),
- ('item', models.ForeignKey(orm['timeside.item'], null=False))
- ))
- db.create_unique(m2m_table_name, ['task_id', 'item_id'])
-
def backwards(self, orm):
- # Deleting model 'Collection'
- db.delete_table('timeside_collections')
+ # Deleting model 'Selection'
+ db.delete_table('timeside_selections')
+
+ # Removing M2M table for field items on 'Selection'
+ db.delete_table(db.shorten_name('timeside_selections_items'))
- # Removing M2M table for field items on 'Collection'
- db.delete_table(db.shorten_name('timeside_collections_items'))
+ # Removing M2M table for field selections on 'Selection'
+ db.delete_table(db.shorten_name('timeside_selections_selections'))
# Deleting model 'Item'
db.delete_table('timeside_items')
# Removing M2M table for field processors on 'Experience'
db.delete_table(db.shorten_name('timeside_experiences_processors'))
+ # Removing M2M table for field experiences on 'Experience'
+ db.delete_table(db.shorten_name('timeside_experiences_experiences'))
+
# Deleting model 'Processor'
db.delete_table('timeside_processors')
# Deleting model 'Result'
db.delete_table('timeside_results')
+ # Deleting model 'Parameters'
+ db.delete_table('timeside_parameters')
+
# Deleting model 'Task'
db.delete_table('timeside_tasks')
- # Removing M2M table for field items on 'Task'
- db.delete_table(db.shorten_name('timeside_tasks_items'))
-
models = {
'auth.group': {
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
},
- 'timeside.collection': {
- 'Meta': {'ordering': "['title']", 'object_name': 'Collection', 'db_table': "'timeside_collections'"},
- 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
- 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
- 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'items': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'collections'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['timeside.Item']"}),
- 'title': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
- 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
- },
'timeside.experience': {
'Meta': {'object_name': 'Experience', 'db_table': "'timeside_experiences'"},
'author': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'experiences'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'experiences': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'other_experiences'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['timeside.Experience']"}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_preset': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'processors': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'experiences'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['timeside.Processor']"}),
'title': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
- 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
+ 'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512', 'blank': 'True'})
},
'timeside.item': {
'Meta': {'ordering': "['title']", 'object_name': 'Item', 'db_table': "'timeside_items'"},
+ 'author': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'items'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'lock': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
- 'sha1': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512', 'blank': 'True'}),
+ 'sha1': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
'title': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
'url': ('django.db.models.fields.URLField', [], {'max_length': '1024', 'blank': 'True'}),
- 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
+ 'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512', 'blank': 'True'})
+ },
+ 'timeside.parameters': {
+ 'Meta': {'object_name': 'Parameters'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_preset': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'parameters': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'processor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parameters'", 'null': 'True', 'to': "orm['timeside.Experience']"})
},
'timeside.processor': {
'Meta': {'object_name': 'Processor', 'db_table': "'timeside_processors'"},
- 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
- 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'parameters': ('jsonfield.fields.JSONField', [], {'null': 'True', 'blank': 'True'}),
'pid': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
'type': ('django.db.models.fields.CharField', [], {'default': "'none'", 'max_length': '64'}),
- 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
'version': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'})
},
'timeside.result': {
'Meta': {'object_name': 'Result', 'db_table': "'timeside_results'"},
'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
- 'hdf5': ('django.db.models.fields.files.FileField', [], {'max_length': '1024'}),
+ 'hdf5': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'item': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'results'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['timeside.Item']"}),
- 'json': ('jsonfield.fields.JSONField', [], {'blank': 'True'}),
- 'output': ('django.db.models.fields.files.FileField', [], {'max_length': '1024'}),
- 'output_mime_type': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True'}),
+ 'output': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}),
+ 'output_mime_type': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
'processor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'results'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['timeside.Processor']"}),
- 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
+ 'status': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512', 'blank': 'True'})
+ },
+ 'timeside.selection': {
+ 'Meta': {'object_name': 'Selection', 'db_table': "'timeside_selections'"},
+ 'author': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'selections'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'items': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'selections'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['timeside.Item']"}),
+ 'selections': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'other_selections'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['timeside.Selection']"}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
+ 'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512', 'blank': 'True'})
},
'timeside.task': {
'Meta': {'object_name': 'Task', 'db_table': "'timeside_tasks'"},
+ 'author': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'tasks'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
'experience': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'task'", 'null': 'True', 'to': "orm['timeside.Experience']"}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'items': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'task'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['timeside.Item']"}),
+ 'selection': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'task'", 'null': 'True', 'to': "orm['timeside.Selection']"}),
'status': ('django.db.models.fields.IntegerField', [], {'default': '1'})
}
}
+++ /dev/null
-# -*- coding: utf-8 -*-
-from south.utils import datetime_utils as datetime
-from south.db import db
-from south.v2 import SchemaMigration
-from django.db import models
-
-
-class Migration(SchemaMigration):
-
- def forwards(self, orm):
-
- # Changing field 'Result.output_mime_type'
- db.alter_column('timeside_results', 'output_mime_type', self.gf('django.db.models.fields.CharField')(default='', max_length=256))
-
- def backwards(self, orm):
-
- # Changing field 'Result.output_mime_type'
- db.alter_column('timeside_results', 'output_mime_type', self.gf('django.db.models.fields.CharField')(max_length=256, null=True))
-
- models = {
- 'auth.group': {
- 'Meta': {'object_name': 'Group'},
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
- 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
- },
- 'auth.permission': {
- 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
- 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
- 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
- },
- 'auth.user': {
- 'Meta': {'object_name': 'User'},
- 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
- 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
- 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
- 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
- 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
- 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
- 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
- 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
- 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
- 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
- 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
- },
- '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'})
- },
- 'timeside.collection': {
- 'Meta': {'ordering': "['title']", 'object_name': 'Collection', 'db_table': "'timeside_collections'"},
- 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
- 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
- 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'items': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'collections'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['timeside.Item']"}),
- 'title': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
- 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
- },
- 'timeside.experience': {
- 'Meta': {'object_name': 'Experience', 'db_table': "'timeside_experiences'"},
- 'author': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'experiences'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
- 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
- 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
- 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'processors': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'experiences'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['timeside.Processor']"}),
- 'title': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
- 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
- },
- 'timeside.item': {
- 'Meta': {'ordering': "['title']", 'object_name': 'Item', 'db_table': "'timeside_items'"},
- 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
- 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
- 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
- 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}),
- 'hdf5': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'lock': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
- 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
- 'sha1': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512', 'blank': 'True'}),
- 'title': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
- 'url': ('django.db.models.fields.URLField', [], {'max_length': '1024', 'blank': 'True'}),
- 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
- },
- 'timeside.processor': {
- 'Meta': {'object_name': 'Processor', 'db_table': "'timeside_processors'"},
- 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
- 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'parameters': ('jsonfield.fields.JSONField', [], {'null': 'True', 'blank': 'True'}),
- 'pid': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
- 'type': ('django.db.models.fields.CharField', [], {'default': "'none'", 'max_length': '64'}),
- 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
- 'version': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'})
- },
- 'timeside.result': {
- 'Meta': {'object_name': 'Result', 'db_table': "'timeside_results'"},
- 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
- 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
- 'hdf5': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'item': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'results'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['timeside.Item']"}),
- 'json': ('jsonfield.fields.JSONField', [], {'blank': 'True'}),
- 'output': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}),
- 'output_mime_type': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
- 'processor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'results'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['timeside.Processor']"}),
- 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'})
- },
- 'timeside.task': {
- 'Meta': {'object_name': 'Task', 'db_table': "'timeside_tasks'"},
- 'experience': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'task'", 'null': 'True', 'to': "orm['timeside.Experience']"}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'items': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'task'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['timeside.Item']"}),
- 'status': ('django.db.models.fields.IntegerField', [], {'default': '1'})
- }
- }
-
- complete_apps = ['timeside']
\ No newline at end of file
from django.utils.translation import ugettext_lazy as _
from django.contrib.auth.models import User
-from jsonfield import JSONField
-
-
app = 'timeside'
processors = timeside.core.processors(timeside.api.IProcessor)
def get_mime_type(path):
return mimetypes.guess_type(path)[0]
-
def get_processor(pid):
for proc in processors:
if proc.id == pid:
date_added = models.DateTimeField(_('date added'), auto_now_add=True)
date_modified = models.DateTimeField(_('date modified'), auto_now=True, null=True)
- uuid = models.CharField(_('uuid'), blank=True, max_length=512, )
+ uuid = models.CharField(_('uuid'), unique=True, blank=True, max_length=512, editable=False)
class Meta(MetaCore):
abstract = True
abstract = True
-class Collection(DocBaseResource):
+class Selection(DocBaseResource):
- items = models.ManyToManyField('Item', related_name="collections", verbose_name=_('items'), blank=True, null=True)
+ items = models.ManyToManyField('Item', related_name="selections", verbose_name=_('items'), blank=True, null=True)
+ author = models.ForeignKey(User, related_name="selections", verbose_name=_('author'), blank=True, null=True, on_delete=models.SET_NULL)
+ selections = models.ManyToManyField('Selection', related_name="other_selections", verbose_name=_('other selections'), blank=True, null=True)
class Meta(MetaCore):
- db_table = app + '_collections'
- ordering = ['title']
- verbose_name = _('collection')
+ db_table = app + '_selections'
+ verbose_name = _('selection')
class Item(DocBaseResource):
file = models.FileField(_('file'), upload_to='items/%Y/%m/%d', blank=True, max_length=1024)
url = models.URLField(_('URL'), blank=True, max_length=1024)
- sha1 = models.CharField(_('sha1'), unique=True, blank=True, max_length=512)
+ sha1 = models.CharField(_('sha1'), blank=True, max_length=512)
mime_type = models.CharField(_('mime type'), blank=True, max_length=256)
hdf5 = models.FileField(_('HDF5 result file'), upload_to='items/%Y/%m/%d', blank=True, max_length=1024)
lock = models.BooleanField(default=False)
+ author = models.ForeignKey(User, related_name="items", verbose_name=_('author'), blank=True, null=True, on_delete=models.SET_NULL)
class Meta(MetaCore):
db_table = app + '_items'
if not self.mime_type:
self.mime_type = get_mime_type(self.file.path)
if not self.sha1:
- self.sha1 = sha1sum_file(self.file)
+ self.sha1 = sha1sum_file(self.file.path)
super(Item, self).save(**kwargs)
def results(self):
processors = models.ManyToManyField('Processor', related_name="experiences", verbose_name=_('processors'), blank=True, null=True)
author = models.ForeignKey(User, related_name="experiences", verbose_name=_('author'), blank=True, null=True, on_delete=models.SET_NULL)
-
+ experiences = models.ManyToManyField('Experience', related_name="other_experiences", verbose_name=_('other experiences'), blank=True, null=True)
+ is_preset = models.BooleanField(default=False)
+
class Meta(MetaCore):
db_table = app + '_experiences'
verbose_name = _('Experience')
-class Processor(BaseResource):
+class Processor(models.Model):
pid = models.CharField(_('pid'), choices=PROCESSOR_PIDS, max_length=256)
type = models.CharField(_('type'), choices=PROCESSOR_TYPES, default='none', max_length=64)
- parameters = JSONField(_('parameters'), blank=True, null=True)
version = models.CharField(_('version'), max_length=64, blank=True)
class Meta(MetaCore):
item = models.ForeignKey('Item', related_name="results", verbose_name=_('item'), blank=True, null=True, on_delete=models.SET_NULL)
processor = models.ForeignKey('Processor', related_name="results", verbose_name=_('processor'), blank=True, null=True, on_delete=models.SET_NULL)
- json = JSONField(_('JSON result'), blank=True)
hdf5 = models.FileField(_('HDF5 result file'), upload_to='results/%Y/%m/%d', blank=True, max_length=1024)
output = models.FileField(_('Output file'), upload_to='results/%Y/%m/%d', blank=True, max_length=1024)
output_mime_type = models.CharField(_('Output mime type'), blank=True, max_length=256)
-
+ status = models.IntegerField(_('status'), choices=STATUS, default=1)
+
class Meta(MetaCore):
db_table = app + '_results'
verbose_name = _('Result')
verbose_name_plural = _('Results')
+ def status_setter(self, status):
+ self.status = status
+ self.save()
+
def __unicode__(self):
return '_'.join([self.item.title, unicode(self.processor)])
super(Result, self).save(**kwargs)
+class Parameters(models.Model):
+
+ processor = models.ForeignKey('Experience', related_name="parameters", verbose_name=_('processor'), blank=True, null=True)
+ parameters = models.TextField(_('Parameters'), blank=True)
+ is_preset = models.BooleanField(default=False)
+
+ class Meta:
+ db_table = app + '_parameters'
+ verbose_name = _('Parameters')
+ verbose_name_plural = _('Parameters')
+
+ def __unicode__(self):
+ pass
+
+
class Task(models.Model):
experience = models.ForeignKey('Experience', related_name="task", verbose_name=_('experience'), blank=True, null=True)
- items = models.ManyToManyField('Item', related_name="task", verbose_name=_('items'), blank=True, null=True)
+ selection = models.ForeignKey('Selection', related_name="task", verbose_name=_('selection'), blank=True, null=True)
status = models.IntegerField(_('status'), choices=STATUS, default=1)
-
+ author = models.ForeignKey(User, related_name="tasks", verbose_name=_('author'), blank=True, null=True, on_delete=models.SET_NULL)
+
class Meta(MetaCore):
db_table = app + '_tasks'
verbose_name = _('Task')
def run(self):
self.status_setter(2)
- for item in self.items:
+ for item in self.selection.items:
pipe = timeside.decoder.FileDecoder(item.file)
proc_dict = {}
for processor in self.experience.processors.all():
for processor in proc_dict.keys():
proc = proc_dict[processor]
- results = Result.objects.filter(processor=processor, uuid=proc.UUID)
- if not results:
- result = Result(processor=processor, uuid=proc.UUID, item=item)
- else:
- result = results[0]
+ result = Result.objects.get_or_create(processor=processor, uuid=proc.UUID, item=item)
result.hdf5 = path + item.uuid + '_' + proc.UUID + '.hdf5'
proc.results.to_hdf5(result.hdf5)
result.save()