Exemple #1
0
    def patch(self, request, **kwargs):
        """
        修改树形结构,ID不能重复
        """
        try:
            body = request.data['body']
            mode = request.data['mode']

            relation = models.Relation.objects.get(id=kwargs['pk'])
            relation.tree = body
            relation.save()

        except KeyError:
            return Response(response.KEY_MISS)

        except ObjectDoesNotExist:
            return Response(response.SYSTEM_ERROR)

        #  mode -> True remove node
        if mode:
            prepare.tree_end(request.data, relation.project)

        response.TREE_UPDATE_SUCCESS['tree'] = body
        response.TREE_UPDATE_SUCCESS['max'] = get_tree_max_id(body)

        return Response(response.TREE_UPDATE_SUCCESS)
Exemple #2
0
    def get(self, request, **kwargs):
        """
        返回树形结构
        当前最带节点ID
        """

        try:
            print(request.query_params['type'])
            for k,v in kwargs.items():
                print(k,v)
            tree_type = request.query_params['type']
            tree = models.Relation.objects.get(project__id=kwargs['pk'], type=tree_type)
        except KeyError:
            return Response(response.KEY_MISS)

        except ObjectDoesNotExist:
            return Response(response.SYSTEM_ERROR)

        print(tree)
        print(type(tree))
        body = eval(tree.tree) # list
        print(body)
        tree = {
            "tree": body,
            "id": tree.id,
            "success": True,
            "max": get_tree_max_id(body)
        }
        return Response(tree)
    def get(self, request, **kwargs):
        """
        返回树形结构
        当前最带节点ID
        """

        try:
            tree_type = request.query_params['type']
        except KeyError:
            return Response(response.KEY_MISS)
        try:
            tree = models.Relation.objects.get(project_id=kwargs['pk'],
                                               type=tree_type)
            body = eval(tree.tree)
        except ObjectDoesNotExist as e:
            tree = models.Relation.objects.create(project_id=kwargs['pk'],
                                                  type=tree_type,
                                                  tree=[{
                                                      'id': 1,
                                                      'label': 'testdata',
                                                      'children': []
                                                  }])
            body = []

        tree = {
            "tree": body,
            "id": tree.id,
            "success": True,
            "max": get_tree_max_id(body)
        }
        return Response(tree)
Exemple #4
0
 def create_relation_id(self, project_id):
     category_id_name_mapping: dict = self.get_category_id_name_mapping()
     obj = models.Relation.objects.get(project_id=project_id, type=1)
     eval_tree: list = eval(obj.tree)
     yapi_catids: list = [yapi_catid for yapi_catid in get_all_ycatid(eval_tree, [])]
     if category_id_name_mapping is None:
         return
     for cat_id, cat_name in category_id_name_mapping.items():
         if cat_id not in yapi_catids:
             tree_id = get_tree_max_id(eval_tree)
             base_tree_node = {
                 "id": tree_id+1,
                 "yapi_catid": cat_id,
                 "label": cat_name,
                 "children": []
             }
             eval_tree.append(base_tree_node)
     obj.tree = json.dumps(eval_tree, ensure_ascii=False)
     obj.save()