From 332e4fe1801ae9cd837b9a6945bc49cd16754d79 Mon Sep 17 00:00:00 2001 From: Nico Vermaas <vermaas@astron.nl> Date: Mon, 1 Feb 2021 17:06:47 +0100 Subject: [PATCH] get rid of new_workflow_uri and new_workflow_id in models.py --- atdb/taskdatabase/models.py | 2 -- atdb/taskdatabase/serializers.py | 27 +++++++++++++++++++ atdb/taskdatabase/services/signals.py | 2 +- .../templates/taskdatabase/index.html | 2 +- 4 files changed, 29 insertions(+), 4 deletions(-) diff --git a/atdb/taskdatabase/models.py b/atdb/taskdatabase/models.py index 4251f655..ad672958 100644 --- a/atdb/taskdatabase/models.py +++ b/atdb/taskdatabase/models.py @@ -24,8 +24,6 @@ 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) - new_workflow_id = models.CharField(max_length=15, blank=True, null=True) - new_workflow_uri = models.CharField(max_length=100, blank=True, null=True) resume = models.BooleanField(default=True) creationTime = models.DateTimeField(default=datetime.utcnow, blank=True) diff --git a/atdb/taskdatabase/serializers.py b/atdb/taskdatabase/serializers.py index a1fc74d1..9db22fd5 100644 --- a/atdb/taskdatabase/serializers.py +++ b/atdb/taskdatabase/serializers.py @@ -41,6 +41,9 @@ class TaskSerializer(serializers.ModelSerializer): required=False, ) + new_workflow_id = serializers.SerializerMethodField() # no corresponding model property. + new_workflow_uri = serializers.SerializerMethodField() # no corresponding model property. + class Meta: model = Task fields = ('id','task_type','filter','predecessor','successors', @@ -52,6 +55,30 @@ class TaskSerializer(serializers.ModelSerializer): 'log_entries' ) + def get_new_workflow_id(self, instance): + return instance.workflow.id + + def get_new_workflow_uri(self, instance): + return instance.workflow.workflow_uri + + def create(self, validated_data): + task = Task.objects.create(**validated_data) + + workflow_uri = self.initial_data['new_workflow_uri'] + if workflow_uri: + #workflow_uri = validated_data['new_workflow_uri'] + workflow = Workflow.objects.get(workflow_uri=workflow_uri) + task.workflow = workflow + task.save() + return task + + workflow_id = self.initial_data['new_workflow_id'] + if workflow_id: + workflow = Workflow.objects.get(id=workflow_id) + task.workflow = workflow + task.save() + return task + class StatusSerializer(serializers.ModelSerializer): diff --git a/atdb/taskdatabase/services/signals.py b/atdb/taskdatabase/services/signals.py index 5edb49aa..a955fe09 100644 --- a/atdb/taskdatabase/services/signals.py +++ b/atdb/taskdatabase/services/signals.py @@ -143,7 +143,7 @@ def handle_post_save(sender, **kwargs): myStatus.save() # connect the task to a workflow after posting a (flat) task through the REST API - myTaskObject = add_workflow(myTaskObject) + #myTaskObject = add_workflow(myTaskObject) #myTaskObject = add_predecessor(myTaskObject) # temporarily disconnect the post_save handler to save the dataproduct (again) and avoiding recursion. diff --git a/atdb/taskdatabase/templates/taskdatabase/index.html b/atdb/taskdatabase/templates/taskdatabase/index.html index cf58afcb..bc40666a 100644 --- a/atdb/taskdatabase/templates/taskdatabase/index.html +++ b/atdb/taskdatabase/templates/taskdatabase/index.html @@ -44,7 +44,7 @@ </div> {% include 'taskdatabase/pagination.html' %} </div> - <p class="footer"> Version 1.0.0 (29 jan 2021 - 16:00) + <p class="footer"> Version 1.0.0 (1 feb 2021 - 17:00) <script type="text/javascript"> (function(seconds) { var refresh, -- GitLab