]> git.parisson.com Git - timeside.git/commitdiff
Rename Parameters to Preset, add preset to Experience
authorGuillaume Pellerin <yomguy@parisson.com>
Fri, 25 Apr 2014 18:31:32 +0000 (20:31 +0200)
committerGuillaume Pellerin <yomguy@parisson.com>
Fri, 25 Apr 2014 18:31:32 +0000 (20:31 +0200)
tests/server/diagram/timeside.dot
tests/server/diagram/timeside.pdf
timeside/admin.py
timeside/migrations/0006_auto__del_parameters__add_preset__del_field_result_parameters__add_fie.py [new file with mode: 0644]
timeside/models.py
timeside/serializers.py
timeside/urls.py
timeside/views.py

index 5ec8a86b060effca6b8046dcf2267c2351ca43e8..98bda6fb7b91036686c7b5ef1ef849d176ac2c53 100644 (file)
@@ -349,19 +349,19 @@ digraph model_graph {
     </TD></TR>
   
     <TR><TD ALIGN="LEFT" BORDER="0">
-    <FONT COLOR="#7B7B7B" FACE="Helvetica ">hdf5</FONT>
+    <FONT COLOR="#7B7B7B" FACE="Helvetica ">file</FONT>
     </TD><TD ALIGN="LEFT">
     <FONT COLOR="#7B7B7B" FACE="Helvetica ">FileField</FONT>
     </TD></TR>
   
     <TR><TD ALIGN="LEFT" BORDER="0">
-    <FONT COLOR="#7B7B7B" FACE="Helvetica ">output</FONT>
+    <FONT COLOR="#7B7B7B" FACE="Helvetica ">hdf5</FONT>
     </TD><TD ALIGN="LEFT">
     <FONT COLOR="#7B7B7B" FACE="Helvetica ">FileField</FONT>
     </TD></TR>
   
     <TR><TD ALIGN="LEFT" BORDER="0">
-    <FONT COLOR="#7B7B7B" FACE="Helvetica ">output_mime_type</FONT>
+    <FONT COLOR="#7B7B7B" FACE="Helvetica ">mime_type</FONT>
     </TD><TD ALIGN="LEFT">
     <FONT COLOR="#7B7B7B" FACE="Helvetica ">CharField</FONT>
     </TD></TR>
index 5c5ec6dc2fe7d69a7df9842344603fdcdf9cdd9b..69293f228f3eed570842e0e6ecb81fae08e4782c 100644 (file)
Binary files a/tests/server/diagram/timeside.pdf and b/tests/server/diagram/timeside.pdf differ
index a6f882b183c03303cd7b1ac85026cc1fc46e1af3..9ad18c16869a978914c930d4e2f3305c27e263f3 100644 (file)
@@ -6,7 +6,7 @@ admin.site.register(Selection)
 admin.site.register(Item)
 admin.site.register(Experience)
 admin.site.register(Processor)
-admin.site.register(Parameters)
+admin.site.register(Preset)
 admin.site.register(Result)
 admin.site.register(Task)
 
diff --git a/timeside/migrations/0006_auto__del_parameters__add_preset__del_field_result_parameters__add_fie.py b/timeside/migrations/0006_auto__del_parameters__add_preset__del_field_result_parameters__add_fie.py
new file mode 100644 (file)
index 0000000..5f9d3fe
--- /dev/null
@@ -0,0 +1,220 @@
+# -*- 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):
+        # Deleting model 'Parameters'
+        db.delete_table('timeside_parameters')
+
+        # Adding model 'Preset'
+        db.create_table('timeside_presets', (
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('processor', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='preset', null=True, to=orm['timeside.Processor'])),
+            ('parameters', self.gf('django.db.models.fields.TextField')(blank=True)),
+            ('is_public', self.gf('django.db.models.fields.BooleanField')(default=False)),
+        ))
+        db.send_create_signal('timeside', ['Preset'])
+
+        # Deleting field 'Result.parameters'
+        db.delete_column('timeside_results', 'parameters_id')
+
+        # Adding field 'Result.preset'
+        db.add_column('timeside_results', 'preset',
+                      self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='results', null=True, on_delete=models.SET_NULL, to=orm['timeside.Preset']),
+                      keep_default=False)
+
+
+        # Changing field 'Result.hdf5'
+        db.alter_column('timeside_results', 'hdf5', self.gf('django.db.models.fields.files.FileField')(default=0, max_length=1024))
+
+        # Changing field 'Result.file'
+        db.alter_column('timeside_results', 'file', self.gf('django.db.models.fields.files.FileField')(default=0, max_length=1024))
+        # Deleting field 'Experience.is_preset'
+        db.delete_column('timeside_experiences', 'is_preset')
+
+        # Adding field 'Experience.is_public'
+        db.add_column('timeside_experiences', 'is_public',
+                      self.gf('django.db.models.fields.BooleanField')(default=False),
+                      keep_default=False)
+
+        # Removing M2M table for field processors on 'Experience'
+        db.delete_table(db.shorten_name('timeside_experiences_processors'))
+
+        # Adding M2M table for field presets on 'Experience'
+        m2m_table_name = db.shorten_name('timeside_experiences_presets')
+        db.create_table(m2m_table_name, (
+            ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
+            ('experience', models.ForeignKey(orm['timeside.experience'], null=False)),
+            ('preset', models.ForeignKey(orm['timeside.preset'], null=False))
+        ))
+        db.create_unique(m2m_table_name, ['experience_id', 'preset_id'])
+
+
+    def backwards(self, orm):
+        # Adding model 'Parameters'
+        db.create_table('timeside_parameters', (
+            ('parameters', self.gf('django.db.models.fields.TextField')(blank=True)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('is_preset', self.gf('django.db.models.fields.BooleanField')(default=False)),
+            ('processor', self.gf('django.db.models.fields.related.ForeignKey')(related_name='parameters', null=True, to=orm['timeside.Processor'], blank=True)),
+        ))
+        db.send_create_signal('timeside', ['Parameters'])
+
+        # Deleting model 'Preset'
+        db.delete_table('timeside_presets')
+
+        # Adding field 'Result.parameters'
+        db.add_column('timeside_results', 'parameters',
+                      self.gf('django.db.models.fields.related.ForeignKey')(related_name='results', null=True, to=orm['timeside.Parameters'], on_delete=models.SET_NULL, blank=True),
+                      keep_default=False)
+
+        # Deleting field 'Result.preset'
+        db.delete_column('timeside_results', 'preset_id')
+
+
+        # Changing field 'Result.hdf5'
+        db.alter_column('timeside_results', 'hdf5', self.gf('django.db.models.fields.files.FileField')(max_length=1024, null=True))
+
+        # Changing field 'Result.file'
+        db.alter_column('timeside_results', 'file', self.gf('django.db.models.fields.files.FileField')(max_length=1024, null=True))
+        # Adding field 'Experience.is_preset'
+        db.add_column('timeside_experiences', 'is_preset',
+                      self.gf('django.db.models.fields.BooleanField')(default=False),
+                      keep_default=False)
+
+        # Deleting field 'Experience.is_public'
+        db.delete_column('timeside_experiences', 'is_public')
+
+        # Adding M2M table for field processors on 'Experience'
+        m2m_table_name = db.shorten_name('timeside_experiences_processors')
+        db.create_table(m2m_table_name, (
+            ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
+            ('experience', models.ForeignKey(orm['timeside.experience'], null=False)),
+            ('processor', models.ForeignKey(orm['timeside.processor'], null=False))
+        ))
+        db.create_unique(m2m_table_name, ['experience_id', 'processor_id'])
+
+        # Removing M2M table for field presets on 'Experience'
+        db.delete_table(db.shorten_name('timeside_experiences_presets'))
+
+
+    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.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_public': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'presets': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'experiences'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['timeside.Preset']"}),
+            '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.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'}),
+            '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', [], {'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', [], {'unique': 'True', 'max_length': '512', 'blank': 'True'})
+        },
+        'timeside.preset': {
+            'Meta': {'object_name': 'Preset', 'db_table': "'timeside_presets'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_public': ('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': "'preset'", 'null': 'True', 'to': "orm['timeside.Processor']"})
+        },
+        'timeside.processor': {
+            'Meta': {'object_name': 'Processor', 'db_table': "'timeside_processors'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'pid': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
+            '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'}),
+            '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'}),
+            'item': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'results'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['timeside.Item']"}),
+            'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
+            'preset': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'results'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['timeside.Preset']"}),
+            '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'}),
+            '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'})
+        }
+    }
+
+    complete_apps = ['timeside']
\ No newline at end of file
index 0210ddf6c85b949938349e5ed20ecc6e0fcfd780..67052b46f79e32a47336927b8de2fff074350c17 100644 (file)
@@ -109,15 +109,16 @@ class Item(DocBaseResource):
 
 class Experience(DocBaseResource):
 
