示例#1
0
    def register_object(content_type_id, object_id, field_id):
        transition_approvements = TransitionApprovement.objects.filter(content_type__pk=content_type_id, object_id=object_id, field__pk=field_id)
        if transition_approvements.count() == 0:
            ApprovementService.init_approvements(content_type_id, object_id, field_id)

        initial_state = StateService.get_init_state(content_type_id, field_id)
        obj = Object.objects.get(object_id=object_id)
        obj.state = initial_state
        obj.save()

        return {'state': initial_state.details()}
示例#2
0
 def init_approvements(content_type_id, obj_id, field_id):
     content_type = ExternalContentType.objects.get(pk=content_type_id)
     field = Field.objects.get(pk=field_id)
     for transition_approve_definition in TransitionApproveDefinition.objects.filter(transition__content_type__pk=content_type_id, transition__field__pk=field_id):
         TransitionApprovement.objects.update_or_create(
             approve_definition=transition_approve_definition,
             object_id=obj_id,
             content_type=content_type,
             field=field,
             defaults={
                 'status': PENDING
             }
         )
     init_state = StateService.get_init_state(content_type_id, field_id)
     Object.objects.update_or_create(object_id=obj_id, content_type=content_type, field=field, defaults={'state': init_state})
示例#3
0
    def test_init(self):
        test_obj = TestModel.objects.get(pk=5001)
        ct = ExternalContentType.objects.get(pk=1501)

        field = Field.objects.get(pk=3501)

        obj = Object.objects.get_object_or_None(object_id=test_obj.pk)
        self.assertIsNone(obj)

        ObjectService.register_object(ct.pk, 5001, field.pk)
        ObjectService.register_object(ct.pk, 5002, field.pk)

        obj = Object.objects.get_object_or_None(object_id=test_obj.pk)
        self.assertIsNotNone(obj)

        initial_state = StateService.get_init_state(ct.pk, field.pk)

        self.assertEqual(initial_state, obj.state)
        self.assertEqual(18, TransitionApprovement.objects.count())
    def test_register_object(self):
        test_obj = TestModel.objects.get(pk=5001)
        ct = ExternalContentType.objects.get(pk=1501)

        field = Field.objects.get(pk=3501)

        obj = Object.objects.get_object_or_None(object_id=test_obj.pk)
        self.assertIsNone(obj)

        self.assertEqual(0, TransitionApprovement.objects.count())

        result = self.client.post(reverse('riverio.apps.web.views.restful.register_object', args=[ct.pk, test_obj.pk, field.pk]), **{settings.TOKEN_KEY: Application.objects.get(pk=501).token})

        obj = Object.objects.get_object_or_None(object_id=test_obj.pk)
        self.assertIsNotNone(obj)

        self.assertEqual(OK, result.status_code)
        initial_state = StateService.get_init_state(ct.pk, field.pk)
        self.assertEqual(initial_state, obj.state)
        self.assertEqual(9, TransitionApprovement.objects.count())