diff --git a/atdb/taskdatabase/migrations/0029_auto_20230707_1135.py b/atdb/taskdatabase/migrations/0029_auto_20230707_1135.py new file mode 100644 index 0000000000000000000000000000000000000000..5be74df1eda870d30716c68a14ee501cb1b3e0fa --- /dev/null +++ b/atdb/taskdatabase/migrations/0029_auto_20230707_1135.py @@ -0,0 +1,35 @@ +# Generated by Django 3.1.4 on 2023-07-07 09:35 + +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone + + +class Migration(migrations.Migration): + + dependencies = [ + ('taskdatabase', '0028_remove_task_calculated_quality'), + ] + + operations = [ + migrations.AddField( + model_name='job', + name='timestamp', + field=models.DateTimeField(blank=True, default=django.utils.timezone.now), + ), + migrations.AddField( + model_name='task', + name='joined_input_tasks', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='joined_output_task', to='taskdatabase.task'), + ), + migrations.AlterField( + model_name='status', + name='timestamp', + field=models.DateTimeField(blank=True, default=django.utils.timezone.now), + ), + migrations.AlterField( + model_name='task', + name='creationTime', + field=models.DateTimeField(blank=True, default=django.utils.timezone.now, verbose_name='CreationTime'), + ), + ] diff --git a/atdb/taskdatabase/migrations/0030_auto_20230707_1144.py b/atdb/taskdatabase/migrations/0030_auto_20230707_1144.py new file mode 100644 index 0000000000000000000000000000000000000000..7a1a9a579b753a60e50eec5c5bb6affc9a46b512 --- /dev/null +++ b/atdb/taskdatabase/migrations/0030_auto_20230707_1144.py @@ -0,0 +1,23 @@ +# Generated by Django 3.1.4 on 2023-07-07 09:44 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('taskdatabase', '0029_auto_20230707_1135'), + ] + + operations = [ + migrations.RemoveField( + model_name='task', + name='joined_input_tasks', + ), + migrations.AddField( + model_name='task', + name='joined_output_task', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='joined_input_tasks', to='taskdatabase.task'), + ), + ] diff --git a/atdb/taskdatabase/models.py b/atdb/taskdatabase/models.py index a5229de285189874f4487ecb35a31dc4fb5b4851..1be1e5a9eb8e2f4172af34f984543de896293d9d 100644 --- a/atdb/taskdatabase/models.py +++ b/atdb/taskdatabase/models.py @@ -123,6 +123,7 @@ class Task(models.Model): # relationships workflow = models.ForeignKey(Workflow, related_name='tasks', on_delete=models.CASCADE, null=True, blank=True) predecessor = models.ForeignKey('self', related_name='successors', on_delete=models.SET_NULL, null=True, blank=True) + joined_output_task = models.ForeignKey('self', related_name='joined_input_tasks', on_delete=models.SET_NULL, null=True, blank=True) def __str__(self): return str(self.id) + ' - (' + self.task_type + ') - ' + str(self.sas_id) @@ -384,6 +385,7 @@ class Job(models.Model): type = models.CharField(db_index=True, max_length=20, default=None,null=True, blank=True) task_id = models.IntegerField(null=True, blank=True) job_id = models.IntegerField(null=True, blank=True) + timestamp = models.DateTimeField(default=timezone.now, blank=True) metadata = models.JSONField(null=True, blank=True) # the representation of the value in the REST API diff --git a/atdb/taskdatabase/serializers.py b/atdb/taskdatabase/serializers.py index 9253fe93ac4668045595332b031cbfe6f9b4a17e..37341fdab51f2fd5bfdfc2b1ef04b9a041634152 100644 --- a/atdb/taskdatabase/serializers.py +++ b/atdb/taskdatabase/serializers.py @@ -37,7 +37,7 @@ class TaskWriteSerializer(serializers.ModelSerializer): class Meta: model = Task - fields = ('id','task_type','filter','predecessor','successors', + fields = ('id','task_type','filter','predecessor','successors','joined_input_tasks','joined_output_task', 'project','sas_id','priority','purge_policy','cleanup_policy','resume', 'new_workflow_id','new_workflow_uri','workflow', 'stage_request_id', @@ -91,7 +91,7 @@ class TaskReadSerializer(serializers.ModelSerializer): class Meta: model = Task fields = ['id','task_type','creationTime','filter', - 'predecessor','predecessor_status','successors', + 'predecessor','predecessor_status','successors', 'joined_input_tasks','joined_output_task', 'project','sas_id','priority','purge_policy','cleanup_policy','resume', 'workflow', 'stage_request_id', @@ -123,6 +123,7 @@ class TaskReadSerializerFast(serializers.ModelSerializer): class Meta: model = Task fields = ['id','task_type','creationTime','filter','predecessor','predecessor_status', + 'joined_input_tasks', 'joined_output_task', 'project','sas_id','priority','purge_policy','cleanup_policy','resume', 'workflow', 'stage_request_id', @@ -159,7 +160,7 @@ class JobSerializer(serializers.ModelSerializer): class Meta: model = Job fields = "__all__" - fields = ['id','type','task_id','job_id','metadata','webdav_url'] + fields = ['id','type','task_id','job_id','timestamp','metadata','webdav_url'] class PostProcessingRuleSerializer(serializers.ModelSerializer):