Example #1
0
 def get(self, request, *args, **kwargs):
     """
     获取工作流详情
     :param request:
     :param args:
     :param kwargs:
     :return:
     """
     workflow_id = kwargs.get('workflow_id')
     app_name = request.META.get('HTTP_APPNAME')
     # 判断是否有工作流的权限
     app_permission, msg = account_base_service_ins.app_workflow_permission_check(
         app_name, workflow_id)
     if not app_permission:
         return api_response(
             -1,
             'APP:{} have no permission to get this workflow info'.format(
                 app_name), '')
     flag, workflow_result = workflow_base_service_ins.get_by_id(
         workflow_id)
     if flag is False:
         code, msg, data = -1, workflow_result, {}
     else:
         data = dict(
             name=workflow_result.name,
             description=workflow_result.description,
             notices=workflow_result.notices,
             view_permission_check=workflow_result.view_permission_check,
             limit_expression=workflow_result.limit_expression,
             display_form_str=workflow_result.display_form_str,
             creator=workflow_result.creator,
             gmt_created=str(workflow_result.gmt_created)[:19])
         code = 0
     return api_response(code, msg, data)
Example #2
0
    def get(self, request, *args, **kwargs):
        """
        获取工作流初始状态信息,包括状态详情以及允许的transition
        :param request:
        :param args:
        :param kwargs:
        :return:
        """
        workflow_id = kwargs.get('workflow_id')
        username = request.META.get('HTTP_USERNAME')

        app_name = request.META.get('HTTP_APPNAME')
        # 判断是否有工作流的权限
        app_permission, msg = account_base_service_ins.app_workflow_permission_check(
            app_name, workflow_id)
        if not app_permission:
            return api_response(
                -1,
                'APP:{} have no permission to get this workflow info'.format(
                    app_name), '')

        if not (workflow_id and username):
            return api_response(-1, '请提供username或workflow_id', '')
        flag, state_result = workflow_state_service_ins.get_workflow_init_state(
            workflow_id)
        if flag is not False:
            code, msg, data = 0, '', state_result
        else:
            code, msg, data = -1, state_result, ''
        return api_response(code, msg, data)
Example #3
0
    def post(self, request, *args, **kwargs):
        """
        新建工单,需要根据不同类型工单传的参数不一样
        :param request:
        :param args:
        :param kwargs:
        :return:
        """
        json_str = request.body.decode('utf-8')

        request_data_dict = json.loads(json_str)

        app_name = request.META.get('HTTP_APPNAME')
        request_data_dict.update(dict(username=request.META.get('HTTP_USERNAME')))

        # 判断是否有创建某工单的权限
        app_permission, msg = account_base_service_ins.app_workflow_permission_check(app_name, request_data_dict.get('workflow_id'))
        if not app_permission:
            return api_response(-1, 'APP:{} have no permission to create this workflow ticket'.format(app_name), '')

        flag, result = ticket_base_service_ins.new_ticket(request_data_dict, app_name)
        if flag:
            code, data = 0, {'ticket_id': result.get('new_ticket_id')}
        else:
            code, data = -1, {}
        return api_response(code, result, data)
Example #4
0
    def get(self, request, *args, **kwargs):
        """
        获取工作流详情
        :param request:
        :param args:
        :param kwargs:
        :return:
        """
        workflow_id = kwargs.get('workflow_id')

        app_name = request.META.get('HTTP_APPNAME')
        # 判断是否有工作流的权限
        app_permission, msg = account_base_service_ins.app_workflow_permission_check(
            app_name, workflow_id)
        if not app_permission:
            return api_response(
                -1,
                'APP:{} have no permission to get this workflow info'.format(
                    app_name), '')
        flag, workflow_result = workflow_base_service_ins.get_full_info_by_id(
            workflow_id)
        if flag is False:
            code, msg, data = -1, workflow_result, {}
        else:
            workflow_result['gmt_created'] = str(
                workflow_result['gmt_created'])[:19]
            code = 0
        return api_response(code, msg, workflow_result)
Example #5
0
    def post(self, request, *args, **kwargs):
        """
        新增工作流自定义字段
        :param request:
        :param args:
        :param kwargs:
        :return:
        """
        app_name = request.META.get('HTTP_APPNAME')
        username = request.META.get('HTTP_USERNAME')
        workflow_id = kwargs.get('workflow_id')
        # 判断是否有工作流的权限
        app_permission, msg = account_base_service_ins.app_workflow_permission_check(
            app_name, workflow_id)
        if not app_permission:
            return api_response(
                -1,
                'APP:{} have no permission to get this workflow info'.format(
                    app_name), '')
        json_str = request.body.decode('utf-8')
        if not json_str:
            return api_response(-1, 'post参数为空', {})
        request_data_dict = json.loads(json_str)
        field_key = request_data_dict.get('field_key', '')
        field_name = request_data_dict.get('field_name', '')
        field_type_id = request_data_dict.get('field_type_id', '')
        order_id = int(request_data_dict.get('order_id', 0))
        label = request_data_dict.get('label', '')
        description = request_data_dict.get('description', '')
        field_template = request_data_dict.get('field_template', '')
        default_value = request_data_dict.get('default_value', '')
        boolean_field_display = request_data_dict.get('boolean_field_display',
                                                      '')
        field_choice = request_data_dict.get('field_choice', '')
        flag, result = workflow_custom_field_service_ins.add_record(
            workflow_id, field_type_id, field_key, field_name, order_id,
            default_value, description, field_template, boolean_field_display,
            field_choice, label, username)

        if flag is not False:
            data = dict(
                value={'custom_field_id': result.get('custom_field_id')})
            code, msg, = 0, ''
        else:
            code, data, msg = -1, {}, result
        return api_response(code, msg, data)
Example #6
0
 def delete(self, request, *args, **kwargs):
     """删除记录"""
     app_name = request.META.get('HTTP_APPNAME')
     username = request.META.get('HTTP_USERNAME')
     workflow_id = kwargs.get('workflow_id')
     custom_field_id = kwargs.get('custom_field_id')
     # 判断是否有工作流的权限
     app_permission, msg = account_base_service_ins.app_workflow_permission_check(app_name, workflow_id)
     if not app_permission:
         return api_response(-1, 'APP:{} have no permission to get this workflow info'.format(app_name), '')
     flag, result = workflow_custom_field_service_ins.delete_record(custom_field_id)
     if flag is not False:
         data = dict(value={'custom_field_id': result})
         code, msg, = 0, ''
     else:
         code, data = -1, ''
     return api_response(code, msg, data)
Example #7
0
 def delete(self, request, *args, **kwargs):
     """
     删除工作流
     :param request:
     :param args:
     :param kwargs:
     :return:
     """
     app_name = request.META.get('HTTP_APPNAME')
     workflow_id = kwargs.get('workflow_id')
     # 判断是否有工作流的权限
     app_permission, msg = account_base_service_ins.app_workflow_permission_check(app_name, workflow_id)
     if not app_permission:
         return api_response(-1, 'APP:{} have no permission to get this workflow info'.format(app_name), '')
     flag, result = workflow_base_service_ins.delete_workflow(workflow_id)
     if flag is False:
         code, msg, data = -1, msg, {}
     else:
         code, msg, data = 0, '', {}
     return api_response(code, msg, data)