-    processors = models.ManyToManyField('Processor', related_name="experiences", verbose_name=_('processors'), blank=True, null=True)
+    presets = models.ManyToManyField('Preset', related_name="experiences", verbose_name=_('presets'), 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)
+    is_public = models.BooleanField(default=False)
 
     class Meta(MetaCore):
         db_table = app + '_experiences'
         verbose_name = _('Experience')
 
+    
 
 class Processor(models.Model):
     
@@ -137,10 +138,25 @@ class Processor(models.Model):
         super(Processor, self).save(**kwargs)
         
 
+class Preset(models.Model):
+
+    processor = models.ForeignKey('Processor', related_name="preset", verbose_name=_('processor'), blank=True, null=True)
+    parameters = models.TextField(_('Parameters'), blank=True)
+    is_public = models.BooleanField(default=False)
+
+    class Meta:
+        db_table = app + '_presets'
+        verbose_name = _('Preset')
+        verbose_name_plural = _('Presets')
+
+    def __unicode__(self):
+        return '_'.join([unicode(self.processor), str(self.id)])
+
+    
 class Result(BaseResource):
 
     item = models.ForeignKey('Item', related_name="results", verbose_name=_('item'), blank=True, null=True, on_delete=models.SET_NULL)
-    parameters = models.ForeignKey('Parameters', related_name="results", verbose_name=_('parameters'), blank=True, null=True, on_delete=models.SET_NULL)
+    preset = models.ForeignKey('Preset', related_name="results", verbose_name=_('preset'), blank=True, null=True, on_delete=models.SET_NULL)
     hdf5 = models.FileField(_('HDF5 result file'), upload_to='results/%Y/%m/%d', blank=True, max_length=1024)
     file = models.FileField(_('Output file'), upload_to='results/%Y/%m/%d', blank=True, max_length=1024)
     mime_type = models.CharField(_('Output file MIME type'), blank=True, max_length=256)
