@@ -16,6 +16,11 @@ def get_data(): | |||||
"name": "Blog Post", | "name": "Blog Post", | ||||
"description": _("Single Post (article)."), | "description": _("Single Post (article)."), | ||||
}, | }, | ||||
{ | |||||
"type": "doctype", | |||||
"name": "Web Form", | |||||
"description": _("User editable form on Website."), | |||||
}, | |||||
{ | { | ||||
"type": "doctype", | "type": "doctype", | ||||
"name": "Blogger", | "name": "Blogger", | ||||
@@ -35,7 +35,7 @@ notification_config = "frappe.core.notifications.get_notification_config" | |||||
before_tests = "frappe.utils.install.before_tests" | before_tests = "frappe.utils.install.before_tests" | ||||
website_generators = ["Web Page", "Blog Post", "Website Group", "Blog Category"] | |||||
website_generators = ["Web Page", "Blog Post", "Website Group", "Blog Category", "Web Form"] | |||||
# permissions | # permissions | ||||
@@ -13,6 +13,10 @@ frappe.ui.form.on = frappe.ui.form.on_change = function(doctype, fieldname, hand | |||||
frappe.ui.form.handlers[doctype][fieldname].push(handler) | frappe.ui.form.handlers[doctype][fieldname].push(handler) | ||||
} | } | ||||
frappe.ui.form.trigger = function(doctype, fieldname, callback) { | |||||
cur_frm.script_manager.trigger(fieldname, doctype, null, callback); | |||||
} | |||||
frappe.ui.form.ScriptManager = Class.extend({ | frappe.ui.form.ScriptManager = Class.extend({ | ||||
init: function(opts) { | init: function(opts) { | ||||
$.extend(this, opts); | $.extend(this, opts); | ||||
@@ -0,0 +1,116 @@ | |||||
{% block title %}{{ title }}{% endblock %} | |||||
{% block header %} | |||||
{{ title }} | |||||
{% endblock %} | |||||
{% block content %} | |||||
{% if login_required and user=="Guest" %} | |||||
<div class="alert alert-warning">{{ _("Please login to create a new {0}").format(_(doc_type)) }}</div> | |||||
{% else %} | |||||
<div class="form-message alert alert-info hide"></div> | |||||
<form class="form-horizontal" role="form" | |||||
data-web-form="{{ name }}"> | |||||
<input type="hidden" name="web_form" value="{{ name }}"> | |||||
<input type="hidden" name="doctype" value="{{ doc_type }}"> | |||||
{% if params.name -%} | |||||
<input type="hidden" name="name" value="{{ params.name }}"> | |||||
{%- endif %} | |||||
{% for field in web_form_fields %} | |||||
{% if field.fieldtype=="Data" %} | |||||
<div class="form-group"> | |||||
<label for="{{ field.fieldname }}" class="col-sm-3 control-label"> | |||||
{{ field.label }}</label> | |||||
<div class="col-sm-9"> | |||||
<input type="text" class="form-control" name="{{ field.fieldname }}" | |||||
id="{{ field.fieldname }}" placeholder="{{ field.placeholder or '' }}"> | |||||
{% if field.description -%} | |||||
<span class="help-block">{{ field.description }}</span> | |||||
{%- endif %} | |||||
</div> | |||||
</div> | |||||
{% elif field.fieldtype=="Select" %} | |||||
<div class="form-group"> | |||||
<label for="{{ field.fieldname }}" class="col-sm-3 control-label"> | |||||
{{ field.label }}</label> | |||||
<div class="col-sm-9"> | |||||
<select class="form-control" name="{{ field.fieldname }}" | |||||
id="{{ field.fieldname }}"> | |||||
{% for option in field.options.split("\n") %} | |||||
<option value="{{ option }}">{{ option }}</option> | |||||
{% endfor %} | |||||
</select> | |||||
{% if field.description -%} | |||||
<span class="help-block">{{ field.description }}</span> | |||||
{%- endif %} | |||||
</div> | |||||
</div> | |||||
{% elif field.fieldtype=="Text" %} | |||||
<div class="form-group"> | |||||
<label for="{{ field.fieldname }}" class="col-sm-3 control-label"> | |||||
{{ field.label }}</label> | |||||
<div class="col-sm-9"> | |||||
<textarea class="form-control" name="{{ field.fieldname }}" | |||||
id="{{ field.fieldname }}" style="height: 100px;"></textarea> | |||||
{% if field.description -%} | |||||
<span class="help-block">{{ field.description }}</span> | |||||
{%- endif %} | |||||
</div> | |||||
</div> | |||||
{% elif field.fieldtype=="Check" %} | |||||
<div class="form-group"> | |||||
<div class="col-sm-offset-3 col-sm-9"> | |||||
<div class="checkbox"> | |||||
<label> | |||||
<input type="checkbox" id="{{ field.fieldname }}" | |||||
name="{{ field.fieldname }}"> {{ field.label }} | |||||
</label> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
{% endif %} | |||||
{% endfor %} | |||||
<div class="form-group"> | |||||
<div class="col-sm-offset-3 col-sm-9"> | |||||
<button type="submit" class="btn btn-primary">Submit</button> | |||||
</div> | |||||
</div> | |||||
</form> | |||||
{% endif %} | |||||
{% endblock %} | |||||
{% block script %} | |||||
<script> | |||||
frappe.ready(function() { | |||||
var args = {}, | |||||
$form = $("form[data-web-form='{{ name }}']"); | |||||
$form.find("[name]").each(function() { | |||||
args[$(this).attr("name")] = $(this).val(); | |||||
}); | |||||
$("form[data-web-form='{{ name }}']").on("submit", function() { | |||||
args = | |||||
frappe.call({ | |||||
type: "POST", | |||||
method: "frappe.website.doctype.web_form.web_form.accept", | |||||
args: args, | |||||
btn: $form.find("[type='submit']"), | |||||
callback: function(data) { | |||||
if(!data.exc) { | |||||
$form.addClass("hide"); | |||||
$(".form-message") | |||||
.html("{{ success_message or 'Thank You!' }}") | |||||
.removeClass("hide"); | |||||
{% if success_url -%} | |||||
window.location.href = "{{ success_url }}" | |||||
{%- endif %}; | |||||
} | |||||
} | |||||
}) | |||||
return false; | |||||
}) | |||||
}); | |||||
</script> | |||||
{% endblock %} |
@@ -51,7 +51,8 @@ def get_allowed_functions_for_jenv(): | |||||
"get_meta": frappe.get_meta, | "get_meta": frappe.get_meta, | ||||
"get_doc": frappe.get_doc, | "get_doc": frappe.get_doc, | ||||
"get_list": frappe.get_list, | "get_list": frappe.get_list, | ||||
"utils": datautils | |||||
"utils": datautils, | |||||
"user": frappe.session.user | |||||
}, | }, | ||||
"get_visible_columns": \ | "get_visible_columns": \ | ||||
frappe.get_attr("frappe.templates.pages.print.get_visible_columns"), | frappe.get_attr("frappe.templates.pages.print.get_visible_columns"), | ||||
@@ -0,0 +1,6 @@ | |||||
[ | |||||
{ | |||||
"doctype": "Web Form", | |||||
"name": "_Test Web Form 1" | |||||
} | |||||
] |
@@ -0,0 +1,10 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | |||||
# See license.txt | |||||
import frappe | |||||
import unittest | |||||
test_records = frappe.get_test_records('Web Form') | |||||
class TestWebForm(unittest.TestCase): | |||||
pass |
@@ -0,0 +1,47 @@ | |||||
frappe.web_form = { | |||||
set_fieldname_select: function(frm) { | |||||
var me = this, | |||||
doc = frm.doc; | |||||
if(doc.doc_type) { | |||||
frappe.model.with_doctype(doc.doc_type, function() { | |||||
var fields = $.map(frappe.get_doc("DocType", frm.doc.doc_type).fields, function(d) { | |||||
return frappe.model.no_value_type.indexOf(d.fieldtype)===-1 ? | |||||
d.fieldname : null; | |||||
}) | |||||
frappe.meta.get_docfield("Web Form Field", "fieldname", frm.doc.name).options | |||||
= [""].concat(fields); | |||||
}); | |||||
} | |||||
} | |||||
} | |||||
frappe.ui.form.on("Web Form", "refresh", function(frm) { | |||||
frappe.web_form.set_fieldname_select(frm); | |||||
if (!frm.doc.__islocal && frm.doc.published) { | |||||
cur_frm.set_intro(__("Published on website at: {0}", | |||||
[repl('<a href="/%(website_route)s" target="_blank">/%(website_route)s</a>', | |||||
frm.doc.__onload)])); | |||||
} | |||||
}); | |||||
frappe.ui.form.on("Web Form", "doc_type", function(frm) { | |||||
frappe.web_form.set_fieldname_select(frm); | |||||
}); | |||||
frappe.ui.form.on("Web Form Field", "fieldname", function(frm, doctype, name) { | |||||
var doc = frappe.get_doc(doctype, name); | |||||
df = $.map(frappe.get_doc("DocType", frm.doc.doc_type).fields, function(d) { | |||||
return doc.fieldname==d.fieldname ? d : null; })[0]; | |||||
doc.label = df.label; | |||||
doc.reqd = df.reqd; | |||||
doc.options = df.options; | |||||
doc.fieldtype = frappe.meta.get_docfield("Web Form Field", "fieldtype") | |||||
.options.split("\n").indexOf(df.fieldtype)===-1 ? "Data" : df.fieldtype; | |||||
doc.description = df.description; | |||||
doc["default"] = df["default"]; | |||||
frm.refresh_field("web_form_fields"); | |||||
}); |
@@ -0,0 +1,219 @@ | |||||
{ | |||||
"allow_copy": 0, | |||||
"allow_import": 0, | |||||
"allow_rename": 0, | |||||
"autoname": "field:title", | |||||
"creation": "2014-09-01 14:08:48.624556", | |||||
"custom": 0, | |||||
"docstatus": 0, | |||||
"doctype": "DocType", | |||||
"document_type": "Transaction", | |||||
"fields": [ | |||||
{ | |||||
"allow_on_submit": 0, | |||||
"fieldname": "title", | |||||
"fieldtype": "Data", | |||||
"hidden": 0, | |||||
"ignore_user_permissions": 0, | |||||
"in_filter": 0, | |||||
"in_list_view": 1, | |||||
"label": "Title", | |||||
"no_copy": 0, | |||||
"permlevel": 0, | |||||
"print_hide": 0, | |||||
"read_only": 0, | |||||
"report_hide": 0, | |||||
"reqd": 1, | |||||
"search_index": 0, | |||||
"set_only_once": 0 | |||||
}, | |||||
{ | |||||
"allow_on_submit": 0, | |||||
"description": "Website URL", | |||||
"fieldname": "page_name", | |||||
"fieldtype": "Data", | |||||
"hidden": 0, | |||||
"ignore_user_permissions": 0, | |||||
"in_filter": 0, | |||||
"in_list_view": 1, | |||||
"label": "Page Name", | |||||
"no_copy": 0, | |||||
"permlevel": 0, | |||||
"print_hide": 0, | |||||
"read_only": 0, | |||||
"report_hide": 0, | |||||
"reqd": 1, | |||||
"search_index": 0, | |||||
"set_only_once": 0 | |||||
}, | |||||
{ | |||||
"allow_on_submit": 0, | |||||
"fieldname": "doc_type", | |||||
"fieldtype": "Link", | |||||
"hidden": 0, | |||||
"ignore_user_permissions": 0, | |||||
"in_filter": 0, | |||||
"in_list_view": 1, | |||||
"label": "Select DocType", | |||||
"no_copy": 0, | |||||
"options": "DocType", | |||||
"permlevel": 0, | |||||
"print_hide": 0, | |||||
"read_only": 0, | |||||
"report_hide": 0, | |||||
"reqd": 1, | |||||
"search_index": 0, | |||||
"set_only_once": 0 | |||||
}, | |||||
{ | |||||
"allow_on_submit": 0, | |||||
"fieldname": "column_break_4", | |||||
"fieldtype": "Column Break", | |||||
"hidden": 0, | |||||
"ignore_user_permissions": 0, | |||||
"in_filter": 0, | |||||
"in_list_view": 0, | |||||
"no_copy": 0, | |||||
"permlevel": 0, | |||||
"print_hide": 0, | |||||
"read_only": 0, | |||||
"report_hide": 0, | |||||
"reqd": 0, | |||||
"search_index": 0, | |||||
"set_only_once": 0 | |||||
}, | |||||
{ | |||||
"fieldname": "published", | |||||
"fieldtype": "Check", | |||||
"label": "Published", | |||||
"permlevel": 0 | |||||
}, | |||||
{ | |||||
"allow_on_submit": 0, | |||||
"fieldname": "login_required", | |||||
"fieldtype": "Check", | |||||
"hidden": 0, | |||||
"ignore_user_permissions": 0, | |||||
"in_filter": 0, | |||||
"in_list_view": 1, | |||||
"label": "Login Required", | |||||
"no_copy": 0, | |||||
"permlevel": 0, | |||||
"print_hide": 0, | |||||
"read_only": 0, | |||||
"report_hide": 0, | |||||
"reqd": 0, | |||||
"search_index": 0, | |||||
"set_only_once": 0 | |||||
}, | |||||
{ | |||||
"allow_on_submit": 0, | |||||
"depends_on": "login_required", | |||||
"fieldname": "allow_edit", | |||||
"fieldtype": "Check", | |||||
"hidden": 0, | |||||
"ignore_user_permissions": 0, | |||||
"in_filter": 0, | |||||
"in_list_view": 0, | |||||
"label": "Allow Edit", | |||||
"no_copy": 0, | |||||
"permlevel": 0, | |||||
"print_hide": 0, | |||||
"read_only": 0, | |||||
"report_hide": 0, | |||||
"reqd": 0, | |||||
"search_index": 0, | |||||
"set_only_once": 0 | |||||
}, | |||||
{ | |||||
"allow_on_submit": 0, | |||||
"depends_on": "login_required", | |||||
"fieldname": "allow_multiple", | |||||
"fieldtype": "Check", | |||||
"hidden": 0, | |||||
"ignore_user_permissions": 0, | |||||
"in_filter": 0, | |||||
"in_list_view": 0, | |||||
"label": "Allow Multiple", | |||||
"no_copy": 0, | |||||
"permlevel": 0, | |||||
"print_hide": 0, | |||||
"read_only": 0, | |||||
"report_hide": 0, | |||||
"reqd": 0, | |||||
"search_index": 0, | |||||
"set_only_once": 0 | |||||
}, | |||||
{ | |||||
"fieldname": "actions", | |||||
"fieldtype": "Section Break", | |||||
"label": "Actions", | |||||
"permlevel": 0 | |||||
}, | |||||
{ | |||||
"description": "Message to be displayed on successful completion", | |||||
"fieldname": "success_message", | |||||
"fieldtype": "Text", | |||||
"label": "Success Message", | |||||
"permlevel": 0 | |||||
}, | |||||
{ | |||||
"description": "Go to this url after completing the form.", | |||||
"fieldname": "success_url", | |||||
"fieldtype": "Data", | |||||
"label": "Success URL", | |||||
"permlevel": 0 | |||||
}, | |||||
{ | |||||
"fieldname": "fields", | |||||
"fieldtype": "Section Break", | |||||
"label": "Fields", | |||||
"permlevel": 0 | |||||
}, | |||||
{ | |||||
"fieldname": "web_form_fields", | |||||
"fieldtype": "Table", | |||||
"label": "Web Form Fields", | |||||
"options": "Web Form Field", | |||||
"permlevel": 0 | |||||
} | |||||
], | |||||
"hide_heading": 0, | |||||
"hide_toolbar": 0, | |||||
"icon": "icon-edit", | |||||
"in_create": 0, | |||||
"in_dialog": 0, | |||||
"is_submittable": 0, | |||||
"issingle": 0, | |||||
"istable": 0, | |||||
"modified": "2014-09-01 18:12:25.643567", | |||||
"modified_by": "Administrator", | |||||
"module": "Website", | |||||
"name": "Web Form", | |||||
"name_case": "", | |||||
"owner": "Administrator", | |||||
"permissions": [ | |||||
{ | |||||
"amend": 0, | |||||
"apply_user_permissions": 0, | |||||
"cancel": 0, | |||||
"create": 1, | |||||
"delete": 1, | |||||
"email": 0, | |||||
"export": 0, | |||||
"import": 0, | |||||
"permlevel": 0, | |||||
"print": 0, | |||||
"read": 1, | |||||
"report": 1, | |||||
"role": "Website Manager", | |||||
"set_user_permissions": 0, | |||||
"submit": 0, | |||||
"write": 1 | |||||
} | |||||
], | |||||
"read_only": 0, | |||||
"read_only_onload": 0, | |||||
"sort_field": "modified", | |||||
"sort_order": "DESC" | |||||
} |
@@ -0,0 +1,50 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and contributors | |||||
# For license information, please see license.txt | |||||
from __future__ import unicode_literals | |||||
import frappe | |||||
from frappe.website.website_generator import WebsiteGenerator | |||||
# parameters | |||||
# name (edit) | |||||
# new | |||||
class WebForm(WebsiteGenerator): | |||||
template = "templates/generators/web_form.html" | |||||
condition_field = "published" | |||||
page_title_field = "title" | |||||
no_cache = 1 | |||||
def get_context(self, context): | |||||
context.params = frappe.form_dict | |||||
if frappe.form_dict.name: | |||||
context.doc = frappe.get_doc(self.doc_type, frappe.form_dict.name) | |||||
return context | |||||
@frappe.whitelist(allow_guest=True) | |||||
def accept(): | |||||
args = frappe.form_dict | |||||
if args.name: | |||||
doc = frappe.get_doc(args.doctype, args.name) | |||||
else: | |||||
doc = frappe.new_doc(args.doctype) | |||||
for fieldname, value in args.iteritems(): | |||||
if fieldname not in ("web_form", "cmd"): | |||||
doc.set(fieldname, value) | |||||
if args.name: | |||||
if doc.owner==frappe.session.user: | |||||
doc.update(ignore_permissions=True) | |||||
else: | |||||
# only if permissions are present | |||||
doc.update() | |||||
else: | |||||
# insert | |||||
web_form = frappe.get_doc("Web Form", args.web_form) | |||||
if web_form.login_required and frappe.session.user=="Guest": | |||||
frappe.throw(_("You must login to submit this form")) | |||||
doc.insert(ignore_permissions = True) |
@@ -0,0 +1,196 @@ | |||||
{ | |||||
"allow_copy": 0, | |||||
"allow_import": 0, | |||||
"allow_rename": 0, | |||||
"creation": "2014-09-01 14:14:14.292173", | |||||
"custom": 0, | |||||
"docstatus": 0, | |||||
"doctype": "DocType", | |||||
"document_type": "", | |||||
"fields": [ | |||||
{ | |||||
"allow_on_submit": 0, | |||||
"fieldname": "fieldname", | |||||
"fieldtype": "Select", | |||||
"hidden": 0, | |||||
"ignore_user_permissions": 0, | |||||
"in_filter": 0, | |||||
"in_list_view": 1, | |||||
"label": "Fieldname", | |||||
"no_copy": 0, | |||||
"permlevel": 0, | |||||
"print_hide": 0, | |||||
"read_only": 0, | |||||
"report_hide": 0, | |||||
"reqd": 0, | |||||
"search_index": 0, | |||||
"set_only_once": 0 | |||||
}, | |||||
{ | |||||
"allow_on_submit": 0, | |||||
"fieldname": "fieldtype", | |||||
"fieldtype": "Select", | |||||
"hidden": 0, | |||||
"ignore_user_permissions": 0, | |||||
"in_filter": 0, | |||||
"in_list_view": 1, | |||||
"label": "Fieldtype", | |||||
"no_copy": 0, | |||||
"options": "Attach\nCheck\nData\nHTML\nSelect\nText", | |||||
"permlevel": 0, | |||||
"print_hide": 0, | |||||
"read_only": 0, | |||||
"report_hide": 0, | |||||
"reqd": 0, | |||||
"search_index": 0, | |||||
"set_only_once": 0 | |||||
}, | |||||
{ | |||||
"allow_on_submit": 0, | |||||
"fieldname": "label", | |||||
"fieldtype": "Data", | |||||
"hidden": 0, | |||||
"ignore_user_permissions": 0, | |||||
"in_filter": 0, | |||||
"in_list_view": 1, | |||||
"label": "Label", | |||||
"no_copy": 0, | |||||
"permlevel": 0, | |||||
"print_hide": 0, | |||||
"read_only": 0, | |||||
"report_hide": 0, | |||||
"reqd": 1, | |||||
"search_index": 0, | |||||
"set_only_once": 0 | |||||
}, | |||||
{ | |||||
"fieldname": "reqd", | |||||
"fieldtype": "Check", | |||||
"label": "Mandatory", | |||||
"permlevel": 0 | |||||
}, | |||||
{ | |||||
"allow_on_submit": 0, | |||||
"fieldname": "column_break_4", | |||||
"fieldtype": "Column Break", | |||||
"hidden": 0, | |||||
"ignore_user_permissions": 0, | |||||
"in_filter": 0, | |||||
"in_list_view": 0, | |||||
"no_copy": 0, | |||||
"permlevel": 0, | |||||
"print_hide": 0, | |||||
"read_only": 0, | |||||
"report_hide": 0, | |||||
"reqd": 0, | |||||
"search_index": 0, | |||||
"set_only_once": 0 | |||||
}, | |||||
{ | |||||
"allow_on_submit": 0, | |||||
"fieldname": "options", | |||||
"fieldtype": "Text", | |||||
"hidden": 0, | |||||
"ignore_user_permissions": 0, | |||||
"in_filter": 0, | |||||
"in_list_view": 1, | |||||
"label": "Options", | |||||
"no_copy": 0, | |||||
"permlevel": 0, | |||||
"print_hide": 0, | |||||
"read_only": 0, | |||||
"report_hide": 0, | |||||
"reqd": 0, | |||||
"search_index": 0, | |||||
"set_only_once": 0 | |||||
}, | |||||
{ | |||||
"allow_on_submit": 0, | |||||
"fieldname": "section_break_6", | |||||
"fieldtype": "Section Break", | |||||
"hidden": 0, | |||||
"ignore_user_permissions": 0, | |||||
"in_filter": 0, | |||||
"in_list_view": 0, | |||||
"no_copy": 0, | |||||
"permlevel": 0, | |||||
"print_hide": 0, | |||||
"read_only": 0, | |||||
"report_hide": 0, | |||||
"reqd": 0, | |||||
"search_index": 0, | |||||
"set_only_once": 0 | |||||
}, | |||||
{ | |||||
"allow_on_submit": 0, | |||||
"fieldname": "description", | |||||
"fieldtype": "Text", | |||||
"hidden": 0, | |||||
"ignore_user_permissions": 0, | |||||
"in_filter": 0, | |||||
"in_list_view": 0, | |||||
"label": "Description", | |||||
"no_copy": 0, | |||||
"permlevel": 0, | |||||
"print_hide": 0, | |||||
"read_only": 0, | |||||
"report_hide": 0, | |||||
"reqd": 0, | |||||
"search_index": 0, | |||||
"set_only_once": 0 | |||||
}, | |||||
{ | |||||
"allow_on_submit": 0, | |||||
"fieldname": "column_break_8", | |||||
"fieldtype": "Column Break", | |||||
"hidden": 0, | |||||
"ignore_user_permissions": 0, | |||||
"in_filter": 0, | |||||
"in_list_view": 0, | |||||
"no_copy": 0, | |||||
"permlevel": 0, | |||||
"print_hide": 0, | |||||
"read_only": 0, | |||||
"report_hide": 0, | |||||
"reqd": 0, | |||||
"search_index": 0, | |||||
"set_only_once": 0 | |||||
}, | |||||
{ | |||||
"allow_on_submit": 0, | |||||
"fieldname": "default", | |||||
"fieldtype": "Data", | |||||
"hidden": 0, | |||||
"ignore_user_permissions": 0, | |||||
"in_filter": 0, | |||||
"in_list_view": 0, | |||||
"label": "Default", | |||||
"no_copy": 0, | |||||
"permlevel": 0, | |||||
"print_hide": 0, | |||||
"read_only": 0, | |||||
"report_hide": 0, | |||||
"reqd": 0, | |||||
"search_index": 0, | |||||
"set_only_once": 0 | |||||
} | |||||
], | |||||
"hide_heading": 0, | |||||
"hide_toolbar": 0, | |||||
"in_create": 0, | |||||
"in_dialog": 0, | |||||
"is_submittable": 0, | |||||
"issingle": 0, | |||||
"istable": 1, | |||||
"modified": "2014-09-01 14:14:40.425829", | |||||
"modified_by": "Administrator", | |||||
"module": "Website", | |||||
"name": "Web Form Field", | |||||
"name_case": "", | |||||
"owner": "Administrator", | |||||
"permissions": [], | |||||
"read_only": 0, | |||||
"read_only_onload": 0, | |||||
"sort_field": "modified", | |||||
"sort_order": "DESC" | |||||
} |
@@ -0,0 +1,9 @@ | |||||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and contributors | |||||
# For license information, please see license.txt | |||||
from __future__ import unicode_literals | |||||
import frappe | |||||
from frappe.model.document import Document | |||||
class WebFormField(Document): | |||||
pass |
@@ -96,7 +96,7 @@ def clear_sitemap(): | |||||
if meta.get_field("parent_website_route"): | if meta.get_field("parent_website_route"): | ||||
query = "select page_name, parent_website_route from `tab{0}`" | query = "select page_name, parent_website_route from `tab{0}`" | ||||
else: | else: | ||||
query = "select page_name, "" from `tab{0}`" | |||||
query = "select page_name, '' from `tab{0}`" | |||||
for r in frappe.db.sql(query.format(doctype)): | for r in frappe.db.sql(query.format(doctype)): | ||||
if r[0]: | if r[0]: | ||||