Beispiel #1
0
def merge_task_record(data):
    task_id = data.get("task_id")
    page_current = data.get("page_current") if data.get("page_current") else 1
    ret = {}
    task_record = models.TaskRecord.objects.filter(task_id=task_id).order_by("-id")
    ret["page"] = public.paging_algorithm(len(task_record), page_current)
    if ret["page"]:
        task_record = task_record[ret["page"]["start"]:ret["page"]["end"]]
    ret["task"] = []
    for record in task_record:
        tmp_task = model_to_dict(record)
        tmp_task["name"] = json.loads(tmp_task["options"]).get("name")
        tmp_task["params"] = json.loads(tmp_task["params"]) if tmp_task["params"] else {}
        task_record_id = record.id
        tmp_task["sub_task"] = []
        sub_record = models.SubTaskRecord.objects.filter(task_record_id=task_record_id).order_by("id")
        for sub in sub_record:
            tmp_sub = model_to_dict(sub, exclude=["createTime", "runStartTime", "runEndTime"])
            tmp_sub["name"] = json.loads(tmp_sub["options"]).get("name")
            del tmp_sub["options"]
            job_record = models.JobRecord.objects.filter(task_record_id=task_record_id,
                                                         subtask_record_id=sub.id).order_by("id")
            tmp_sub["job"] = []
            for job in job_record:
                tmp_job = model_to_dict(job, exclude=["createTime", "runStartTime", "runEndTime"])
                tmp_job["options"] = json.loads(tmp_job["options"])
                tmp_job["name"] = tmp_job["options"].get("name")
                tmp_sub["job"].append(tmp_job)
            tmp_task["sub_task"].append(tmp_sub)
        ret["task"].append(tmp_task)
    return ret
Beispiel #2
0
def get_user_info(data):
    work_id = data.get("work_id")
    flag = data.get("flag")
    q = data.get("q")
    ret = {}
    if not work_id:
        return ret
    if q:
        qset = Q(mail__icontains=q) | Q(name__icontains=q) | Q(
            depart__icontains=q)
        user = models.UserInfo.objects.filter(qset)
    else:
        user = models.UserInfo.objects.all()
    if work_id:
        work_id = int(work_id)
    user_list = []
    admin_list = []
    for u in user:
        tmp = model_to_dict(u)
        del tmp["options"]
        auth, created = models.Authorization.objects.get_or_create(
            user_id=u.id, work_id=work_id)
        tmp["admin"] = auth.admin
        tmp["write"] = auth.write
        if flag == public.SUPER_FLAG:
            if tmp["auth"]:
                admin_list.append(tmp)
            elif tmp["admin"]:
                user_list.insert(0, tmp)
            else:
                user_list.append(tmp)
        else:
            if tmp["admin"]:
                admin_list.append(tmp)
            elif tmp["write"]:
                user_list.insert(0, tmp)
            else:
                user_list.append(tmp)
    if admin_list:
        user_list = admin_list + user_list

    page_current = data.get("page_current", 1)
    if not page_current:
        page_current = 1
    else:
        page_current = int(page_current)
    page = public.paging_algorithm(len(user_list), page_current, 50)
    ret["page"] = page
    ret["user_list"] = user_list
    if page:
        ret["user_list"] = user_list[page["start"]:page["end"]]
    return ret
Beispiel #3
0
def get_user_info(data):
    work_id = data.get("work_id")
    flag = data.get("flag")
    q = data.get("q")
    ret = {}
    if not work_id:
        return ret
    if q:
        qset = Q(mail__icontains=q) | Q(name__icontains=q) | Q(depart__icontains=q)
        user = models.UserInfo.objects.filter(qset)
    else:
        user = models.UserInfo.objects.all()
    if work_id:
        work_id = int(work_id)
    user_list = []
    admin_list = []
    for u in user:
        tmp = model_to_dict(u)
        del tmp["options"]
        auth, created = models.Authorization.objects.get_or_create(user_id=u.id, work_id=work_id)
        tmp["admin"] = auth.admin
        tmp["write"] = auth.write
        if flag == public.SUPER_FLAG:
            if tmp["auth"]:
                admin_list.append(tmp)
            elif tmp["admin"]:
                user_list.insert(0, tmp)
            else:
                user_list.append(tmp)
        else:
            if tmp["admin"]:
                admin_list.append(tmp)
            elif tmp["write"]:
                user_list.insert(0, tmp)
            else:
                user_list.append(tmp)
    if admin_list:
        user_list = admin_list + user_list

    page_current = data.get("page_current", 1)
    if not page_current:
        page_current = 1
    else:
        page_current = int(page_current)
    page = public.paging_algorithm(len(user_list), page_current, 50)
    ret["page"] = page
    ret["user_list"] = user_list
    if page:
        ret["user_list"] = user_list[page["start"]:page["end"]]
    return ret
