def create(appname, MODELNAME, data): cond = {"title": data["title"]} if MODELNAME.find_one(appname, cond): return json_response_error(DUPLICATE_FIELD, msg="the title exist") info_instance = MODELNAME.new(data) MODELNAME.save(appname, info_instance) _LOGGER.info("add a new %s:%s", MODELNAME.model_name, data["title"]) # get added info info = MODELNAME.find_one(appname, cond, MODELNAME.fields) info = get_list_page_info(info) return json_response_ok(info)
def info_list( appname, modelName, cond, page=0, page_size=PAGE_SIZE, sort=None): info_cursor = modelName.find(appname, cond, None) if sort is not None: info_cursor = info_cursor.sort(sort) info_cursor = info_cursor.skip(page * page_size).limit(page_size) infos = [] for item in info_cursor: item = get_list_page_info(item) infos.append(item) total = modelName.find(appname, cond).count() filters = {} if issubclass(modelName, Rule): filters = get_rule_filter_list(appname) data = {} data.setdefault("items", infos) data.setdefault("total", total) data.setdefault("filters", filters) return json_response_ok(data)