Basically a fork from https://github.com/blochberger/sokman but with the intention of adding a visual interface as well
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

161 lines
7.6 KiB

# 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'),
),
]