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