# Generated by Django 3.1.7 on 2021-03-10 13:42 import django.core.validators from django.db import migrations, models import django.db.models.deletion class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='Author', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255, unique=True)), ], ), migrations.CreateModel( name='ExclusionCriterion', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255, unique=True)), ('description', models.TextField(blank=True, default='')), ], options={ 'verbose_name_plural': 'exclusion criteria', }, ), migrations.CreateModel( name='Publication', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('cite_key', models.CharField(blank=True, max_length=255, null=True, unique=True)), ('title', models.CharField(max_length=255)), ('year', models.PositiveSmallIntegerField()), ('references_complete', models.BooleanField(default=False)), ('peer_reviewed', models.BooleanField(default=None, null=True)), ('classified', models.BooleanField(default=False)), ('first_page', models.PositiveSmallIntegerField(blank=True, default=None, null=True)), ('last_page', models.PositiveSmallIntegerField(blank=True, default=None, null=True)), ('doi', models.CharField(blank=True, default=None, max_length=255, null=True, unique=True)), ], ), migrations.CreateModel( name='SearchTerm', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255, unique=True)), ], ), migrations.CreateModel( name='Source', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255, unique=True)), ], ), migrations.CreateModel( name='Tag', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255, unique=True)), ('criteria', models.TextField(blank=True)), ('implies', models.ManyToManyField(blank=True, related_name='implied_by', to='sok.Tag')), ], ), migrations.CreateModel( name='SemanticScholar', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('paper_id', models.CharField(max_length=40, unique=True, validators=[django.core.validators.RegexValidator('^[a-f0-9]{40}$')])), ('publication', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='sok.publication')), ], options={ 'verbose_name_plural': 'semantic scholar', }, ), migrations.CreateModel( name='PublicationTag', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('comment', models.CharField(blank=True, max_length=255, null=True)), ('publication', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='sok.publication')), ('tag', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='sok.tag')), ], options={ 'unique_together': {('publication', 'tag')}, }, ), migrations.CreateModel( name='PublicationSource', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('publication', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='sok.publication')), ('search_term', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='sok.searchterm')), ('source', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='sok.source')), ], options={ 'unique_together': {('publication', 'source', 'search_term')}, }, ), migrations.CreateModel( name='PublicationReference', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('identifier', models.CharField(blank=True, default=None, max_length=255, null=True)), ('publication', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='sok.publication')), ('reference', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='cited_by', to='sok.publication')), ], options={ 'unique_together': {('publication', 'reference'), ('publication', 'identifier')}, }, ), migrations.CreateModel( name='PublicationAuthor', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('position', models.PositiveSmallIntegerField()), ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='sok.author')), ('publication', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='sok.publication')), ], options={ 'unique_together': {('publication', 'author'), ('publication', 'position')}, }, ), migrations.AddField( model_name='publication', name='authors', field=models.ManyToManyField(related_name='publications', through='sok.PublicationAuthor', to='sok.Author'), ), migrations.AddField( model_name='publication', name='exclusion_criteria', field=models.ManyToManyField(blank=True, related_name='publications', to='sok.ExclusionCriterion'), ), migrations.AddField( model_name='publication', name='references', field=models.ManyToManyField(related_name='referenced_by', through='sok.PublicationReference', to='sok.Publication'), ), migrations.AddField( model_name='publication', name='sources', field=models.ManyToManyField(related_name='publications', through='sok.PublicationSource', to='sok.Source'), ), migrations.AddField( model_name='publication', name='tags', field=models.ManyToManyField(related_name='publications', through='sok.PublicationTag', to='sok.Tag'), ), migrations.AddField( model_name='publication', name='variant_of', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='variants', to='sok.publication'), ), ]