|
|
@@ -2,6 +2,7 @@
|
|
|
def get_form(inp):
|
|
|
import os
|
|
|
import json
|
|
|
+ import traceback
|
|
|
form_dir = os.path.realpath(os.path.join(__file__,"..","..","form"))
|
|
|
print(form_dir)
|
|
|
resp = {
|
|
|
@@ -10,6 +11,7 @@ def get_form(inp):
|
|
|
}
|
|
|
for f in os.listdir(form_dir):
|
|
|
try:
|
|
|
+ mod = get_form_module(f)
|
|
|
jsfile = os.path.join(form_dir, f)
|
|
|
print(jsfile)
|
|
|
if not f[-5:].lower() == ".json":
|
|
|
@@ -18,6 +20,7 @@ def get_form(inp):
|
|
|
with open(jsfile) as fd:
|
|
|
js = json.load(fd)
|
|
|
js["name"] = f
|
|
|
+ js = mod.get_form(js)
|
|
|
js["ok"] = True;
|
|
|
resp["js"].append(js)
|
|
|
except Exception as ex:
|
|
|
@@ -25,24 +28,35 @@ def get_form(inp):
|
|
|
"name": f,
|
|
|
"ok": False,
|
|
|
"err": str(ex),
|
|
|
+ "trace": traceback.format_exc(),
|
|
|
})
|
|
|
return resp
|
|
|
|
|
|
-def submit_form(inp):
|
|
|
+def get_form_module(name):
|
|
|
import importlib.machinery
|
|
|
import os
|
|
|
+ base = os.path.basename(name)
|
|
|
+ b, ext = os.path.splitext(base)
|
|
|
+ modpath = os.path.join(__file__,"..","..","form", b+".py")
|
|
|
+ modpath = os.path.realpath(modpath)
|
|
|
+ try:
|
|
|
+ return importlib.machinery.SourceFileLoader("bootstrap_portal.form."+b, modpath).load_module()
|
|
|
+ except Exception as ex:
|
|
|
+ print(ex)
|
|
|
+ return None
|
|
|
+
|
|
|
+def submit_form(inp):
|
|
|
+ import traceback
|
|
|
+ import os
|
|
|
|
|
|
try:
|
|
|
- base = os.path.basename(inp["name"])
|
|
|
- b, ext = os.path.splitext(base)
|
|
|
- modpath = os.path.join(__file__,"..","..","form", b+".py")
|
|
|
- modpath = os.path.realpath(modpath)
|
|
|
- mod = importlib.machinery.SourceFileLoader("bootstrap_portal.form."+b, modpath).load_module()
|
|
|
+ mod = get_form_module(inp["name"])
|
|
|
return mod.submit_form(inp, {})
|
|
|
except Exception as ex:
|
|
|
return {
|
|
|
"ok": False,
|
|
|
"err": str(ex),
|
|
|
+ "trace": traceback.format_exc(),
|
|
|
}
|
|
|
|
|
|
def get_data(inp):
|