Ejemplo n.º 1
0
def checklist_create(appname, projectname, applabel, module, uid, ids):
    '''
    this api to add checklist.
    Request URL: /<projectname>/auth/<applabel>/<modulename>/submit
    Parameters:
    {
        'app_name': 'homeadmin',
        'module_name': 'banner',
        'items': [1, 2, 3]
    }
    '''
    data = {"success": [], "failed": []}
    check_uids = []
    check_uids = get_check_uids(appname, projectname, applabel, module)
    ids = [int(id) for id in ids]
    for id in ids:
        info = update_status_by_id(appname, projectname, module, id, 1)
        if not info:
            data["failed"].append(id)
            continue
        cond = {
            "check_id": id, 'projectname': projectname, "submit_uid": uid,
            "app_name": applabel, "module_name": module}
        old_check_info = CheckList.find_one(appname, cond, {"_id": 0})
        if old_check_info:
            old_check_info["status"] = 1
            old_check_info["mark"] = ""
            old_check_info["check_uid"] = check_uids
            old_check_info["last_modified"] = now_timestamp()
            CheckList.update(appname, cond, old_check_info)
        else:
            checklist_instance = CheckList.new(
                projectname, applabel, module, id, uid, check_uids)
            CheckList.save(appname, checklist_instance)
        data["success"].append(info)
    _send_email_to_assessor(appname, projectname, module, uid, check_uids, ids)
    if data["failed"]:
        return json_response_error(PARAM_ERROR, data, msg="invalid id")
    return json_response_ok(data)