From 5b2ec10c5fdbfc2579683d8f227b3a39197b76a0 Mon Sep 17 00:00:00 2001
From: Vermaas <vermaas@astron.nl>
Date: Fri, 23 Jun 2023 08:28:57 +0200
Subject: [PATCH] database change, calculated_qualities as jsonfield

---
 .../0027_task_calculated_qualities.py          | 18 ++++++++++++++++++
 .../0028_remove_task_calculated_quality.py     | 17 +++++++++++++++++
 atdb/taskdatabase/models.py                    |  2 +-
 atdb/taskdatabase/serializers.py               |  6 +++---
 atdb/taskdatabase/views.py                     |  1 -
 5 files changed, 39 insertions(+), 5 deletions(-)
 create mode 100644 atdb/taskdatabase/migrations/0027_task_calculated_qualities.py
 create mode 100644 atdb/taskdatabase/migrations/0028_remove_task_calculated_quality.py

diff --git a/atdb/taskdatabase/migrations/0027_task_calculated_qualities.py b/atdb/taskdatabase/migrations/0027_task_calculated_qualities.py
new file mode 100644
index 00000000..70a41edf
--- /dev/null
+++ b/atdb/taskdatabase/migrations/0027_task_calculated_qualities.py
@@ -0,0 +1,18 @@
+# Generated by Django 3.1.4 on 2023-06-21 07:08
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('taskdatabase', '0026_task_calculated_quality'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='task',
+            name='calculated_qualities',
+            field=models.JSONField(blank=True, null=True),
+        ),
+    ]
diff --git a/atdb/taskdatabase/migrations/0028_remove_task_calculated_quality.py b/atdb/taskdatabase/migrations/0028_remove_task_calculated_quality.py
new file mode 100644
index 00000000..5873eba6
--- /dev/null
+++ b/atdb/taskdatabase/migrations/0028_remove_task_calculated_quality.py
@@ -0,0 +1,17 @@
+# Generated by Django 3.1.4 on 2023-06-21 07:46
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('taskdatabase', '0027_task_calculated_qualities'),
+    ]
+
+    operations = [
+        migrations.RemoveField(
+            model_name='task',
+            name='calculated_quality',
+        ),
+    ]
diff --git a/atdb/taskdatabase/models.py b/atdb/taskdatabase/models.py
index 7793f604..e0615e79 100644
--- a/atdb/taskdatabase/models.py
+++ b/atdb/taskdatabase/models.py
@@ -77,7 +77,7 @@ class Task(models.Model):
     new_status = models.CharField(max_length=50, default="defining", null=True)
     status = models.CharField(db_index=True, default="unknown", max_length=50,blank=True, null=True)
     quality = models.CharField(max_length=10,blank=True, null=True)
-    calculated_quality = models.CharField(max_length=10, blank=True, null=True)
+    calculated_qualities = models.JSONField(null=True, blank=True)
 
     resume = models.BooleanField(verbose_name="Resume", default=True)
     creationTime = models.DateTimeField(verbose_name="CreationTime",default=datetime.utcnow, blank=True)
diff --git a/atdb/taskdatabase/serializers.py b/atdb/taskdatabase/serializers.py
index 82b0240a..3b19c5d5 100644
--- a/atdb/taskdatabase/serializers.py
+++ b/atdb/taskdatabase/serializers.py
@@ -41,7 +41,7 @@ class TaskWriteSerializer(serializers.ModelSerializer):
                   'project','sas_id','priority','purge_policy','cleanup_policy','resume',
                   'new_workflow_id','new_workflow_uri','workflow',
                   'stage_request_id',
-                  'status','new_status','quality','calculated_quality',
+                  'status','new_status','quality','calculated_qualities',
                   'inputs','outputs','metrics','status_history','remarks',
                   'size_to_process','size_processed','total_processing_time',
                   'log_entries','meta_scheduling','environment','archive'
@@ -95,7 +95,7 @@ class TaskReadSerializer(serializers.ModelSerializer):
                   'project','sas_id','priority','purge_policy','cleanup_policy','resume',
                   'workflow',
                   'stage_request_id',
-                  'status','new_status','quality','calculated_quality',
+                  'status','new_status','quality','calculated_qualities',
                   'inputs','outputs','metrics','remarks','status_history',
                   'size_to_process', 'size_processed', 'total_processing_time',
                   'log_entries','meta_scheduling','environment','archive'
@@ -126,7 +126,7 @@ class TaskReadSerializerFast(serializers.ModelSerializer):
                   'project','sas_id','priority','purge_policy','cleanup_policy','resume',
                   'workflow',
                   'stage_request_id',
-                  'status','new_status','quality','calculated_quality',
+                  'status','new_status','quality','calculated_qualities',
                   'inputs','outputs','metrics','archive',
                   'size_to_process', 'size_processed', 'total_processing_time',
                   ]
diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py
index 9ea5e92d..f732752c 100644
--- a/atdb/taskdatabase/views.py
+++ b/atdb/taskdatabase/views.py
@@ -61,7 +61,6 @@ class TaskFilter(filters.FilterSet):
             'sas_id': ['exact', 'icontains', 'in'],
             'status': ['exact', 'icontains', 'in', 'startswith'],
             'quality': ['exact', 'icontains', 'in', 'startswith'],
-            'calculated_quality': ['exact', 'icontains', 'in'],
             'purge_policy': ['exact'],
             'cleanup_policy': ['exact','icontains','in'],
             'priority': ['exact', 'lte', 'gte'],
-- 
GitLab