Skip to content

Commit 9e20746

Browse files
authored
Merge pull request doccano#256 from chakki-works/enhance-backend-structure
Enhancement/Separate a Django application into API app and router app
2 parents 47e54e4 + cb1dce9 commit 9e20746

39 files changed

+273
-275
lines changed

.coveragerc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ omit =
55
app/server/migrations/*
66
app/server/templatetags/*
77
app/server/tests/*
8+
app/api/migrations/*
9+
app/api/tests/*
810

911
exclude_lines =
1012
pragma: no cover

app/api/__init__.py

Whitespace-only changes.
File renamed without changes.

app/api/apps.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
from django.apps import AppConfig
2+
3+
4+
class ApiConfig(AppConfig):
5+
name = 'api'
File renamed without changes.

app/server/filters.py renamed to app/api/filters.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from django.db.models import Count, Q
22
from django_filters.rest_framework import FilterSet, BooleanFilter
3+
34
from .models import Document
45

56

app/server/migrations/0001_initial.py renamed to app/api/migrations/0001_initial.py

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Generated by Django 2.1.7 on 2019-03-31 12:43
1+
# Generated by Django 2.1.7 on 2019-06-21 06:05
22

33
from django.conf import settings
44
from django.db import migrations, models
@@ -33,7 +33,7 @@ class Migration(migrations.Migration):
3333
('manual', models.BooleanField(default=False)),
3434
('created_at', models.DateTimeField(auto_now_add=True)),
3535
('updated_at', models.DateTimeField(auto_now=True)),
36-
('document', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='doc_annotations', to='server.Document')),
36+
('document', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='doc_annotations', to='api.Document')),
3737
],
3838
),
3939
migrations.CreateModel(
@@ -59,6 +59,7 @@ class Migration(migrations.Migration):
5959
('created_at', models.DateTimeField(auto_now_add=True)),
6060
('updated_at', models.DateTimeField(auto_now=True)),
6161
('project_type', models.CharField(choices=[('DocumentClassification', 'document classification'), ('SequenceLabeling', 'sequence labeling'), ('Seq2seq', 'sequence to sequence')], max_length=30)),
62+
('randomize_document_order', models.BooleanField(default=False)),
6263
],
6364
options={
6465
'abstract': False,
@@ -74,7 +75,7 @@ class Migration(migrations.Migration):
7475
('created_at', models.DateTimeField(auto_now_add=True)),
7576
('updated_at', models.DateTimeField(auto_now=True)),
7677
('text', models.TextField()),
77-
('document', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='seq2seq_annotations', to='server.Document')),
78+
('document', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='seq2seq_annotations', to='api.Document')),
7879
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
7980
],
8081
),
@@ -88,48 +89,48 @@ class Migration(migrations.Migration):
8889
('updated_at', models.DateTimeField(auto_now=True)),
8990
('start_offset', models.IntegerField()),
9091
('end_offset', models.IntegerField()),
91-
('document', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='seq_annotations', to='server.Document')),
92-
('label', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='server.Label')),
92+
('document', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='seq_annotations', to='api.Document')),
93+
('label', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.Label')),
9394
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
9495
],
9596
),
9697
migrations.CreateModel(
9798
name='Seq2seqProject',
9899
fields=[
99-
('project_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='server.Project')),
100+
('project_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='api.Project')),
100101
],
101102
options={
102103
'abstract': False,
103104
'base_manager_name': 'objects',
104105
},
105-
bases=('server.project',),
106+
bases=('api.project',),
106107
),
107108
migrations.CreateModel(
108109
name='SequenceLabelingProject',
109110
fields=[
110-
('project_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='server.Project')),
111+
('project_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='api.Project')),
111112
],
112113
options={
113114
'abstract': False,
114115
'base_manager_name': 'objects',
115116
},
116-
bases=('server.project',),
117+
bases=('api.project',),
117118
),
118119
migrations.CreateModel(
119120
name='TextClassificationProject',
120121
fields=[
121-
('project_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='server.Project')),
122+
('project_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='api.Project')),
122123
],
123124
options={
124125
'abstract': False,
125126
'base_manager_name': 'objects',
126127
},
127-
bases=('server.project',),
128+
bases=('api.project',),
128129
),
129130
migrations.AddField(
130131
model_name='project',
131132
name='polymorphic_ctype',
132-
field=models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_server.project_set+', to='contenttypes.ContentType'),
133+
field=models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_api.project_set+', to='contenttypes.ContentType'),
133134
),
134135
migrations.AddField(
135136
model_name='project',
@@ -139,12 +140,12 @@ class Migration(migrations.Migration):
139140
migrations.AddField(
140141
model_name='label',
141142
name='project',
142-
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='labels', to='server.Project'),
143+
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='labels', to='api.Project'),
143144
),
144145
migrations.AddField(
145146
model_name='documentannotation',
146147
name='label',
147-
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='server.Label'),
148+
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.Label'),
148149
),
149150
migrations.AddField(
150151
model_name='documentannotation',
@@ -154,7 +155,7 @@ class Migration(migrations.Migration):
154155
migrations.AddField(
155156
model_name='document',
156157
name='project',
157-
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='documents', to='server.Project'),
158+
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='documents', to='api.Project'),
158159
),
159160
migrations.AlterUniqueTogether(
160161
name='sequenceannotation',
@@ -166,7 +167,7 @@ class Migration(migrations.Migration):
166167
),
167168
migrations.AlterUniqueTogether(
168169
name='label',
169-
unique_together={('project', 'prefix_key', 'suffix_key'), ('project', 'text')},
170+
unique_together={('project', 'text'), ('project', 'prefix_key', 'suffix_key')},
170171
),
171172
migrations.AlterUniqueTogether(
172173
name='documentannotation',

app/api/migrations/__init__.py

Whitespace-only changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)