def test_apply_new_approve_definition(self):
        ct = ExternalContentType.objects.get(pk=1501)
        field = Field.objects.get(pk=3501)
        self.assertEqual(0, TransitionApprovement.objects.filter(object_id=5001, content_type=ct).count())
        ObjectService.register_object(ct.pk, 5001, field.pk)
        self.assertEqual(1, TransitionApprovement.objects.filter(object_id=5001, content_type=ct).count())

        transition = Transition.objects.create(content_type=ct, field=field, source_state=State.objects.get(pk=3002), destination_state=State.objects.get(pk=3003))

        cursor = connection.cursor()
        cursor.execute('''
        INSERT INTO %(transition_approve_definition_table)s('transition_id','permission_id','order')
        VALUES (%(transition_id)s,1001,0)

        ''' % {'transition_approve_definition_table': TransitionApproveDefinition._meta.db_table, 'transition_id': transition.pk})

        transition_approve_definition = TransitionApproveDefinition.objects.get(~Q(pk=6001))

        self.assertEqual(1, TransitionApprovement.objects.filter(object_id=5001, field=field, content_type=ct).count())

        ApproveDefinitionService.apply_new_approve_definition(transition_approve_definition)

        self.assertEqual(2, TransitionApprovement.objects.filter(object_id=5001, field=field, content_type=ct).count())

        transition_approve_definition.save()

        self.assertEqual(2, TransitionApprovement.objects.filter(object_id=5001, field=field, content_type=ct).count())
    def save(self, *args, **kwargs):
        from riverio.apps.base.service.approvedefinitionservice import ApproveDefinitionService

        super(TransitionApproveDefinition, self).save(*args, **kwargs)
        ApproveDefinitionService.apply_new_approve_definition(self)
 def create(self, **kwargs):
     transition_approve_definition = super(TransitionApproveDefinitionManager, self).create(**kwargs)
     ApproveDefinitionService.apply_new_approve_definition(transition_approve_definition)