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.
54 lines
1.7 KiB
54 lines
1.7 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),
|
|
]
|