Skip to content

Commit

Permalink
Elias
Browse files Browse the repository at this point in the history
  • Loading branch information
elias-boulharts committed Nov 24, 2023
1 parent 13de85f commit e93021c
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 15 deletions.
17 changes: 17 additions & 0 deletions service_catalog/migrations/0039_remove_approvalstep_next.py
Original file line number Diff line number Diff line change
@@ -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',
),
]
10 changes: 0 additions & 10 deletions service_catalog/models/approval_step.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
2 changes: 1 addition & 1 deletion service_catalog/models/approval_workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
5 changes: 3 additions & 2 deletions service_catalog/models/approval_workflow_state.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Original file line number Diff line number Diff line change
@@ -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


Expand Down Expand Up @@ -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)

Expand Down

0 comments on commit e93021c

Please sign in to comment.