@@ -159,21 +175,6 @@ class Result(BaseResource):
         return '_'.join([self.item.title, unicode(self.parameters.processor)])
 
 
-class Parameters(models.Model):
-
-    processor = models.ForeignKey('Processor', 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):
-        return '_'.join([unicode(self.processor), str(self.id)])
-
-    
 class Task(models.Model):
 
     experience = models.ForeignKey('Experience', related_name="task", verbose_name=_('experience'), blank=True, null=True)
@@ -204,13 +205,16 @@ class Task(models.Model):
             path = results_root + os.sep + item.uuid + os.sep
             if not os.path.exists(settings.MEDIA_ROOT + os.sep + path):
                 os.makedirs(settings.MEDIA_ROOT + os.sep + path)
+            
+            # pipe = timeside.decoder.FileDecoder(item.file.path, sha1=item.sha1)
             pipe = timeside.decoder.FileDecoder(item.file.path)
+            
             proc_dict = {}
 
-            for processor in self.experience.processors.all():
-                proc = get_processor(processor.pid)
-                #TODO: add parameters
-                proc_dict[processor] = proc
+            for preset in self.experience.presets.all():
+                proc = get_processor(preset.processor.pid)
+                proc_dict[preset.processor] = proc
+                #proc.set_parameters(preset.parameters)
                 pipe = pipe | proc
 
             # while item.lock:
@@ -220,30 +224,29 @@ class Task(models.Model):
                 item.hdf5 =  path + item.uuid + '.hdf5'
                 item.save()
 
-            item.lock_setter(True)
             pipe.run()
+            item.lock_setter(True)
             pipe.results.to_hdf5(item.hdf5.path)
             item.lock_setter(False)
             
             for processor in proc_dict.keys():
                 proc = proc_dict[processor]
 
-                if proc.type == 'analyzer':
-                    for analyzer_id in proc.results.keys():
-                        parameters = proc.results[analyzer_id].parameters
-                        parameters, c = Parameters.objects.get_or_create(processor=processor, parameters=unicode(parameters))
-                        result, c = Result.objects.get_or_create(parameters=parameters, item=item)
+                for processor_id in proc.results.keys():
+                    parameters = proc.results[processor_id].parameters
+                    preset, c = Preset.objects.get_or_create(processor=processor, parameters=unicode(parameters))
+                    result, c = Result.objects.get_or_create(preset=preset, item=item)
+                
+                    if proc.type == 'analyzer':
                         result.hdf5 = path + item.uuid + '_' + str(proc.UUID) + '.hdf5'
                         proc.results.to_hdf5(result.hdf5.path)
