From ed896dbf4e4f5968848f490499c2abf701082d36 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Tue, 29 Jul 2025 17:31:58 +0800 Subject: [PATCH 1/6] bugfix --- singletree.py | 5 ++++- xls2crud.py | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/singletree.py b/singletree.py index e4d0660..33a9ac6 100644 --- a/singletree.py +++ b/singletree.py @@ -55,8 +55,11 @@ ui_tmpl = """ "parentField":"{{parentField}}", "idField":"{{idField}}", "textField":"{{textField}}", +{% if dataparams %} + "dataparams": {{json.dumps(dataparams)}}, +{% endif %} {% if get_data_url %} - "dataurl": "{{get_data_url}}" + "dataurl": "{{get_data_url}}", {% else %} "dataurl":{%- raw -%}"{{entire_url('./get_{%- endraw -%}{{tblname}}{%- raw -%}.dspy')}}"{%- endraw %} {% endif %} diff --git a/xls2crud.py b/xls2crud.py index 7b6ded3..8dc5052 100644 --- a/xls2crud.py +++ b/xls2crud.py @@ -40,7 +40,7 @@ def subtable2toolbar(desc): desc.toolbar = DictObject(**{ "tools":[] }) - tools = desc.toolbar.tools + tools = desc.toolbar.tools or [] binds = desc.binds or [] for st in desc.subtables: tools.append({ From e78646dd9fd28ac71ca6c18d1267855bd8db615c Mon Sep 17 00:00:00 2001 From: yumoqing Date: Tue, 29 Jul 2025 18:11:13 +0800 Subject: [PATCH 2/6] bugfix --- singletree.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/singletree.py b/singletree.py index 33a9ac6..da2ed36 100644 --- a/singletree.py +++ b/singletree.py @@ -58,6 +58,9 @@ ui_tmpl = """ {% if dataparams %} "dataparams": {{json.dumps(dataparams)}}, {% endif %} +{% if newdata_params %} + "newdata_params":{{json.dumps(newdata_params)}}, +{% endif %} {% if get_data_url %} "dataurl": "{{get_data_url}}", {% else %} From 65bfe86f29a74bc0a82587e40fe29539f61f2d26 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Tue, 29 Jul 2025 18:23:58 +0800 Subject: [PATCH 3/6] bugfix --- singletree.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/singletree.py b/singletree.py index da2ed36..a2115b9 100644 --- a/singletree.py +++ b/singletree.py @@ -55,8 +55,8 @@ ui_tmpl = """ "parentField":"{{parentField}}", "idField":"{{idField}}", "textField":"{{textField}}", -{% if dataparams %} - "dataparams": {{json.dumps(dataparams)}}, +{% if params %} + "params": {{json.dumps(params)}}, {% endif %} {% if newdata_params %} "newdata_params":{{json.dumps(newdata_params)}}, From 782180805ec199aa709261ca0a85f11cd41b0770 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Wed, 30 Jul 2025 13:21:43 +0800 Subject: [PATCH 4/6] bugfix --- singletree.py | 12 ++++++------ xls2crud.py | 17 +++++++++++------ 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/singletree.py b/singletree.py index a2115b9..809870d 100644 --- a/singletree.py +++ b/singletree.py @@ -7,7 +7,7 @@ from xlsxData import xlsxFactory from appPublic.folderUtils import listFile, _mkdir from appPublic.myTE import MyTemplateEngine from tmpls import data_browser_tmpl, get_data_tmpl, data_new_tmpl, data_update_tmpl, data_delete_tmpl -from xls2crud import build_dbdesc, field_list, subtable2toolbar +from xls2crud import build_dbdesc, field_list, subtable2toolbar, filter_backslash from tmpls import data_new_tmpl, data_update_tmpl, data_delete_tmpl ui_tmpl = """ @@ -94,31 +94,31 @@ def gen_tree_ui(d, pat): e = MyTemplateEngine([]) s = e.renders(ui_tmpl, d) with open(os.path.join(pat, f'index.ui'), 'w') as f: - f.write(s) + f.write(filter_backslash(s)) def gen_delete_nodedata(d, pat): e = MyTemplateEngine([]) s = e.renders(data_delete_tmpl, d) with open(os.path.join(pat, f'delete_{d.tblname}.dspy'), 'w') as f: - f.write(s) + f.write(filter_backslash(s)) def gen_update_nodedata(d, pat): e = MyTemplateEngine([]) s = e.renders(data_update_tmpl, d) with open(os.path.join(pat, f'update_{d.tblname}.dspy'), 'w') as f: - f.write(s) + f.write(filter_backslash(s)) def gen_new_nodedata(d, pat): e = MyTemplateEngine([]) s = e.renders(data_new_tmpl, d) with open(os.path.join(pat, f'new_{d.tblname}.dspy'), 'w') as f: - f.write(s) + f.write(filter_backslash(s)) def gen_get_nodedata(d, pat): e = MyTemplateEngine([]) s = e.renders(get_nodes_tmpl, d) with open(os.path.join(pat, f'get_{d.tblname}.dspy'), 'w') as f: - f.write(s) + f.write(filter_backslash(s)) def build_tree_ui(tree_data, dbdesc): outdir = tree_data.output_dir diff --git a/xls2crud.py b/xls2crud.py index 8dc5052..60f7267 100644 --- a/xls2crud.py +++ b/xls2crud.py @@ -229,6 +229,11 @@ from {code.table} a left join return f"""select {fields} from {tables}""" +def filter_backslash(s): + if s is None: + return s + ls = s.split('\\/') + return '/'.join(ls) def build_data_browser(pat: str, desc: dict): desc = desc.copy() @@ -236,28 +241,28 @@ def build_data_browser(pat: str, desc: dict): e = MyTemplateEngine([]) s = e.renders(data_browser_tmpl, desc) with open(os.path.join(pat, f'index.ui'), 'w') as f: - f.write(s) + f.write(filter_backslash(s)) def build_data_new(pat: str, desc: dict): e = MyTemplateEngine([]) desc = desc.copy() s = e.renders(data_new_tmpl, desc) with open(os.path.join(pat, f'add_{desc.tblname}.dspy'), 'w') as f: - f.write(s) + f.write(filter_backslash(s)) def build_data_update(pat: str, desc: dict): e = MyTemplateEngine([]) desc = desc.copy() s = e.renders(data_update_tmpl, desc) with open(os.path.join(pat, f'update_{desc.tblname}.dspy'), 'w') as f: - f.write(s) + f.write(filter_backslash(s)) def build_data_delete(pat: str, desc: dict): e = MyTemplateEngine([]) desc = desc.copy() s = e.renders(data_delete_tmpl, desc) with open(os.path.join(pat, f'delete_{desc.tblname}.dspy'), 'w') as f: - f.write(s) + f.write(filter_backslash(s)) def build_get_data(pat: str, desc: dict): e = MyTemplateEngine([]) @@ -265,14 +270,14 @@ def build_get_data(pat: str, desc: dict): desc.sql = construct_get_data_sql(desc) s = e.renders(get_data_tmpl, desc) with open(os.path.join(pat, f'get_{desc.tblname}.dspy'), 'w') as f: - f.write(s) + f.write(filter_backslash(s)) def build_check_changed(pat:str, desc:dict): e = MyTemplateEngine([]) desc = desc.copy() s = e.renders(check_changed_tmpls, desc) with open(os.path.join(pat, 'check_changed.dspy'), 'w') as f: - f.write(s) + f.write(filter_backslash(s)) if __name__ == '__main__': """ From 92c01c9e9380b1da843d7ab5c348c702f1dc288f Mon Sep 17 00:00:00 2001 From: yumoqing Date: Wed, 30 Jul 2025 14:11:10 +0800 Subject: [PATCH 5/6] bugfix --- singletree.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/singletree.py b/singletree.py index 809870d..544fcdd 100644 --- a/singletree.py +++ b/singletree.py @@ -61,8 +61,11 @@ ui_tmpl = """ {% if newdata_params %} "newdata_params":{{json.dumps(newdata_params)}}, {% endif %} +{% if node_typeicons %} + "node_typeicons":{{json.dumps(node_typeicons)}}, +{% endif %} {% if get_data_url %} - "dataurl": "{{get_data_url}}", + "dataurl": "{{get_data_url}}" {% else %} "dataurl":{%- raw -%}"{{entire_url('./get_{%- endraw -%}{{tblname}}{%- raw -%}.dspy')}}"{%- endraw %} {% endif %} From d4ef05d90c8b600f64a79adbfef0de8c962ed002 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Wed, 30 Jul 2025 15:15:00 +0800 Subject: [PATCH 6/6] bugfix --- singletree.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/singletree.py b/singletree.py index 544fcdd..f34f54a 100644 --- a/singletree.py +++ b/singletree.py @@ -55,6 +55,9 @@ ui_tmpl = """ "parentField":"{{parentField}}", "idField":"{{idField}}", "textField":"{{textField}}", +{% if typeField %} + "typeField":"{{typeField}}", +{% endif %} {% if params %} "params": {{json.dumps(params)}}, {% endif %}