diff --git a/singletree.py b/singletree.py index e4d0660..f34f54a 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 = """ @@ -55,6 +55,18 @@ ui_tmpl = """ "parentField":"{{parentField}}", "idField":"{{idField}}", "textField":"{{textField}}", +{% if typeField %} + "typeField":"{{typeField}}", +{% endif %} +{% if params %} + "params": {{json.dumps(params)}}, +{% endif %} +{% 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}}" {% else %} @@ -88,31 +100,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 7b6ded3..60f7267 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({ @@ -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__': """