-                        result.save()
-        
-                if proc.type == 'grapher':
-                    parameters, c = Parameters.objects.get_or_create(processor=processor, parameters=unicode(parameters))
-                    result, c = Result.objects.get_or_create(parameters=parameters, item=item)
-                    result.output= path + item.uuid + '_' + str(proc.UUID) + '.png'
-                    proc.render(output=result.output)
+                        
+                    if proc.type == 'grapher':
+                        result.file = path + item.uuid + '_' + str(proc.UUID) + '.png'
+                        proc.render(output=result.file)
+                    
                     result.save()
-        
+            
             # except:
             #     self.status_setter(0)
             #     item.lock_setter(False)
@@ -254,7 +257,6 @@ class Task(models.Model):
         del pipe
 
 
-
 post_save.connect(set_mimetype, sender=Item)
 post_save.connect(set_hash, sender=Item)
 post_save.connect(set_mimetype, sender=Result)
index 94e451bbf760ce875faa74fc7e47c7b502e867b1..a1447d130ac6553f7c3c6049ad124d9412e5a7a8 100644 (file)
@@ -8,7 +8,7 @@ class SelectionSerializer(serializers.ModelSerializer):
 
     class Meta:
         model = Selection
-        fields = ('id', 'items', 'author')
+        fields = ('id', 'items', 'selections', 'author')
 
 
 class ItemSerializer(serializers.ModelSerializer):
@@ -22,7 +22,7 @@ class ExperienceSerializer(serializers.ModelSerializer):
 
     class Meta:
         model = Experience
-        fields = ('id', 'processors', 'is_preset', 'author')
+        fields = ('id', 'presets', 'experiences', 'is_public', 'author')
 
 
 class ProcessorSerializer(serializers.ModelSerializer):
@@ -36,14 +36,14 @@ class ResultSerializer(serializers.ModelSerializer):
 
     class Meta:
         model = Result
-        fields = ('id', 'item', 'parameters', 'status')
+        fields = ('id', 'item', 'preset', 'status', 'hdf5', 'file')
 
 
-class ParametersSerializer(serializers.ModelSerializer):
+class PresetSerializer(serializers.ModelSerializer):
 
     class Meta:
-        model = Parameters
-        fields = ('id', 'processor', 'parameters', 'is_preset')
+        model = Preset
+        fields = ('id', 'processor', 'parameters', 'is_public')
 
 
 class TaskSerializer(serializers.ModelSerializer):
index ee508e4795e6fd7fb1663e651aec9f0078e24078..6fde09f05ef4a0c46530689af565b1f67840dd83 100644 (file)
@@ -13,7 +13,7 @@ api_router.register(r'items', views.ItemViewSet)
 api_router.register(r'experiences', views.ExperienceViewSet)
 api_router.register(r'processors', views.ProcessorViewSet)
 api_router.register(r'results', views.ResultViewSet)
-api_router.register(r'parameters', views.ParametersViewSet)
+api_router.register(r'presets', views.PresetViewSet)
 api_router.register(r'tasks', views.TaskViewSet)
 api_router.register(r'users', views.UserViewSet)
 
index 7acafe006670f76587806aef5429e2146f548d38..8dd80196adbc9b406cab0810ed23e60932e7978c 100644 (file)
@@ -38,10 +38,10 @@ class ResultViewSet(viewsets.ModelViewSet):
     serializer_class = ResultSerializer
 
 
-class ParametersViewSet(viewsets.ModelViewSet):
+class PresetViewSet(viewsets.ModelViewSet):
     
-    model = Parameters
-    serializer_class = ParametersSerializer
+    model = Preset
+    serializer_class = PresetSerializer
 
 
 class TaskViewSet(viewsets.ModelViewSet):
@@ -81,14 +81,14 @@ class IndexView(ListView):
         return super(IndexView, self).dispatch(*args, **kwargs)
 
 
-class ItemAnalyzerView(DetailView):
+class ResultAnalyzerView(DetailView):
     
-    model = Item
+    model = Result
 
     def results(self):
-        item = self.get_object()
+        result = self.get_object()
         results = AnalyzerResult()
-        return results.from_hdf5(self.hdf5).to_json()
+        return results.from_hdf5(result.hdf5).to_json()
     
     def get_context_data(self, **kwargs):
         context = super(ItemJsonAnalyzerView, self).get_context_data(**kwargs)