From e93021c343ed24a95d2bdef40c1b9cd192c9e988 Mon Sep 17 00:00:00 2001 From: elias-boulharts Date: Fri, 24 Nov 2023 16:39:43 +0100 Subject: [PATCH] Elias --- .../0039_remove_approvalstep_next.py | 17 +++++++++++++ service_catalog/models/approval_step.py | 10 -------- service_catalog/models/approval_workflow.py | 2 +- .../models/approval_workflow_state.py | 5 ++-- .../test_approval_workflow_version.py | 25 +++++++++++++++++-- 5 files changed, 44 insertions(+), 15 deletions(-) create mode 100644 service_catalog/migrations/0039_remove_approvalstep_next.py diff --git a/service_catalog/migrations/0039_remove_approvalstep_next.py b/service_catalog/migrations/0039_remove_approvalstep_next.py new file mode 100644 index 000000000..77928c8bb --- /dev/null +++ b/service_catalog/migrations/0039_remove_approvalstep_next.py @@ -0,0 +1,17 @@ +# Generated by Django 4.2.6 on 2023-11-24 13:14 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('service_catalog', '0038_alter_approvalworkflow_version'), + ] + + operations = [ + migrations.RemoveField( + model_name='approvalstep', + name='next', + ), + ] diff --git a/service_catalog/models/approval_step.py b/service_catalog/models/approval_step.py index 19e3b8087..37481b6fb 100644 --- a/service_catalog/models/approval_step.py +++ b/service_catalog/models/approval_step.py @@ -23,16 +23,6 @@ class Meta(SquestModel.Meta): name = CharField(max_length=100, blank=False) position = IntegerField(null=True, blank=True, default=0) - # TODO delete it + migration + test - # next = ForeignKey( - # "service_catalog.ApprovalStep", - # blank=True, - # null=True, - # default=None, - # on_delete=SET_NULL, - # related_name="previous" - # ) - permission = ForeignKey( Permission, on_delete=PROTECT, diff --git a/service_catalog/models/approval_workflow.py b/service_catalog/models/approval_workflow.py index 04efc6b3c..b27038bf8 100644 --- a/service_catalog/models/approval_workflow.py +++ b/service_catalog/models/approval_workflow.py @@ -50,7 +50,7 @@ def __str__(self): def instantiate(self): from service_catalog.models import ApprovalStepState from service_catalog.models import ApprovalWorkflowState - new_approval_workflow_state = ApprovalWorkflowState.objects.create(approval_workflow=self, version=10) + new_approval_workflow_state = ApprovalWorkflowState.objects.create(approval_workflow=self) for approval_step in self.approval_steps.all(): current_step_state = ApprovalStepState.objects.create( approval_workflow_state=new_approval_workflow_state, diff --git a/service_catalog/models/approval_workflow_state.py b/service_catalog/models/approval_workflow_state.py index 6336a986b..ca0089d37 100644 --- a/service_catalog/models/approval_workflow_state.py +++ b/service_catalog/models/approval_workflow_state.py @@ -79,5 +79,6 @@ def who_can_approve(self): @receiver(post_save, sender=ApprovalWorkflowState) def get_approval_workflow_version(sender, instance, created, **kwargs): if created: - instance.version = instance.approval_workflow.version - #TODO save missing + #TODO: doesn't work value was reset to 1 in tests + ApprovalWorkflowState.objects.filter(id=instance.id).update(version=instance.approval_workflow.version) + print(ApprovalWorkflowState.objects.get(id=instance.id).version) diff --git a/tests/test_service_catalog/test_models/test_approval_workflow_version.py b/tests/test_service_catalog/test_models/test_approval_workflow_version.py index 11f412fa5..473a3b716 100644 --- a/tests/test_service_catalog/test_models/test_approval_workflow_version.py +++ b/tests/test_service_catalog/test_models/test_approval_workflow_version.py @@ -1,5 +1,5 @@ -from service_catalog.models import ApprovalWorkflow, ApprovalStep, Instance, Request -from setup import SetupOperation, SetupOrg +from service_catalog.models import ApprovalWorkflow, ApprovalStep, Instance, Request, ApprovalWorkflowState +from tests.setup import SetupOperation, SetupOrg from tests.utils import TransactionTestUtils @@ -58,6 +58,27 @@ def test_approval_workflow_state_take_version_number(self): # Ensure that resetting doesn't increment version # test que quand aw avance aws avance pas pour etre sur + def test_approval_workflow_state_version_keep_created_version_after_add_step(self): + aw = ApprovalWorkflow.objects.create( + name="AW - All scopes", + operation=self.operation_create_1, + enabled=True + ) + # AW version is 1 + self.assertVersionEqual(aw, 1) + self.instance_1 = Instance.objects.create(name="Instance 1", quota_scope=self.org1, service=self.service_1) + self.request_1 = Request.objects.create(instance=self.instance_1, operation=self.operation_create_1) + # AW version is 1 even after an instantiate + self.assertVersionEqual(aw, 1) + self.assertVersionEqual(self.request_1.approval_workflow_state, 1) + ApprovalStep.objects.create(name="Step 1", approval_workflow=aw) + self.assertVersionEqual(aw, 2) + self.assertVersionEqual(self.request_1.approval_workflow_state, 1) + # TODO: doesn't work value was reset to 1 in tests + self.request_2 = Request.objects.create(instance=self.instance_1, operation=self.operation_create_1) + self.request_2.refresh_from_db() + self.assertVersionEqual(self.request_2.approval_workflow_state, 2) + # fonction dans AW qui cherche tous les aws qui ont la bonne version ( get_request_that_doesnt_need_update)