This commit is contained in:
yumoqing 2025-12-22 17:30:14 +08:00
parent e384efe28e
commit 25a50f79f4

View File

@ -1,8 +1,8 @@
data_browser_tmpl = """
{
"id":"{{tblname}}_tbl",
"widgettype":"Tabular",
"options":{
"widgettype":"Tabular",
"options":{
"width":"100%",
"height":"100%",
{% if not notitle %}
@ -44,7 +44,7 @@ data_browser_tmpl = """
{% if get_data_url %}
"data_url": "{{get_data_url}}",
{% else %}
"data_url":"{%- raw -%}{{entire_url('./get_{%- endraw -%}{{summary[0].name}}{%- raw -%}.dspy')}}",{%- endraw %}
"data_url":"{%- raw -%}{{entire_url('./get_{%- endraw -%}{{summary[0].name}}{%- raw -%}.dspy')}}",{%- endraw %}
{% endif %}
"data_method":"{{data_method or 'GET'}}",
"data_params":{%- raw -%}{{json.dumps(params_kw, indent=4, ensure_ascii=False)}},{%- endraw %}
@ -62,7 +62,7 @@ data_browser_tmpl = """
"editexclouded":{{json.dumps(editexclouded, indent=4, ensure_ascii=False)}},
{% endif %}
"fields":{{fieldliststr}}
},
},
{% if subtables_condition %}
{%- raw -%}{% {%- endraw %}if {{subtables_condition}} {%- raw -%} %}{%- endraw -%}
{% endif %}
@ -72,9 +72,9 @@ data_browser_tmpl = """
{% if subtables_condition %}
{%- raw -%}{% endif %}{%- endraw %}
{% endif %}
"page_rows":160,
"cache_limit":5
}
"page_rows":160,
"cache_limit":5
}
{% if bindsstr %}
,"binds":{{bindsstr}}
{% endif %}
@ -116,11 +116,11 @@ ns['userorgid'] = userorgid
{% endif %}
debug(f'get_{{tblname}}.dspy:{ns=}')
if not ns.get('page'):
ns['page'] = 1
ns['page'] = 1
if not ns.get('sort'):
{% if sortby %}
{% if type(sortby) == type("") %}
ns['sort'] = '{{sortby}}'
ns['sort'] = '{{sortby}}'
{% else %}
ns['sort'] = {{json.dumps(sortby)}}
{% endif %}
@ -157,8 +157,8 @@ debug(f'{sql=}')
db = DBPools()
dbname = get_module_dbname('{{modulename}}')
async with db.sqlorContext(dbname) as sor:
r = await sor.sqlPaging(sql, ns)
return r
r = await sor.sqlPaging(sql, ns)
return r
return {
"total":0,
"rows":[]
@ -210,28 +210,28 @@ ns['{{logined_userorgid}}'] = userorgid
db = DBPools()
dbname = get_module_dbname('{{modulename}}')
async with db.sqlorContext(dbname) as sor:
r = await sor.C('{{summary[0].name}}', ns.copy())
return {
"widgettype":"Message",
"options":{
r = await sor.C('{{summary[0].name}}', ns.copy())
return {
"widgettype":"Message",
"options":{
"user_data":ns,
"cwidth":16,
"cheight":9,
"title":"Add Success",
"title":"Add Success",
"timeout":3,
"message":"ok"
}
}
"message":"ok"
}
}
return {
"widgettype":"Error",
"options":{
"title":"Add Error",
"widgettype":"Error",
"options":{
"title":"Add Error",
"cwidth":16,
"cheight":9,
"timeout":3,
"message":"failed"
}
"message":"failed"
}
}
"""
data_update_tmpl = """
@ -271,7 +271,7 @@ ns['{{logined_userorgid}}'] = userorgid
{% endif %}
{% for f in confidential_fields or [] %}
if params_kw.get('{{f}}'):
ns['{{f}}'] = password_encode(params_kw.get('{{f}}'))
ns['{{f}}'] = password_encode(params_kw.get('{{f}}'))
{% endfor %}
db = DBPools()
@ -300,33 +300,33 @@ async with db.sqlorContext(dbname) as sor:
}
}
{% endif %}
r = await sor.U('{{summary[0].name}}', ns)
debug('update success');
return {
"widgettype":"Message",
"options":{
"title":"Update Success",
r = await sor.U('{{summary[0].name}}', ns)
debug('update success');
return {
"widgettype":"Message",
"options":{
"title":"Update Success",
"cwidth":16,
"cheight":9,
"timeout":3,
"message":"ok"
}
}
"message":"ok"
}
}
return {
"widgettype":"Error",
"options":{
"title":"Update Error",
"widgettype":"Error",
"options":{
"title":"Update Error",
"cwidth":16,
"cheight":9,
"timeout":3,
"message":"failed"
}
"message":"failed"
}
}
"""
data_delete_tmpl = """
ns = {
'id':params_kw['id'],
'id':params_kw['id'],
}
{% if logined_userid %}
userid = await get_user()
@ -361,29 +361,29 @@ ns['{{logined_userorgid}}'] = userorgid
db = DBPools()
dbname = get_module_dbname('{{modulename}}')
async with db.sqlorContext(dbname) as sor:
r = await sor.D('{{summary[0].name}}', ns)
debug('delete success');
return {
"widgettype":"Message",
"options":{
"title":"Delete Success",
r = await sor.D('{{summary[0].name}}', ns)
debug('delete success');
return {
"widgettype":"Message",
"options":{
"title":"Delete Success",
"timeout":3,
"cwidth":16,
"cheight":9,
"message":"ok"
}
}
"message":"ok"
}
}
debug('Delete failed');
return {
"widgettype":"Error",
"options":{
"title":"Delete Error",
"widgettype":"Error",
"options":{
"title":"Delete Error",
"timeout":3,
"cwidth":16,
"cheight":9,
"message":"failed"
}
"message":"failed"
}
}
"""
@ -392,39 +392,39 @@ is_checked = params_kw.get('has_{{relation.param_field}}')
debug(f'{params_kw=}, {is_checked=}')
dbname = get_module_dbname('{{modulename}}')
if is_checked == 'true':
ns = {
"id":uuid(),
"{{relation.param_field}}":params_kw.{{relation.param_field}},
"{{relation.outter_field}}":params_kw.{{relation.outter_field}}
}
db = DBPools();
async with db.sqlorContext(dbname) as sor:
await sor.C('{{tblname}}', ns)
ns = {
"id":uuid(),
"{{relation.param_field}}":params_kw.{{relation.param_field}},
"{{relation.outter_field}}":params_kw.{{relation.outter_field}}
}
db = DBPools();
async with db.sqlorContext(dbname) as sor:
await sor.C('{{tblname}}', ns)
return {
"widgettype":"Message",
"options":{
"title":"Success",
"message":"record add success",
"timeout":2
}
}
return {
"widgettype":"Message",
"options":{
"title":"Success",
"message":"record add success",
"timeout":2
}
}
else:
ns = {
"{{relation.param_field}}":params_kw.{{relation.param_field}},
"{{relation.outter_field}}":params_kw.{{relation.outter_field}}
}
sql = "delete from {{tblname}} where {{relation.param_field}}=" + "${" + "{{relation.param_field}}" + "}$" + " and {{relation.outter_field}}=" + "${" + "{{relation.outter_field}}" + "}$"
db = DBPools()
async with db.sqlorContext(dbname) as sor:
await sor.sqlExe(sql, ns)
ns = {
"{{relation.param_field}}":params_kw.{{relation.param_field}},
"{{relation.outter_field}}":params_kw.{{relation.outter_field}}
}
sql = "delete from {{tblname}} where {{relation.param_field}}=" + "${" + "{{relation.param_field}}" + "}$" + " and {{relation.outter_field}}=" + "${" + "{{relation.outter_field}}" + "}$"
db = DBPools()
async with db.sqlorContext(dbname) as sor:
await sor.sqlExe(sql, ns)
return {
"widgettype":"Message",
"options":{
"title":"Success",
"message":"delete record success",
"timeout":3
}
}
return {
"widgettype":"Message",
"options":{
"title":"Success",
"message":"delete record success",
"timeout":3
}
}
"""