浏览代码

added parameter passing in web form creation

version-14
shubham7saxena 9 年前
父节点
当前提交
bccae71da3
共有 2 个文件被更改,包括 16 次插入1 次删除
  1. +1
    -1
      frappe/templates/generators/web_form.html
  2. +15
    -0
      frappe/website/doctype/web_form/web_form.py

+ 1
- 1
frappe/templates/generators/web_form.html 查看文件

@@ -18,7 +18,7 @@
{{ _("Submit") if params.new else _("Update") }}</button> {{ _("Submit") if params.new else _("Update") }}</button>
{% elif is_list %} {% elif is_list %}
<div style="padding-bottom: 15px;"> <div style="padding-bottom: 15px;">
<a href="/{{ pathname }}?new=1" class="btn btn-primary btn-new btn-sm">
<a href="/{{ pathname + args }}{{ delimeter }}new=1" class="btn btn-primary btn-new btn-sm">
{{ _("New {0}").format(_(doc_type)) }} {{ _("New {0}").format(_(doc_type)) }}
</a> </a>
</div> </div>


+ 15
- 0
frappe/website/doctype/web_form/web_form.py 查看文件

@@ -107,6 +107,10 @@ def get_context(context):
context.params = frappe.form_dict context.params = frappe.form_dict
logged_in = frappe.session.user != "Guest" logged_in = frappe.session.user != "Guest"


args, delimeter = make_route_string(frappe.local.form_dict)
context.args = args
context.delimeter = delimeter

# check permissions # check permissions
if not logged_in and frappe.form_dict.name: if not logged_in and frappe.form_dict.name:
frappe.throw(_("You need to be logged in to access this {0}.").format(self.doc_type), frappe.PermissionError) frappe.throw(_("You need to be logged in to access this {0}.").format(self.doc_type), frappe.PermissionError)
@@ -316,3 +320,14 @@ def get_web_form_list(doctype, txt, filters, limit_start, limit_page_length=20):
filters["owner"] = frappe.session.user filters["owner"] = frappe.session.user


return get_list(doctype, txt, filters, limit_start, limit_page_length, ignore_permissions=True) return get_list(doctype, txt, filters, limit_start, limit_page_length, ignore_permissions=True)

def make_route_string(parameters):
route_string = ""
delimeter = '?'
if isinstance(parameters,dict):
for key in parameters:
if key != "is_web_form":
per_parameter_path = delimeter + key + "=" + parameters[key]
route_string = route_string + per_parameter_path
delimeter = '&'
return (route_string,delimeter)

正在加载...
取消
保存