appbase/wwwroot/get_code.dspy
Hermes Agent 2acf06e5e5 feat: get_code.dspy supports prepend_all=1 to add '全部' option
When prepend_all=1 is passed, insert {valueField:'', textField:'全部'}
as the first item in the result array. Used by InlineForm search fields.
2026-06-22 12:11:51 +08:00

30 lines
827 B
Plaintext

debug(params_kw)
ns = params_kw.copy()
db = DBPools()
sql = f"""select {params_kw.tblvalue} as {params_kw.valueField},
{params_kw.tbltext} as {params_kw.textField}
from {params_kw.table} where 1=1 """
if params_kw.cond:
sql += f" and {params_kw.cond} "
sql += f"order by {params_kw.textField}"
ac = ArgsConvert('[[', ']]')
vars = ac.findAllVariables(sql)
if 'userid' in vars:
ns['userid'] = await get_user()
if 'userorgid' in vars:
ns['userorgid'] = await get_userorgid()
NameSpace = {v:'${' + v + '}$' for v in vars}
sql = ac.convert(sql, NameSpace)
debug(f'/appbase/get_code.dspy: {sql=}')
async with db.sqlorContext(params_kw.dbname) as sor:
rs = await sor.sqlExe(sql, ns)
if params_kw.get('prepend_all') == '1':
rs.insert(0, {params_kw.valueField: '', params_kw.textField: '全部'})
return rs
return []