示例#1
0
def _del_data_admin(appname, modelname, items):
    status = 0
    delete_success = []
    delete_failed = []
    Model_Class = classing_model(modelname)
    upload_table = get_upload_table(modelname)
    Local_db = ArmoryMongo[_LOCAL]
    for item in items:
        rawid = item.get('id')
        item_local = Local_db[upload_table].find_one(
            {"id": rawid}, fields={"_id": 0})
        if item_local:
            status = ONLINE_DATA_UNDELETE
            delete_failed.append(item)
            _LOGGER.error("id:%d should delete from local first" % rawid)
        else:
            release_rule(appname, modelname, rawid)
            model_dict = Model_Class.find_one(appname, {'id': rawid})
            _LOGGER.info(model_dict)
            CommonBase.dec_icon(appname, modelname, model_dict, rawid)
            # de referenced icon and rule
            delete_success.append(model_dict)
            Model_Class.remove(appname, {"id": rawid})
            _LOGGER.info("id:%d delete from admin success", rawid)
    return status, delete_success, delete_failed