Beispiel #4
0
def get_user_info(data):

    work_id = data.get("work_id")
    flag = data.get("flag")
    q = data.get("q")

    if q:
        qset = Q(mail__icontains=q) | Q(name__icontains=q) | Q(
            depart__icontains=q)
        user = models.UserInfo.objects.filter(qset)
    else:
        user = models.UserInfo.objects.all()

    ret = []
    if work_id:
        work_id = int(work_id)
    for u in user:
        tmp = {}
        tmp["id"] = u.id
        tmp["mail"] = u.mail
        tmp["name"] = u.name
        tmp["depart"] = u.depart
        tmp["super"] = u.super
        auth, created = models.Authorization.objects.get_or_create(
            user_id=u.id, work_id=work_id)
        tmp["admin"] = auth.admin
        tmp["write"] = auth.write
        if flag == 1:
            if tmp["admin"] or tmp["super"]:
                ret.insert(0, tmp)
            else:
                ret.append(tmp)
        else:
            if tmp["admin"] or tmp["write"]:
                ret.insert(0, tmp)
            else:
                ret.append(tmp)
    page_current = data.get("page_current", 1)
    if not page_current:
        page_current = 1
    else:
        page_current = int(page_current)

    data["page"] = public.paging_algorithm(len(ret), page_current)
    if data["page"]:
        ret = ret[data["page"]["start"]:data["page"]["end"]]
    data["user_list"] = ret
    return data
Beispiel #5
0
def get_user_info(data):

    work_id = data.get("work_id")
    flag = data.get("flag")
    q = data.get("q")

    if q:
        qset = Q(mail__icontains=q) | Q(name__icontains=q) | Q(depart__icontains=q)
        user = models.UserInfo.objects.filter(qset)
    else:
        user = models.UserInfo.objects.all()

    ret = []
    if work_id:
        work_id = int(work_id)
    for u in user:
        tmp = {}
        tmp["id"] = u.id
        tmp["mail"] = u.mail
        tmp["name"] = u.name
        tmp["depart"] = u.depart
        tmp["super"] = u.super
        auth, created = models.Authorization.objects.get_or_create(user_id=u.id, work_id=work_id)
        tmp["admin"] = auth.admin
        tmp["write"] = auth.write
        if flag == 1:
            if tmp["admin"] or tmp["super"]:
                ret.insert(0, tmp)
            else:
                ret.append(tmp)
        else:
            if tmp["admin"] or tmp["write"]:
                ret.insert(0, tmp)
            else:
                ret.append(tmp)
    page_current = data.get("page_current", 1)
    if not page_current:
        page_current = 1
    else:
        page_current = int(page_current)

    data["page"] = public.paging_algorithm(len(ret), page_current)
    if data["page"]:
        ret = ret[data["page"]["start"]:data["page"]["end"]]
    data["user_list"] = ret
    return data
