diff --git a/webnotes/webutils.py b/webnotes/webutils.py index b638a7cf50..43190a3796 100644 --- a/webnotes/webutils.py +++ b/webnotes/webutils.py @@ -86,7 +86,8 @@ def build_page(page_name): if not module: raise Exception("Generator controller not defined") - name = webnotes.conn.get_value(module.doctype, {"page_name": page_options["page_name"]}) + name = webnotes.conn.get_value(module.doctype, { + page_options.get("page_name_field", "page_name"): page_options["page_name"]}) obj = webnotes.get_obj(module.doctype, name, with_children=True) if hasattr(obj, 'get_context'): @@ -122,11 +123,21 @@ def build_sitemap(): for g in config["generators"].values(): g["is_generator"] = True module = webnotes.get_module(g["controller"]) - for page_name, name, modified in webnotes.conn.sql("""select page_name, name, modified from `tab%s` where - ifnull(%s, 0)=1""" % (module.doctype, module.condition_field)): + + condition = "" + page_name_field = "page_name" + if hasattr(module, "page_name_field"): + page_name_field = module.page_name_field + if hasattr(module, "condition_field"): + condition = " where ifnull(%s, 0)=1" % module.condition_field + + for page_name, name, modified in webnotes.conn.sql("""select %s, name, modified from + `tab%s` %s""" % (page_name_field, module.doctype, condition)): opts = g.copy() opts["doctype"] = module.doctype opts["page_name"] = page_name + if page_name_field != "page_name": + opts["page_name_field"] = page_name_field opts["docname"] = name opts["lastmod"] = modified.strftime("%Y-%m-%d %H:%M:%S") sitemap[page_name] = opts