diff --git a/ippisite/db.sqlite3 b/ippisite/db.sqlite3 index 8606d46f594d3b1d168826016966cfb95c9e8726..7ec7dd61212668b2fff2d44382e67427c4c30d13 100644 Binary files a/ippisite/db.sqlite3 and b/ippisite/db.sqlite3 differ diff --git a/ippisite/ippidb/migrations/0018_auto_20170522_1501.py b/ippisite/ippidb/migrations/0018_auto_20170522_1501.py new file mode 100644 index 0000000000000000000000000000000000000000..2986ba98f06fc35caa42f508d3876dc97978a3d9 --- /dev/null +++ b/ippisite/ippidb/migrations/0018_auto_20170522_1501.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.1 on 2017-05-22 15:01 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('ippidb', '0017_auto_20170519_1500'), + ] + + operations = [ + migrations.CreateModel( + name='MDDRActivityClass', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('activity_class', models.CharField(max_length=100, unique=True, verbose_name='Activity Class')), + ], + options={ + 'verbose_name_plural': 'MDDR activity classes', + }, + ), + migrations.AlterUniqueTogether( + name='mddrcompoundactivityclass', + unique_together=set([]), + ), + migrations.RemoveField( + model_name='mddrcompoundactivityclass', + name='mddr_compound', + ), + migrations.DeleteModel( + name='MDDRCompoundActivityClass', + ), + migrations.AddField( + model_name='mddrcompoundimport', + name='activity_classes', + field=models.ManyToManyField(to='ippidb.MDDRActivityClass'), + ), + ] diff --git a/ippisite/ippidb/models.py b/ippisite/ippidb/models.py index 00dd5ee9c3bc07a873fd14ccc08742f0e2d64d2c..48fb10e3e572e09bb0d6d417c1f654449194c7e8 100644 --- a/ippisite/ippidb/models.py +++ b/ippisite/ippidb/models.py @@ -243,6 +243,15 @@ class Compound(models.Model): mddr_compound = models.ForeignKey('MDDRCompoundImport', blank=True, null=True) +class MDDRActivityClass(models.Model): + activity_class = models.CharField('Activity Class', max_length=100, unique=True) + + class Meta: + verbose_name_plural = "MDDR activity classes" + + def __str__(self): + return self.activity_class + class MDDRCompoundImport(models.Model): mddr_compound_id = models.IntegerField('MDDR compound ID') mddr_name = models.CharField('MDDR name', max_length=40) @@ -250,6 +259,7 @@ class MDDRCompoundImport(models.Model): canonical_smile = models.CharField('Canonical Smile', max_length=500, unique=True, blank=True, null=True) #TODO index this table on canonical_smile db_import_date = models.DecimalField('MDDR release year/month', max_digits=6, decimal_places=0) + activity_classes = models.ManyToManyField(MDDRActivityClass) class Meta: # over multiple releases of the MDDR database, the same compound can evolve in its development phase @@ -257,16 +267,6 @@ class MDDRCompoundImport(models.Model): unique_together = (('mddr_compound_id', 'mddr_name', 'dvpmt_phase'),) verbose_name_plural = "MDDR compound imports" - -class MDDRCompoundActivityClass(models.Model): - mddr_compound = models.ForeignKey(MDDRCompoundImport) - activity_class = models.CharField('Activity Class', max_length=100) - - class Meta: - unique_together = (('mddr_compound', 'activity_class'),) - verbose_name_plural = "MDDR compound activity classes" - - class MDDRSimilarity(models.Model): canonical_smile_ippidb = models.CharField('Canonical Smile for IPPIDB compound', max_length=500, unique=True, blank=True, null=True) canonical_smile_mddr = models.CharField('Canonical Smile for MDDR Compound', max_length=500, unique=True, blank=True, null=True)