Beispiel #6
0
def merge_task_record(data):
    task_id = data.get("task_id")
    page_current = data.get("page_current") if data.get("page_current") else 1
    ret = {}
    task_record = models.TaskRecord.objects.filter(
        task_id=task_id).order_by("-id")
    ret["page"] = public.paging_algorithm(len(task_record), page_current)
    if ret["page"]:
        task_record = task_record[ret["page"]["start"]:ret["page"]["end"]]
    ret["task"] = []
    for record in task_record:
        tmp_task = model_to_dict(record)
        tmp_task["name"] = json.loads(tmp_task["options"]).get("name")
        tmp_task["params"] = json.loads(
            tmp_task["params"]) if tmp_task["params"] else {}
        task_record_id = record.id
        tmp_task["sub_task"] = []
        sub_record = models.SubTaskRecord.objects.filter(
            task_record_id=task_record_id).order_by("id")
        for sub in sub_record:
            tmp_sub = model_to_dict(
                sub, exclude=["createTime", "runStartTime", "runEndTime"])
            tmp_sub["name"] = json.loads(tmp_sub["options"]).get("name")
            del tmp_sub["options"]
            job_record = models.JobRecord.objects.filter(
                task_record_id=task_record_id,
                subtask_record_id=sub.id).order_by("id")
            tmp_sub["job"] = []
            for job in job_record:
                tmp_job = model_to_dict(
                    job, exclude=["createTime", "runStartTime", "runEndTime"])
                tmp_job["options"] = json.loads(tmp_job["options"])
                tmp_job["name"] = tmp_job["options"].get("name")
                tmp_sub["job"].append(tmp_job)
            tmp_task["sub_task"].append(tmp_sub)
        ret["task"].append(tmp_task)
    return ret
Beispiel #7
0
def get_api_list(request):
    '''
    获取所有接口信息
    :param request:
    :return:
    '''
    q = request.GET.get("q", "")
    if q.startswith("/"):
        q1 = q[1:]
    else:
        q1 = "/" + q
    in_q = request.GET.get("in_q", "")
    if in_q.startswith("/"):
        in_q1 = in_q[1:]
    else:
        in_q1 = "/" + in_q
    work_id = request.GET.get("work_id", "")
    group_id = request.GET.get("group_id", "")
    page_current = request.GET.get("page_current")
    days = request.GET.get("days")
    o = request.GET.get("o")
    user = request.session.get("django_mail")

    if not page_current:
        page_current = 1
    else:
        page_current = int(page_current)
    qset = None
    if q:
        qset = Q(name__icontains=q) | Q(url_param__icontains=q) | Q(url_param__icontains=q1) | Q(user__icontains=q)
    elif in_q:
        qset = Q(name__icontains=in_q) | Q(url_param__icontains=in_q) | Q(url_param__icontains=in_q1) | Q(
            user__icontains=in_q)
    if qset:
        api = models.Api.objects.filter(qset)
    else:
        api = models.Api.objects.all()
    group_list = []
    if work_id:
        group = models.ApiGroup.objects.filter(work_id=work_id)
    else:
        group = models.ApiGroup.objects.all()
    for g in group:
        group_list.append(g.id)

    if group_list:
        if not group_id:
            api = api.filter(group_id__in=group_list)
        elif int(group_id) in group_list:
            api = api.filter(group_id=group_id)
        else:
            api = []
    else:
        api = []
    if days:
        days = int(days)
        now = datetime.datetime.now()
        days = now - datetime.timedelta(days=days)
        if api:
            api = api.filter(modify__gte=days)
    if api:
        if o:
            api = api.order_by(o)
        else:
            api = api.order_by("-id")
    data = {}
    data["page"] = public.paging_algorithm(len(api), page_current)
    if data["page"]:
        api = api[data["page"]["start"]:data["page"]["end"]]

    data["api_list"] = []
    collection = models.ApiCollection.objects.filter(user=user)
    for a in api:
        tmp = {}
        tmp["id"] = a.id
        tmp["collection"] = collection.filter(api_id=tmp["id"])
        tmp["group_id"] = a.group_id
        tmp["group"] = get_api_group_dict(tmp["group_id"])
        tmp["work"] = get_api_work_dict(tmp["group"]["work_id"])
        tmp["name"] = a.name
        tmp["url"] = a.url
        tmp["url_param"] = a.url_param
        tmp["status"] = int(a.status)
        tmp["request_type"] = int(a.request_type)
        tmp["is_show"] = a.is_show
        tmp["version"] = a.version
        tmp["user"] = a.user
        tmp["badge"] = a.badge
        if tmp["user"]:
            tmp["user_name"] = a.user.split("@")[0]
        else:
            tmp["user_name"] = ""
        data["api_list"].append(tmp)
    return data