{"action":"created","comment":{"url":"https://api.github.com/repos/mytardis/mytardis/pulls/comments/30498217","id":30498217,"diff_hunk":"@@ -0,0 +1,318 @@\n+# -*- coding: utf-8 -*-\n+from south.utils import datetime_utils as datetime\n+from south.db import db\n+from south.v2 import SchemaMigration\n+from django.db import models\n+\n+\n+class Migration(SchemaMigration):\n+\n+    def forwards(self, orm):\n+        # Removing unique constraint on 'DataFileObject', fields ['datafile', 'storage_box']\n+        db.delete_unique(u'tardis_portal_datafileobject', ['datafile_id', 'storage_box_id'])\n+\n+\n+    def backwards(self, orm):\n+        # Adding unique constraint on 'DataFileObject', fields ['datafile', 'storage_box']\n+        db.create_unique(u'tardis_portal_datafileobject', ['datafile_id', 'storage_box_id'])\n+\n+\n+    models = {\n+        u'auth.group': {\n+            'Meta': {'object_name': 'Group'},\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),\n+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u\"orm['auth.Permission']\", 'symmetrical': 'False', 'blank': 'True'})\n+        },\n+        u'auth.permission': {\n+            'Meta': {'ordering': \"(u'content_type__app_label', u'content_type__model', u'codename')\", 'unique_together': \"((u'content_type', u'codename'),)\", 'object_name': 'Permission'},\n+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\n+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u\"orm['contenttypes.ContentType']\"}),\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})\n+        },\n+        u'auth.user': {\n+            'Meta': {'object_name': 'User'},\n+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\n+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),\n+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\n+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': \"u'user_set'\", 'blank': 'True', 'to': u\"orm['auth.Group']\"}),\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),\n+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),\n+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),\n+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),\n+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),\n+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),\n+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': \"u'user_set'\", 'blank': 'True', 'to': u\"orm['auth.Permission']\"}),\n+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})\n+        },\n+        u'contenttypes.contenttype': {\n+            'Meta': {'ordering': \"('name',)\", 'unique_together': \"(('app_label', 'model'),)\", 'object_name': 'ContentType', 'db_table': \"'django_content_type'\"},\n+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),\n+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\n+        },\n+        'tardis_portal.datafile': {\n+            'Meta': {'ordering': \"['filename']\", 'unique_together': \"(['dataset', 'directory', 'filename', 'version'],)\", 'object_name': 'DataFile'},\n+            'created_time': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\n+            'dataset': ('django.db.models.fields.related.ForeignKey', [], {'to': \"orm['tardis_portal.Dataset']\"}),\n+            'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),\n+            'deleted_time': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\n+            'directory': ('tardis.tardis_portal.models.fields.DirectoryField', [], {'null': 'True', 'blank': 'True'}),\n+            'filename': ('django.db.models.fields.CharField', [], {'max_length': '400'}),\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'md5sum': ('django.db.models.fields.CharField', [], {'max_length': '32', 'blank': 'True'}),\n+            'mimetype': ('django.db.models.fields.CharField', [], {'max_length': '80', 'blank': 'True'}),\n+            'modification_time': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\n+            'sha512sum': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),\n+            'size': ('django.db.models.fields.CharField', [], {'max_length': '400', 'blank': 'True'}),\n+            'version': ('django.db.models.fields.IntegerField', [], {'default': '1'})\n+        },\n+        'tardis_portal.datafileobject': {\n+            'Meta': {'object_name': 'DataFileObject'},\n+            'created_time': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),\n+            'datafile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': \"'file_objects'\", 'to': \"orm['tardis_portal.DataFile']\"}),\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'last_verified_time': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\n+            'storage_box': ('django.db.models.fields.related.ForeignKey', [], {'related_name': \"'file_objects'\", 'to': \"orm['tardis_portal.StorageBox']\"}),\n+            'uri': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),\n+            'verified': ('django.db.models.fields.BooleanField', [], {'default': 'False'})\n+        },\n+        'tardis_portal.datafileparameter': {\n+            'Meta': {'ordering': \"['name']\", 'object_name': 'DatafileParameter'},\n+            'datetime_value': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'link_ct': ('django.db.models.fields.related.ForeignKey', [], {'to': u\"orm['contenttypes.ContentType']\", 'null': 'True', 'blank': 'True'}),\n+            'link_id': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),\n+            'name': ('django.db.models.fields.related.ForeignKey', [], {'to': \"orm['tardis_portal.ParameterName']\"}),\n+            'numerical_value': ('django.db.models.fields.FloatField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),\n+            'parameterset': ('django.db.models.fields.related.ForeignKey', [], {'to': \"orm['tardis_portal.DatafileParameterSet']\"}),\n+            'string_value': ('django.db.models.fields.TextField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'})\n+        },\n+        'tardis_portal.datafileparameterset': {\n+            'Meta': {'ordering': \"['id']\", 'object_name': 'DatafileParameterSet'},\n+            'datafile': ('django.db.models.fields.related.ForeignKey', [], {'to': \"orm['tardis_portal.DataFile']\"}),\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'schema': ('django.db.models.fields.related.ForeignKey', [], {'to': \"orm['tardis_portal.Schema']\"}),\n+            'storage_box': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': \"'datafileparametersets'\", 'symmetrical': 'False', 'to': \"orm['tardis_portal.StorageBox']\"})\n+        },\n+        'tardis_portal.dataset': {\n+            'Meta': {'ordering': \"['-id']\", 'object_name': 'Dataset'},\n+            'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\n+            'directory': ('tardis.tardis_portal.models.fields.DirectoryField', [], {'null': 'True', 'blank': 'True'}),\n+            'experiments': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': \"'datasets'\", 'symmetrical': 'False', 'to': \"orm['tardis_portal.Experiment']\"}),\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'immutable': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),\n+            'instrument': ('django.db.models.fields.related.ForeignKey', [], {'to': \"orm['tardis_portal.Instrument']\", 'null': 'True', 'blank': 'True'})\n+        },\n+        'tardis_portal.datasetparameter': {\n+            'Meta': {'ordering': \"['name']\", 'object_name': 'DatasetParameter'},\n+            'datetime_value': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'link_ct': ('django.db.models.fields.related.ForeignKey', [], {'to': u\"orm['contenttypes.ContentType']\", 'null': 'True', 'blank': 'True'}),\n+            'link_id': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),\n+            'name': ('django.db.models.fields.related.ForeignKey', [], {'to': \"orm['tardis_portal.ParameterName']\"}),\n+            'numerical_value': ('django.db.models.fields.FloatField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),\n+            'parameterset': ('django.db.models.fields.related.ForeignKey', [], {'to': \"orm['tardis_portal.DatasetParameterSet']\"}),\n+            'string_value': ('django.db.models.fields.TextField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'})\n+        },\n+        'tardis_portal.datasetparameterset': {\n+            'Meta': {'ordering': \"['id']\", 'object_name': 'DatasetParameterSet'},\n+            'dataset': ('django.db.models.fields.related.ForeignKey', [], {'to': \"orm['tardis_portal.Dataset']\"}),\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'schema': ('django.db.models.fields.related.ForeignKey', [], {'to': \"orm['tardis_portal.Schema']\"}),\n+            'storage_box': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': \"'datasetparametersets'\", 'symmetrical': 'False', 'to': \"orm['tardis_portal.StorageBox']\"})\n+        },\n+        'tardis_portal.experiment': {\n+            'Meta': {'object_name': 'Experiment'},\n+            'approved': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),\n+            'created_by': ('django.db.models.fields.related.ForeignKey', [], {'to': u\"orm['auth.User']\"}),\n+            'created_time': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),\n+            'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),\n+            'end_time': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\n+            'handle': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'institution_name': ('django.db.models.fields.CharField', [], {'default': \"'Monash University'\", 'max_length': '400'}),\n+            'license': ('django.db.models.fields.related.ForeignKey', [], {'to': \"orm['tardis_portal.License']\", 'null': 'True', 'blank': 'True'}),\n+            'locked': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),\n+            'public_access': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),\n+            'start_time': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),\n+            'title': ('django.db.models.fields.CharField', [], {'max_length': '400'}),\n+            'update_time': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),\n+            'url': ('django.db.models.fields.URLField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})\n+        },\n+        'tardis_portal.experimentauthor': {\n+            'Meta': {'ordering': \"['order']\", 'unique_together': \"(('experiment', 'author'),)\", 'object_name': 'ExperimentAuthor'},\n+            'author': ('django.db.models.fields.CharField', [], {'max_length': '255'}),\n+            'email': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),\n+            'experiment': ('django.db.models.fields.related.ForeignKey', [], {'to': \"orm['tardis_portal.Experiment']\"}),\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'institution': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),\n+            'order': ('django.db.models.fields.PositiveIntegerField', [], {}),\n+            'url': ('django.db.models.fields.URLField', [], {'max_length': '2000', 'null': 'True', 'blank': 'True'})\n+        },\n+        'tardis_portal.experimentparameter': {\n+            'Meta': {'ordering': \"['name']\", 'object_name': 'ExperimentParameter'},\n+            'datetime_value': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'link_ct': ('django.db.models.fields.related.ForeignKey', [], {'to': u\"orm['contenttypes.ContentType']\", 'null': 'True', 'blank': 'True'}),\n+            'link_id': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),\n+            'name': ('django.db.models.fields.related.ForeignKey', [], {'to': \"orm['tardis_portal.ParameterName']\"}),\n+            'numerical_value': ('django.db.models.fields.FloatField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),\n+            'parameterset': ('django.db.models.fields.related.ForeignKey', [], {'to': \"orm['tardis_portal.ExperimentParameterSet']\"}),\n+            'string_value': ('django.db.models.fields.TextField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'})\n+        },\n+        'tardis_portal.experimentparameterset': {\n+            'Meta': {'ordering': \"['id']\", 'object_name': 'ExperimentParameterSet'},\n+            'experiment': ('django.db.models.fields.related.ForeignKey', [], {'to': \"orm['tardis_portal.Experiment']\"}),\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'schema': ('django.db.models.fields.related.ForeignKey', [], {'to': \"orm['tardis_portal.Schema']\"}),\n+            'storage_box': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': \"'experimentparametersets'\", 'symmetrical': 'False', 'to': \"orm['tardis_portal.StorageBox']\"})\n+        },\n+        'tardis_portal.facility': {\n+            'Meta': {'object_name': 'Facility'},\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'manager_group': ('django.db.models.fields.related.ForeignKey', [], {'to': u\"orm['auth.Group']\"}),\n+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\n+        },\n+        'tardis_portal.freetextsearchfield': {\n+            'Meta': {'object_name': 'FreeTextSearchField'},\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'parameter_name': ('django.db.models.fields.related.ForeignKey', [], {'to': \"orm['tardis_portal.ParameterName']\"})\n+        },\n+        'tardis_portal.groupadmin': {\n+            'Meta': {'object_name': 'GroupAdmin'},\n+            'group': ('django.db.models.fields.related.ForeignKey', [], {'to': u\"orm['auth.Group']\"}),\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u\"orm['auth.User']\"})\n+        },\n+        'tardis_portal.instrument': {\n+            'Meta': {'object_name': 'Instrument'},\n+            'facility': ('django.db.models.fields.related.ForeignKey', [], {'to': \"orm['tardis_portal.Facility']\"}),\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})\n+        },\n+        'tardis_portal.instrumentparameter': {\n+            'Meta': {'ordering': \"['name']\", 'object_name': 'InstrumentParameter'},\n+            'datetime_value': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'link_ct': ('django.db.models.fields.related.ForeignKey', [], {'to': u\"orm['contenttypes.ContentType']\", 'null': 'True', 'blank': 'True'}),\n+            'link_id': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),\n+            'name': ('django.db.models.fields.related.ForeignKey', [], {'to': \"orm['tardis_portal.ParameterName']\"}),\n+            'numerical_value': ('django.db.models.fields.FloatField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),\n+            'parameterset': ('django.db.models.fields.related.ForeignKey', [], {'to': \"orm['tardis_portal.InstrumentParameterSet']\"}),\n+            'string_value': ('django.db.models.fields.TextField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'})\n+        },\n+        'tardis_portal.instrumentparameterset': {\n+            'Meta': {'ordering': \"['id']\", 'object_name': 'InstrumentParameterSet'},\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'instrument': ('django.db.models.fields.related.ForeignKey', [], {'to': \"orm['tardis_portal.Instrument']\"}),\n+            'schema': ('django.db.models.fields.related.ForeignKey', [], {'to': \"orm['tardis_portal.Schema']\"}),\n+            'storage_box': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': \"'instrumentparametersets'\", 'symmetrical': 'False', 'to': \"orm['tardis_portal.StorageBox']\"})\n+        },\n+        'tardis_portal.jti': {\n+            'Meta': {'object_name': 'JTI'},\n+            'created_time': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'jti': ('django.db.models.fields.CharField', [], {'max_length': '255'})\n+        },\n+        'tardis_portal.license': {\n+            'Meta': {'object_name': 'License'},\n+            'allows_distribution': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'image_url': ('django.db.models.fields.URLField', [], {'max_length': '2000', 'blank': 'True'}),\n+            'internal_description': ('django.db.models.fields.TextField', [], {}),\n+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),\n+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '400'}),\n+            'url': ('django.db.models.fields.URLField', [], {'unique': 'True', 'max_length': '2000'})\n+        },\n+        'tardis_portal.objectacl': {\n+            'Meta': {'ordering': \"['content_type', 'object_id']\", 'object_name': 'ObjectACL'},\n+            'aclOwnershipType': ('django.db.models.fields.IntegerField', [], {'default': '1'}),\n+            'canDelete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),\n+            'canRead': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),\n+            'canWrite': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),\n+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u\"orm['contenttypes.ContentType']\"}),\n+            'effectiveDate': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\n+            'entityId': ('django.db.models.fields.CharField', [], {'max_length': '320'}),\n+            'expiryDate': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'isOwner': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),\n+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),\n+            'pluginId': ('django.db.models.fields.CharField', [], {'max_length': '30'})\n+        },\n+        'tardis_portal.parametername': {\n+            'Meta': {'ordering': \"('order', 'name')\", 'unique_together': \"(('schema', 'name'),)\", 'object_name': 'ParameterName'},\n+            'choices': ('django.db.models.fields.CharField', [], {'max_length': '500', 'blank': 'True'}),\n+            'comparison_type': ('django.db.models.fields.IntegerField', [], {'default': '1'}),\n+            'data_type': ('django.db.models.fields.IntegerField', [], {'default': '2'}),\n+            'full_name': ('django.db.models.fields.CharField', [], {'max_length': '60'}),\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'immutable': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),\n+            'is_searchable': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),\n+            'name': ('django.db.models.fields.CharField', [], {'max_length': '60'}),\n+            'order': ('django.db.models.fields.PositiveIntegerField', [], {'default': '9999', 'null': 'True', 'blank': 'True'}),\n+            'schema': ('django.db.models.fields.related.ForeignKey', [], {'to': \"orm['tardis_portal.Schema']\"}),\n+            'units': ('django.db.models.fields.CharField', [], {'max_length': '60', 'blank': 'True'})\n+        },\n+        'tardis_portal.schema': {\n+            'Meta': {'object_name': 'Schema'},\n+            'hidden': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'immutable': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),\n+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),\n+            'namespace': ('django.db.models.fields.URLField', [], {'unique': 'True', 'max_length': '255'}),\n+            'subtype': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),\n+            'type': ('django.db.models.fields.IntegerField', [], {'default': '1'})\n+        },\n+        'tardis_portal.storagebox': {\n+            'Meta': {'object_name': 'StorageBox'},\n+            'description': ('django.db.models.fields.TextField', [], {'default': \"'Default Storage'\"}),\n+            'django_storage_class': ('django.db.models.fields.TextField', [], {'default': \"'tardis.tardis_portal.storage.MyTardisLocalFileSystemStorage'\"}),\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'master_box': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': \"'child_boxes'\", 'null': 'True', 'to': \"orm['tardis_portal.StorageBox']\"}),\n+            'max_size': ('django.db.models.fields.BigIntegerField', [], {}),\n+            'name': ('django.db.models.fields.TextField', [], {'default': \"'default'\", 'unique': 'True'}),\n+            'status': ('django.db.models.fields.CharField', [], {'max_length': '100'})\n+        },\n+        'tardis_portal.storageboxattribute': {\n+            'Meta': {'object_name': 'StorageBoxAttribute'},\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'key': ('django.db.models.fields.TextField', [], {}),\n+            'storage_box': ('django.db.models.fields.related.ForeignKey', [], {'related_name': \"'attributes'\", 'to': \"orm['tardis_portal.StorageBox']\"}),\n+            'value': ('django.db.models.fields.TextField', [], {})\n+        },\n+        'tardis_portal.storageboxoption': {\n+            'Meta': {'object_name': 'StorageBoxOption'},\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'key': ('django.db.models.fields.TextField', [], {}),\n+            'storage_box': ('django.db.models.fields.related.ForeignKey', [], {'related_name': \"'options'\", 'to': \"orm['tardis_portal.StorageBox']\"}),\n+            'value': ('django.db.models.fields.TextField', [], {})\n+        },\n+        'tardis_portal.token': {\n+            'Meta': {'object_name': 'Token'},\n+            'experiment': ('django.db.models.fields.related.ForeignKey', [], {'to': \"orm['tardis_portal.Experiment']\"}),\n+            'expiry_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2015, 6, 17, 0, 0)'}),\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'token': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}),\n+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u\"orm['auth.User']\"})\n+        },\n+        'tardis_portal.userauthentication': {\n+            'Meta': {'object_name': 'UserAuthentication'},\n+            'authenticationMethod': ('django.db.models.fields.CharField', [], {'max_length': '30'}),\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'userProfile': ('django.db.models.fields.related.ForeignKey', [], {'to': \"orm['tardis_portal.UserProfile']\"}),\n+            'username': ('django.db.models.fields.CharField', [], {'max_length': '50'})\n+        },\n+        'tardis_portal.userprofile': {\n+            'Meta': {'object_name': 'UserProfile'},\n+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),\n+            'isDjangoAccount': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),\n+            'rapidConnectEduPersonTargetedID': ('django.db.models.fields.CharField', [], {'max_length': '400', 'null': 'True', 'blank': 'True'}),\n+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u\"orm['auth.User']\", 'unique': 'True'})\n+        }\n+    }\n+\n+    complete_apps = ['tardis_portal']","path":"tardis/tardis_portal/migrations/0039_remove_dfo_constraint.py","position":318,"original_position":318,"commit_id":"33b67514441d152dabad5005a92c149370fa9065","original_commit_id":"33b67514441d152dabad5005a92c149370fa9065","user":{"login":"grischa","id":468227,"avatar_url":"https://avatars.githubusercontent.com/u/468227?v=3","gravatar_id":"","url":"https://api.github.com/users/grischa","html_url":"https://github.com/grischa","followers_url":"https://api.github.com/users/grischa/followers","following_url":"https://api.github.com/users/grischa/following{/other_user}","gists_url":"https://api.github.com/users/grischa/gists{/gist_id}","starred_url":"https://api.github.com/users/grischa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/grischa/subscriptions","organizations_url":"https://api.github.com/users/grischa/orgs","repos_url":"https://api.github.com/users/grischa/repos","events_url":"https://api.github.com/users/grischa/events{/privacy}","received_events_url":"https://api.github.com/users/grischa/received_events","type":"User","site_admin":false},"body":"![Codacy](https://www.codacy.com/versioned/images/favicon.png) Issue found: [Final newline missing](https://www.codacy.com/app/mytardis/mytardis/file/651209292/issues/source?bid=2125231&fileBranchId=2334891#l318)","created_at":"2015-05-18T11:02:19Z","updated_at":"2015-05-18T11:02:19Z","html_url":"https://github.com/mytardis/mytardis/pull/450#discussion_r30498217","pull_request_url":"https://api.github.com/repos/mytardis/mytardis/pulls/450","_links":{"self":{"href":"https://api.github.com/repos/mytardis/mytardis/pulls/comments/30498217"},"html":{"href":"https://github.com/mytardis/mytardis/pull/450#discussion_r30498217"},"pull_request":{"href":"https://api.github.com/repos/mytardis/mytardis/pulls/450"}}},"pull_request":{"url":"https://api.github.com/repos/mytardis/mytardis/pulls/450","id":35610030,"html_url":"https://github.com/mytardis/mytardis/pull/450","diff_url":"https://github.com/mytardis/mytardis/pull/450.diff","patch_url":"https://github.com/mytardis/mytardis/pull/450.patch","issue_url":"https://api.github.com/repos/mytardis/mytardis/issues/450","number":450,"state":"open","locked":false,"title":"relaxed download restrictions","user":{"login":"grischa","id":468227,"avatar_url":"https://avatars.githubusercontent.com/u/468227?v=3","gravatar_id":"","url":"https://api.github.com/users/grischa","html_url":"https://github.com/grischa","followers_url":"https://api.github.com/users/grischa/followers","following_url":"https://api.github.com/users/grischa/following{/other_user}","gists_url":"https://api.github.com/users/grischa/gists{/gist_id}","starred_url":"https://api.github.com/users/grischa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/grischa/subscriptions","organizations_url":"https://api.github.com/users/grischa/orgs","repos_url":"https://api.github.com/users/grischa/repos","events_url":"https://api.github.com/users/grischa/events{/privacy}","received_events_url":"https://api.github.com/users/grischa/received_events","type":"User","site_admin":false},"body":"As mentioned in #449 \r\nThis is just a part of the new code, the part needed for single-verified-source downloads","created_at":"2015-05-18T07:58:17Z","updated_at":"2015-05-18T11:02:19Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d52e7526995147fbbce5b13f95091d61ec83c8e2","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/mytardis/mytardis/pulls/450/commits","review_comments_url":"https://api.github.com/repos/mytardis/mytardis/pulls/450/comments","review_comment_url":"https://api.github.com/repos/mytardis/mytardis/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mytardis/mytardis/issues/450/comments","statuses_url":"https://api.github.com/repos/mytardis/mytardis/statuses/33b67514441d152dabad5005a92c149370fa9065","head":{"label":"grischa:relax-download-restrictions","ref":"relax-download-restrictions","sha":"33b67514441d152dabad5005a92c149370fa9065","user":{"login":"grischa","id":468227,"avatar_url":"https://avatars.githubusercontent.com/u/468227?v=3","gravatar_id":"","url":"https://api.github.com/users/grischa","html_url":"https://github.com/grischa","followers_url":"https://api.github.com/users/grischa/followers","following_url":"https://api.github.com/users/grischa/following{/other_user}","gists_url":"https://api.github.com/users/grischa/gists{/gist_id}","starred_url":"https://api.github.com/users/grischa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/grischa/subscriptions","organizations_url":"https://api.github.com/users/grischa/orgs","repos_url":"https://api.github.com/users/grischa/repos","events_url":"https://api.github.com/users/grischa/events{/privacy}","received_events_url":"https://api.github.com/users/grischa/received_events","type":"User","site_admin":false},"repo":{"id":6805804,"name":"mytardis","full_name":"grischa/mytardis","owner":{"login":"grischa","id":468227,"avatar_url":"https://avatars.githubusercontent.com/u/468227?v=3","gravatar_id":"","url":"https://api.github.com/users/grischa","html_url":"https://github.com/grischa","followers_url":"https://api.github.com/users/grischa/followers","following_url":"https://api.github.com/users/grischa/following{/other_user}","gists_url":"https://api.github.com/users/grischa/gists{/gist_id}","starred_url":"https://api.github.com/users/grischa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/grischa/subscriptions","organizations_url":"https://api.github.com/users/grischa/orgs","repos_url":"https://api.github.com/users/grischa/repos","events_url":"https://api.github.com/users/grischa/events{/privacy}","received_events_url":"https://api.github.com/users/grischa/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/grischa/mytardis","description":"MyTardis - a data management system for private lab/facility data","fork":true,"url":"https://api.github.com/repos/grischa/mytardis","forks_url":"https://api.github.com/repos/grischa/mytardis/forks","keys_url":"https://api.github.com/repos/grischa/mytardis/keys{/key_id}","collaborators_url":"https://api.github.com/repos/grischa/mytardis/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/grischa/mytardis/teams","hooks_url":"https://api.github.com/repos/grischa/mytardis/hooks","issue_events_url":"https://api.github.com/repos/grischa/mytardis/issues/events{/number}","events_url":"https://api.github.com/repos/grischa/mytardis/events","assignees_url":"https://api.github.com/repos/grischa/mytardis/assignees{/user}","branches_url":"https://api.github.com/repos/grischa/mytardis/branches{/branch}","tags_url":"https://api.github.com/repos/grischa/mytardis/tags","blobs_url":"https://api.github.com/repos/grischa/mytardis/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/grischa/mytardis/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/grischa/mytardis/git/refs{/sha}","trees_url":"https://api.github.com/repos/grischa/mytardis/git/trees{/sha}","statuses_url":"https://api.github.com/repos/grischa/mytardis/statuses/{sha}","languages_url":"https://api.github.com/repos/grischa/mytardis/languages","stargazers_url":"https://api.github.com/repos/grischa/mytardis/stargazers","contributors_url":"https://api.github.com/repos/grischa/mytardis/contributors","subscribers_url":"https://api.github.com/repos/grischa/mytardis/subscribers","subscription_url":"https://api.github.com/repos/grischa/mytardis/subscription","commits_url":"https://api.github.com/repos/grischa/mytardis/commits{/sha}","git_commits_url":"https://api.github.com/repos/grischa/mytardis/git/commits{/sha}","comments_url":"https://api.github.com/repos/grischa/mytardis/comments{/number}","issue_comment_url":"https://api.github.com/repos/grischa/mytardis/issues/comments{/number}","contents_url":"https://api.github.com/repos/grischa/mytardis/contents/{+path}","compare_url":"https://api.github.com/repos/grischa/mytardis/compare/{base}...{head}","merges_url":"https://api.github.com/repos/grischa/mytardis/merges","archive_url":"https://api.github.com/repos/grischa/mytardis/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/grischa/mytardis/downloads","issues_url":"https://api.github.com/repos/grischa/mytardis/issues{/number}","pulls_url":"https://api.github.com/repos/grischa/mytardis/pulls{/number}","milestones_url":"https://api.github.com/repos/grischa/mytardis/milestones{/number}","notifications_url":"https://api.github.com/repos/grischa/mytardis/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/grischa/mytardis/labels{/name}","releases_url":"https://api.github.com/repos/grischa/mytardis/releases{/id}","created_at":"2012-11-22T00:49:33Z","updated_at":"2015-03-06T03:51:37Z","pushed_at":"2015-05-18T07:57:06Z","git_url":"git://github.com/grischa/mytardis.git","ssh_url":"git@github.com:grischa/mytardis.git","clone_url":"https://github.com/grischa/mytardis.git","svn_url":"https://github.com/grischa/mytardis","homepage":"http://mytardis.github.com","size":26358,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":0,"forks":2,"open_issues":0,"watchers":0,"default_branch":"develop"}},"base":{"label":"mytardis:develop","ref":"develop","sha":"c6a360d7961c42d20acb39fcad433fd927678f1f","user":{"login":"mytardis","id":1234844,"avatar_url":"https://avatars.githubusercontent.com/u/1234844?v=3","gravatar_id":"","url":"https://api.github.com/users/mytardis","html_url":"https://github.com/mytardis","followers_url":"https://api.github.com/users/mytardis/followers","following_url":"https://api.github.com/users/mytardis/following{/other_user}","gists_url":"https://api.github.com/users/mytardis/gists{/gist_id}","starred_url":"https://api.github.com/users/mytardis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mytardis/subscriptions","organizations_url":"https://api.github.com/users/mytardis/orgs","repos_url":"https://api.github.com/users/mytardis/repos","events_url":"https://api.github.com/users/mytardis/events{/privacy}","received_events_url":"https://api.github.com/users/mytardis/received_events","type":"Organization","site_admin":false},"repo":{"id":2824643,"name":"mytardis","full_name":"mytardis/mytardis","owner":{"login":"mytardis","id":1234844,"avatar_url":"https://avatars.githubusercontent.com/u/1234844?v=3","gravatar_id":"","url":"https://api.github.com/users/mytardis","html_url":"https://github.com/mytardis","followers_url":"https://api.github.com/users/mytardis/followers","following_url":"https://api.github.com/users/mytardis/following{/other_user}","gists_url":"https://api.github.com/users/mytardis/gists{/gist_id}","starred_url":"https://api.github.com/users/mytardis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mytardis/subscriptions","organizations_url":"https://api.github.com/users/mytardis/orgs","repos_url":"https://api.github.com/users/mytardis/repos","events_url":"https://api.github.com/users/mytardis/events{/privacy}","received_events_url":"https://api.github.com/users/mytardis/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mytardis/mytardis","description":"MyTardis - a data management system for private lab/facility data","fork":false,"url":"https://api.github.com/repos/mytardis/mytardis","forks_url":"https://api.github.com/repos/mytardis/mytardis/forks","keys_url":"https://api.github.com/repos/mytardis/mytardis/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mytardis/mytardis/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mytardis/mytardis/teams","hooks_url":"https://api.github.com/repos/mytardis/mytardis/hooks","issue_events_url":"https://api.github.com/repos/mytardis/mytardis/issues/events{/number}","events_url":"https://api.github.com/repos/mytardis/mytardis/events","assignees_url":"https://api.github.com/repos/mytardis/mytardis/assignees{/user}","branches_url":"https://api.github.com/repos/mytardis/mytardis/branches{/branch}","tags_url":"https://api.github.com/repos/mytardis/mytardis/tags","blobs_url":"https://api.github.com/repos/mytardis/mytardis/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mytardis/mytardis/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mytardis/mytardis/git/refs{/sha}","trees_url":"https://api.github.com/repos/mytardis/mytardis/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mytardis/mytardis/statuses/{sha}","languages_url":"https://api.github.com/repos/mytardis/mytardis/languages","stargazers_url":"https://api.github.com/repos/mytardis/mytardis/stargazers","contributors_url":"https://api.github.com/repos/mytardis/mytardis/contributors","subscribers_url":"https://api.github.com/repos/mytardis/mytardis/subscribers","subscription_url":"https://api.github.com/repos/mytardis/mytardis/subscription","commits_url":"https://api.github.com/repos/mytardis/mytardis/commits{/sha}","git_commits_url":"https://api.github.com/repos/mytardis/mytardis/git/commits{/sha}","comments_url":"https://api.github.com/repos/mytardis/mytardis/comments{/number}","issue_comment_url":"https://api.github.com/repos/mytardis/mytardis/issues/comments{/number}","contents_url":"https://api.github.com/repos/mytardis/mytardis/contents/{+path}","compare_url":"https://api.github.com/repos/mytardis/mytardis/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mytardis/mytardis/merges","archive_url":"https://api.github.com/repos/mytardis/mytardis/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mytardis/mytardis/downloads","issues_url":"https://api.github.com/repos/mytardis/mytardis/issues{/number}","pulls_url":"https://api.github.com/repos/mytardis/mytardis/pulls{/number}","milestones_url":"https://api.github.com/repos/mytardis/mytardis/milestones{/number}","notifications_url":"https://api.github.com/repos/mytardis/mytardis/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mytardis/mytardis/labels{/name}","releases_url":"https://api.github.com/repos/mytardis/mytardis/releases{/id}","created_at":"2011-11-22T01:48:28Z","updated_at":"2015-05-07T05:03:01Z","pushed_at":"2015-05-18T07:58:18Z","git_url":"git://github.com/mytardis/mytardis.git","ssh_url":"git@github.com:mytardis/mytardis.git","clone_url":"https://github.com/mytardis/mytardis.git","svn_url":"https://github.com/mytardis/mytardis","homepage":"http://mytardis.org","size":26960,"stargazers_count":36,"watchers_count":36,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":41,"mirror_url":null,"open_issues_count":65,"forks":41,"open_issues":65,"watchers":36,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/mytardis/mytardis/pulls/450"},"html":{"href":"https://github.com/mytardis/mytardis/pull/450"},"issue":{"href":"https://api.github.com/repos/mytardis/mytardis/issues/450"},"comments":{"href":"https://api.github.com/repos/mytardis/mytardis/issues/450/comments"},"review_comments":{"href":"https://api.github.com/repos/mytardis/mytardis/pulls/450/comments"},"review_comment":{"href":"https://api.github.com/repos/mytardis/mytardis/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mytardis/mytardis/pulls/450/commits"},"statuses":{"href":"https://api.github.com/repos/mytardis/mytardis/statuses/33b67514441d152dabad5005a92c149370fa9065"}}}}