mirror of https://github.com/doccano/doccano.git
pythondatasetsactive-learningtext-annotationdatasetnatural-language-processingdata-labelingmachine-learningannotation-tool
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.
57 lines
1.8 KiB
57 lines
1.8 KiB
from django.db import migrations
|
|
|
|
|
|
def copy_label_to_subclass(apps, schema_editor):
|
|
Label = apps.get_model('api', 'Label')
|
|
for label in Label.objects.all():
|
|
project_type = label.project.project_type
|
|
if project_type.endswith('Classification'):
|
|
model = apps.get_model('api', 'CategoryType')
|
|
else:
|
|
model = apps.get_model('api', 'SpanType')
|
|
model.objects.create(
|
|
id=label.id,
|
|
text=label.text,
|
|
prefix_key=label.prefix_key,
|
|
suffix_key=label.suffix_key,
|
|
project=label.project,
|
|
background_color=label.background_color,
|
|
text_color=label.text_color,
|
|
created_at=label.created_at,
|
|
updated_at=label.updated_at
|
|
)
|
|
|
|
|
|
def delete_subclass_object(apps, schema_editor):
|
|
CategoryType = apps.get_model('api', 'CategoryType')
|
|
SpanType = apps.get_model('api', 'SpanType')
|
|
Label = apps.get_model('api', 'Label')
|
|
for model in [CategoryType, SpanType]:
|
|
for label in model.objects.all():
|
|
old_label = Label(
|
|
id=label.id,
|
|
text=label.text,
|
|
prefix_key=label.prefix_key,
|
|
suffix_key=label.suffix_key,
|
|
project=label.project,
|
|
background_color=label.background_color,
|
|
text_color=label.text_color,
|
|
created_at=label.created_at,
|
|
updated_at=label.updated_at
|
|
)
|
|
label.delete()
|
|
old_label.save()
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
('api', '0020_auto_20211221_1415'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.RunPython(
|
|
code=copy_label_to_subclass,
|
|
reverse_code=delete_subclass_object
|
|
),
|
|
]
|