diff --git a/apiserver/plane/ee/migrations/0038_importreport_completed_batch_count_and_more.py b/apiserver/plane/ee/migrations/0038_importreport_completed_batch_count_and_more.py new file mode 100644 index 0000000000..00e5b0de46 --- /dev/null +++ b/apiserver/plane/ee/migrations/0038_importreport_completed_batch_count_and_more.py @@ -0,0 +1,30 @@ +# Generated by Django 4.2.21 on 2025-06-06 12:24 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('db', '0096_user_is_email_valid_user_masked_at'), + ('ee', '0037_pageuser_pageuser_unique_page_user_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='importreport', + name='completed_batch_count', + field=models.IntegerField(default=0), + ), + migrations.AlterField( + model_name='importjob', + name='project', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='jobs', to='db.project'), + ), + migrations.AlterField( + model_name='importjob', + name='status', + field=models.CharField(choices=[('PROGRESSING', 'Progressing'), ('CREATED', 'Created'), ('QUEUED', 'Queued'), ('INITIATED', 'Initiated'), ('PULLING', 'Pulling'), ('PULLED', 'Pulled'), ('TRANSFORMING', 'Transforming'), ('PUSHING', 'Pushing'), ('FINISHED', 'Finished'), ('ERROR', 'Error'), ('CANCELLED', 'Cancelled')], default='CREATED', max_length=20), + ), + ] diff --git a/apiserver/plane/ee/models/job.py b/apiserver/plane/ee/models/job.py index 215c35ce8c..b164966c38 100644 --- a/apiserver/plane/ee/models/job.py +++ b/apiserver/plane/ee/models/job.py @@ -10,6 +10,7 @@ class ImportReport(BaseModel): total_batch_count = models.IntegerField(default=0) imported_batch_count = models.IntegerField(default=0) errored_batch_count = models.IntegerField(default=0) + completed_batch_count = models.IntegerField(default=0) # issues information total_issue_count = models.IntegerField(default=0) imported_issue_count = models.IntegerField(default=0) @@ -31,6 +32,7 @@ class ImportReport(BaseModel): class ImportJob(BaseModel): class JobStatus(TextChoices): + PROGRESSING = "PROGRESSING", "Progressing" CREATED = "CREATED", "Created" QUEUED = "QUEUED", "Queued" INITIATED = "INITIATED", "Initiated" @@ -51,7 +53,7 @@ class ImportJob(BaseModel): related_name="jobs", ) project = models.ForeignKey( - "db.Project", on_delete=models.CASCADE, related_name="jobs" + "db.Project", on_delete=models.CASCADE, null=True, related_name="jobs" ) workspace = models.ForeignKey( "db.Workspace", on_delete=models.CASCADE, related_name="jobs" diff --git a/apiserver/plane/ee/serializers/api/job.py b/apiserver/plane/ee/serializers/api/job.py index 5faf8a3fb0..46a84214ba 100644 --- a/apiserver/plane/ee/serializers/api/job.py +++ b/apiserver/plane/ee/serializers/api/job.py @@ -23,7 +23,10 @@ class ImportJobAPISerializer(BaseSerializer): source="workspace", queryset=Workspace.objects.all() ) project_id = serializers.PrimaryKeyRelatedField( - source="project", queryset=Project.objects.all() + source="project", + queryset=Project.objects.all(), + required=False, + allow_null=True, ) initiator_id = serializers.PrimaryKeyRelatedField( source="initiator", queryset=User.objects.all()