diff --git a/core/doctype/doctype/doctype.py b/core/doctype/doctype/doctype.py index 2fe2895b91..9fb4a07a29 100644 --- a/core/doctype/doctype/doctype.py +++ b/core/doctype/doctype/doctype.py @@ -226,7 +226,7 @@ def validate_permissions(permissions, for_remove=False): issubmittable = webnotes.conn.get_value("DocType", doctype, "is_submittable") def get_txt(d): - return "For %s (level %s) in %s:" % (d.role, d.permlevel, d.parent) + return "For %s (level %s) in %s row %s:" % (d.role, d.permlevel, d.parent, d.idx) def check_atleast_one_set(d): if not d.read and not d.write and not d.submit and not d.cancel and not d.create: @@ -245,7 +245,7 @@ def validate_permissions(permissions, for_remove=False): raise_exception=True) def check_level_zero_is_set(d): - if d.permlevel > 0 and d.role != 'All': + if cint(d.permlevel) > 0 and d.role != 'All': if not permissions.get({"role": d.role, "permlevel": 0}): webnotes.msgprint(get_txt(d) + " Higher level permissions are meaningless if level 0 permission is not set.", raise_exception=True) diff --git a/core/doctype/scheduler_log/__init__.py b/core/doctype/scheduler_log/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/core/doctype/scheduler_log/scheduler_log.py b/core/doctype/scheduler_log/scheduler_log.py new file mode 100644 index 0000000000..928aa9ff9f --- /dev/null +++ b/core/doctype/scheduler_log/scheduler_log.py @@ -0,0 +1,8 @@ +# For license information, please see license.txt + +from __future__ import unicode_literals +import webnotes + +class DocType: + def __init__(self, d, dl): + self.doc, self.doclist = d, dl \ No newline at end of file diff --git a/core/doctype/scheduler_log/scheduler_log.txt b/core/doctype/scheduler_log/scheduler_log.txt new file mode 100644 index 0000000000..e7bc7bc49d --- /dev/null +++ b/core/doctype/scheduler_log/scheduler_log.txt @@ -0,0 +1,58 @@ +[ + { + "owner": "Administrator", + "docstatus": 0, + "creation": "2013-01-15 12:42:11", + "modified_by": "Administrator", + "modified": "2013-01-15 12:42:31" + }, + { + "autoname": "SCHLOG.#####", + "description": "Log of Scheduler Errors", + "doctype": "DocType", + "module": "Core", + "document_type": "System", + "name": "__common__" + }, + { + "name": "__common__", + "parent": "Scheduler Log", + "doctype": "DocField", + "parenttype": "DocType", + "permlevel": 0, + "parentfield": "fields" + }, + { + "parent": "Scheduler Log", + "read": 1, + "cancel": 1, + "name": "__common__", + "create": 1, + "doctype": "DocPerm", + "submit": 0, + "write": 1, + "parenttype": "DocType", + "role": "System Manager", + "permlevel": 0, + "parentfield": "permissions" + }, + { + "name": "Scheduler Log", + "doctype": "DocType" + }, + { + "doctype": "DocField", + "label": "Method", + "fieldname": "method", + "fieldtype": "Data" + }, + { + "doctype": "DocField", + "label": "Error", + "fieldname": "error", + "fieldtype": "Text" + }, + { + "doctype": "DocPerm" + } +] \ No newline at end of file diff --git a/webnotes/utils/scheduler.py b/webnotes/utils/scheduler.py index 2ddc494cb6..eeeff28d24 100644 --- a/webnotes/utils/scheduler.py +++ b/webnotes/utils/scheduler.py @@ -101,8 +101,10 @@ def log(method): import webnotes.utils webnotes.conn.begin() - webnotes.conn.sql("""insert into __SchedulerLog (`timestamp`, method, error) - values (%s, %s, %s)""", (webnotes.utils.now_datetime(), method, traceback)) + d = webnotes.doc("Scheduler Log") + d.method = method + d.error = traceback + d.save() webnotes.conn.commit() return traceback