@@ -309,13 +309,6 @@ def reset_metadata_version(): | |||||
cache().set_value("metadata_version", v) | cache().set_value("metadata_version", v) | ||||
return v | return v | ||||
def get_obj(dt = None, dn = None, doc=None, doclist=None, with_children = True): | |||||
from frappe.model.code import get_obj | |||||
return get_obj(dt, dn, doc, doclist, with_children) | |||||
def doc(doctype=None, name=None, fielddata=None): | |||||
return Document(doctype, name, fielddata) | |||||
def new_doc(doctype, parent_doc=None, parentfield=None): | def new_doc(doctype, parent_doc=None, parentfield=None): | ||||
from frappe.model.create_new import get_new_doc | from frappe.model.create_new import get_new_doc | ||||
return get_new_doc(doctype, parent_doc, parentfield) | return get_new_doc(doctype, parent_doc, parentfield) | ||||
@@ -328,21 +321,10 @@ def doclist(lst=None): | |||||
from frappe.model.doclist import DocList | from frappe.model.doclist import DocList | ||||
return DocList(lst) | return DocList(lst) | ||||
def bean(doctype=None, name=None, copy=None): | |||||
"""return an instance of the object, wrapped as a Bean (frappe.model.bean)""" | |||||
from frappe.model.bean import Bean | |||||
if copy: | |||||
return Bean(copy_doc(copy)) | |||||
else: | |||||
return Bean(doctype, name) | |||||
def set_value(doctype, docname, fieldname, value): | def set_value(doctype, docname, fieldname, value): | ||||
import frappe.client | import frappe.client | ||||
return frappe.client.set_value(doctype, docname, fieldname, value) | return frappe.client.set_value(doctype, docname, fieldname, value) | ||||
def get_doclist(doctype, name=None): | |||||
return bean(doctype, name).doclist | |||||
def get_doc(arg1, arg2=None): | def get_doc(arg1, arg2=None): | ||||
import frappe.model.document | import frappe.model.document | ||||
return frappe.model.document.get_doc(arg1, arg2) | return frappe.model.document.get_doc(arg1, arg2) | ||||
@@ -41,7 +41,7 @@ def handle(): | |||||
elif call=="resource": | elif call=="resource": | ||||
if "run_method" in frappe.local.form_dict: | if "run_method" in frappe.local.form_dict: | ||||
bean = frappe.bean(doctype, name) | |||||
bean = frappe.get_doc(doctype, name) | |||||
if frappe.local.request.method=="GET": | if frappe.local.request.method=="GET": | ||||
if not bean.has_permission("read"): | if not bean.has_permission("read"): | ||||
@@ -14,7 +14,7 @@ def get(doctype, name=None, filters=None): | |||||
name = frappe.db.get_value(doctype, json.loads(filters)) | name = frappe.db.get_value(doctype, json.loads(filters)) | ||||
if not name: | if not name: | ||||
raise Exception, "No document found for given filters" | raise Exception, "No document found for given filters" | ||||
return [d.fields for d in frappe.bean(doctype, name).doclist] | |||||
return [d.fields for d in frappe.get_doc(doctype, name).doclist] | |||||
@frappe.whitelist() | @frappe.whitelist() | ||||
def get_value(doctype, fieldname, filters=None, as_dict=True, debug=False): | def get_value(doctype, fieldname, filters=None, as_dict=True, debug=False): | ||||
@@ -32,11 +32,11 @@ def set_value(doctype, name, fieldname, value): | |||||
doc = frappe.db.get_value(doctype, name, ["parenttype", "parent"], as_dict=True) | doc = frappe.db.get_value(doctype, name, ["parenttype", "parent"], as_dict=True) | ||||
if doc and doc.parent: | if doc and doc.parent: | ||||
bean = frappe.bean(doc.parenttype, doc.parent) | |||||
bean = frappe.get_doc(doc.parenttype, doc.parent) | |||||
child = bean.doclist.getone({"doctype": doctype, "name": name}) | child = bean.doclist.getone({"doctype": doctype, "name": name}) | ||||
child.set(fieldname, value) | child.set(fieldname, value) | ||||
else: | else: | ||||
bean = frappe.bean(doctype, name) | |||||
bean = frappe.get_doc(doctype, name) | |||||
bean.set(fieldname, value) | bean.set(fieldname, value) | ||||
bean.save() | bean.save() | ||||
@@ -54,12 +54,12 @@ def insert(doclist): | |||||
if doclist[0].get("parent") and doclist[0].get("parenttype"): | if doclist[0].get("parent") and doclist[0].get("parenttype"): | ||||
# inserting a child record | # inserting a child record | ||||
d = doclist[0] | d = doclist[0] | ||||
bean = frappe.bean(d["parenttype"], d["parent"]) | |||||
bean = frappe.get_doc(d["parenttype"], d["parent"]) | |||||
bean.append(d) | bean.append(d) | ||||
bean.save() | bean.save() | ||||
return [d] | return [d] | ||||
else: | else: | ||||
bean = frappe.bean(doclist).insert() | |||||
bean = frappe.get_doc(doclist).insert() | |||||
return [d.fields for d in bean.doclist] | return [d.fields for d in bean.doclist] | ||||
@frappe.whitelist() | @frappe.whitelist() | ||||
@@ -67,7 +67,7 @@ def save(doclist): | |||||
if isinstance(doclist, basestring): | if isinstance(doclist, basestring): | ||||
doclist = json.loads(doclist) | doclist = json.loads(doclist) | ||||
bean = frappe.bean(doclist).save() | |||||
bean = frappe.get_doc(doclist).save() | |||||
return [d.fields for d in bean.doclist] | return [d.fields for d in bean.doclist] | ||||
@frappe.whitelist() | @frappe.whitelist() | ||||
@@ -80,14 +80,14 @@ def submit(doclist): | |||||
if isinstance(doclist, basestring): | if isinstance(doclist, basestring): | ||||
doclist = json.loads(doclist) | doclist = json.loads(doclist) | ||||
doclistobj = frappe.bean(doclist) | |||||
doclistobj = frappe.get_doc(doclist) | |||||
doclistobj.submit() | doclistobj.submit() | ||||
return [d.fields for d in doclist] | return [d.fields for d in doclist] | ||||
@frappe.whitelist() | @frappe.whitelist() | ||||
def cancel(doctype, name): | def cancel(doctype, name): | ||||
wrapper = frappe.bean(doctype, name) | |||||
wrapper = frappe.get_doc(doctype, name) | |||||
wrapper.cancel() | wrapper.cancel() | ||||
return [d.fields for d in wrapper.doclist] | return [d.fields for d in wrapper.doclist] | ||||
@@ -106,7 +106,7 @@ def set_default(key, value, parent=None): | |||||
def make_width_property_setter(): | def make_width_property_setter(): | ||||
doclist = json.loads(frappe.form_dict.doclist) | doclist = json.loads(frappe.form_dict.doclist) | ||||
if doclist[0]["doctype"]=="Property Setter" and doclist[0]["property"]=="width": | if doclist[0]["doctype"]=="Property Setter" and doclist[0]["property"]=="width": | ||||
bean = frappe.bean(doclist) | |||||
bean = frappe.get_doc(doclist) | |||||
bean.ignore_permissions = True | bean.ignore_permissions = True | ||||
bean.insert() | bean.insert() | ||||
@@ -119,7 +119,7 @@ def bulk_update(docs): | |||||
ddoc = {key: val for key, val in doc.iteritems() if key not in ['doctype', 'docname']} | ddoc = {key: val for key, val in doc.iteritems() if key not in ['doctype', 'docname']} | ||||
doctype = doc['doctype'] | doctype = doc['doctype'] | ||||
docname = doc['docname'] | docname = doc['docname'] | ||||
bean = frappe.bean(doctype, docname) | |||||
bean = frappe.get_doc(doctype, docname) | |||||
bean.update(ddoc) | bean.update(ddoc) | ||||
bean.save() | bean.save() | ||||
except: | except: | ||||
@@ -9,7 +9,7 @@ import frappe, unittest, json | |||||
# class TestComment(unittest.TestCase): | # class TestComment(unittest.TestCase): | ||||
# def setUp(self): | # def setUp(self): | ||||
# self.cleanup() | # self.cleanup() | ||||
# self.test_rec = frappe.bean({ | |||||
# self.test_rec = frappe.get_doc({ | |||||
# "doctype":"Event", | # "doctype":"Event", | ||||
# "subject":"__Comment Test Event", | # "subject":"__Comment Test Event", | ||||
# "event_type": "Private", | # "event_type": "Private", | ||||
@@ -29,21 +29,21 @@ import frappe, unittest, json | |||||
# frappe.db.sql("""alter table `tabEvent` drop column `_comments`""") | # frappe.db.sql("""alter table `tabEvent` drop column `_comments`""") | ||||
# | # | ||||
# def test_add_comment(self): | # def test_add_comment(self): | ||||
# self.comment = frappe.bean({ | |||||
# self.comment = frappe.get_doc({ | |||||
# "doctype":"Comment", | # "doctype":"Comment", | ||||
# "comment_doctype": self.test_rec.doctype, | # "comment_doctype": self.test_rec.doctype, | ||||
# "comment_docname": self.test_rec.name, | # "comment_docname": self.test_rec.name, | ||||
# "comment": "__Test Comment" | # "comment": "__Test Comment" | ||||
# }).insert() | # }).insert() | ||||
# | # | ||||
# test_rec = frappe.doc(self.test_rec.doctype, self.test_rec.name) | |||||
# test_rec = frappe.get_doc(self.test_rec.doctype, self.test_rec.name) | |||||
# _comments = json.loads(test_rec.get("_comments")) | # _comments = json.loads(test_rec.get("_comments")) | ||||
# self.assertTrue(_comments[0].get("comment")=="__Test Comment") | # self.assertTrue(_comments[0].get("comment")=="__Test Comment") | ||||
# | # | ||||
# def test_remove_comment(self): | # def test_remove_comment(self): | ||||
# self.test_add_comment() | # self.test_add_comment() | ||||
# frappe.delete_doc("Comment", self.comment.name) | # frappe.delete_doc("Comment", self.comment.name) | ||||
# test_rec = frappe.doc(self.test_rec.doctype, self.test_rec.name) | |||||
# test_rec = frappe.get_doc(self.test_rec.doctype, self.test_rec.name) | |||||
# _comments = json.loads(test_rec.get("_comments")) | # _comments = json.loads(test_rec.get("_comments")) | ||||
# self.assertEqual(len(_comments), 0) | # self.assertEqual(len(_comments), 0) | ||||
# | # | ||||
@@ -16,7 +16,7 @@ from frappe.model.document import Document | |||||
class Communication(Document): | class Communication(Document): | ||||
def get_parent_bean(self): | def get_parent_bean(self): | ||||
return frappe.bean(self.parenttype, self.parent) | |||||
return frappe.get_doc(self.parenttype, self.parent) | |||||
def update_parent(self): | def update_parent(self): | ||||
"""update status of parent Lead or Contact based on who is replying""" | """update status of parent Lead or Contact based on who is replying""" | ||||
@@ -114,7 +114,7 @@ def create_custom_field_if_values_exist(doctype, df): | |||||
frappe.db.sql("""select count(*) from `tab{doctype}` | frappe.db.sql("""select count(*) from `tab{doctype}` | ||||
where ifnull({fieldname},'')!=''""".format(doctype=doctype, fieldname=df.fieldname))[0][0] and \ | where ifnull({fieldname},'')!=''""".format(doctype=doctype, fieldname=df.fieldname))[0][0] and \ | ||||
not frappe.db.get_value("Custom Field", {"dt": doctype, "fieldname": df.fieldname}): | not frappe.db.get_value("Custom Field", {"dt": doctype, "fieldname": df.fieldname}): | ||||
frappe.bean({ | |||||
frappe.get_doc({ | |||||
"doctype":"Custom Field", | "doctype":"Custom Field", | ||||
"dt": doctype, | "dt": doctype, | ||||
"permlevel": df.permlevel or 0, | "permlevel": df.permlevel or 0, | ||||
@@ -291,7 +291,7 @@ class CustomizeForm(Document): | |||||
if d.doctype=="Customize Form Field": | if d.doctype=="Customize Form Field": | ||||
fields.append(d.fieldname) | fields.append(d.fieldname) | ||||
d = frappe.doc('Property Setter') | |||||
d = frappe.get_doc('Property Setter') | |||||
d.doctype_or_field = 'DocType' | d.doctype_or_field = 'DocType' | ||||
d.doc_type = self.doc_type | d.doc_type = self.doc_type | ||||
d.property = "_idx" | d.property = "_idx" | ||||
@@ -7,6 +7,7 @@ import frappe | |||||
from frappe.model.document import Document | from frappe.model.document import Document | ||||
class Defaultvalue(Document): | class Defaultvalue(Document): | ||||
pass | |||||
def on_doctype_update(): | def on_doctype_update(): | ||||
if not frappe.db.sql("""show index from `tabDefaultValue` | if not frappe.db.sql("""show index from `tabDefaultValue` | ||||
@@ -328,16 +328,18 @@ def validate_permissions(permissions, for_remove=False): | |||||
def make_module_and_roles(doc, perm_fieldname="permissions"): | def make_module_and_roles(doc, perm_fieldname="permissions"): | ||||
try: | try: | ||||
if not frappe.db.exists("Module Def", doc.module): | if not frappe.db.exists("Module Def", doc.module): | ||||
m = frappe.bean({"doctype": "Module Def", "module_name": doc.module}) | |||||
m = frappe.get_doc({"doctype": "Module Def", "module_name": doc.module}) | |||||
m.ignore_mandatory = m.ignore_permissions = True | |||||
m.insert() | m.insert() | ||||
default_roles = ["Administrator", "Guest", "All"] | default_roles = ["Administrator", "Guest", "All"] | ||||
roles = [p.role for p in doc.get(permissions)] + default_roles | |||||
roles = [p.role for p in doc.get("permissions") or []] + default_roles | |||||
for role in list(set(roles)): | for role in list(set(roles)): | ||||
if not frappe.db.exists("Role", role): | if not frappe.db.exists("Role", role): | ||||
r = frappe.bean({"doctype": "Role", "role_name": role}) | |||||
r = frappe.get_doc({"doctype": "Role", "role_name": role}) | |||||
r.role_name = role | r.role_name = role | ||||
r.ignore_mandatory = r.ignore_permissions = True | |||||
r.insert() | r.insert() | ||||
except frappe.DoesNotExistError, e: | except frappe.DoesNotExistError, e: | ||||
pass | pass | ||||
@@ -33,7 +33,7 @@ def has_permission(doc, bean=None): | |||||
# need full doclist to check roles and users | # need full doclist to check roles and users | ||||
if not bean: | if not bean: | ||||
bean = frappe.bean("Event", doc.name) | |||||
bean = frappe.get_doc("Event", doc.name) | |||||
if len(bean.doclist)==1: | if len(bean.doclist)==1: | ||||
return False | return False | ||||
@@ -35,25 +35,25 @@ import unittest | |||||
class TestEvent(unittest.TestCase): | class TestEvent(unittest.TestCase): | ||||
# def setUp(self): | # def setUp(self): | ||||
# user = frappe.bean("User", "test1@example.com") | |||||
# user.get_controller().add_roles("Website Manager") | |||||
# user = frappe.get_doc("User", "test1@example.com") | |||||
# user.add_roles("Website Manager") | |||||
def tearDown(self): | def tearDown(self): | ||||
frappe.set_user("Administrator") | frappe.set_user("Administrator") | ||||
def test_allowed_public(self): | def test_allowed_public(self): | ||||
frappe.set_user("test1@example.com") | frappe.set_user("test1@example.com") | ||||
doc = frappe.doc("Event", frappe.db.get_value("Event", {"subject":"_Test Event 1"})) | |||||
doc = frappe.get_doc("Event", frappe.db.get_value("Event", {"subject":"_Test Event 1"})) | |||||
self.assertTrue(frappe.has_permission("Event", refdoc=doc)) | self.assertTrue(frappe.has_permission("Event", refdoc=doc)) | ||||
def test_not_allowed_private(self): | def test_not_allowed_private(self): | ||||
frappe.set_user("test1@example.com") | frappe.set_user("test1@example.com") | ||||
doc = frappe.doc("Event", frappe.db.get_value("Event", {"subject":"_Test Event 2"})) | |||||
doc = frappe.get_doc("Event", frappe.db.get_value("Event", {"subject":"_Test Event 2"})) | |||||
self.assertFalse(frappe.has_permission("Event", refdoc=doc)) | self.assertFalse(frappe.has_permission("Event", refdoc=doc)) | ||||
def test_allowed_private_if_in_event_user(self): | def test_allowed_private_if_in_event_user(self): | ||||
frappe.set_user("test1@example.com") | frappe.set_user("test1@example.com") | ||||
doc = frappe.doc("Event", frappe.db.get_value("Event", {"subject":"_Test Event 3"})) | |||||
doc = frappe.get_doc("Event", frappe.db.get_value("Event", {"subject":"_Test Event 3"})) | |||||
self.assertTrue(frappe.has_permission("Event", refdoc=doc)) | self.assertTrue(frappe.has_permission("Event", refdoc=doc)) | ||||
def test_event_list(self): | def test_event_list(self): | ||||
@@ -34,7 +34,7 @@ class FileData(Document): | |||||
if self.attached_to_name: | if self.attached_to_name: | ||||
# check persmission | # check persmission | ||||
try: | try: | ||||
if not self.bean.ignore_permissions and \ | |||||
if not self.ignore_permissions and \ | |||||
not frappe.has_permission(self.attached_to_doctype, "write", self.attached_to_name): | not frappe.has_permission(self.attached_to_doctype, "write", self.attached_to_name): | ||||
frappe.msgprint(frappe._("No permission to write / remove."), raise_exception=True) | frappe.msgprint(frappe._("No permission to write / remove."), raise_exception=True) | ||||
@@ -9,9 +9,12 @@ import frappe | |||||
from frappe.model.document import Document | from frappe.model.document import Document | ||||
class NotificationCount(Document): | class NotificationCount(Document): | ||||
pass | |||||
@frappe.whitelist() | @frappe.whitelist() | ||||
def get_notifications(): | def get_notifications(): | ||||
if frappe.in_install_app: | |||||
return | |||||
config = get_notification_config() | config = get_notification_config() | ||||
can_read = frappe.user.get_can_read() | can_read = frappe.user.get_can_read() | ||||
open_count_doctype = {} | open_count_doctype = {} | ||||
@@ -31,7 +34,7 @@ def get_notifications(): | |||||
result = frappe.get_list(d, fields=["count(*)"], | result = frappe.get_list(d, fields=["count(*)"], | ||||
filters=[[d, key, "=", condition[key]]], as_list=True, limit_page_length=1)[0][0] | filters=[[d, key, "=", condition[key]]], as_list=True, limit_page_length=1)[0][0] | ||||
frappe.doc({"doctype":"Notification Count", "for_doctype":d, | |||||
frappe.get_doc({"doctype":"Notification Count", "for_doctype":d, | |||||
"open_count":result}).insert() | "open_count":result}).insert() | ||||
open_count_doctype[d] = result | open_count_doctype[d] = result | ||||
@@ -41,7 +44,7 @@ def get_notifications(): | |||||
open_count_module[m] = notification_count[m] | open_count_module[m] = notification_count[m] | ||||
else: | else: | ||||
open_count_module[m] = frappe.get_attr(config.for_module[m])() | open_count_module[m] = frappe.get_attr(config.for_module[m])() | ||||
frappe.doc({"doctype":"Notification Count", "for_doctype":m, | |||||
frappe.get_doc({"doctype":"Notification Count", "for_doctype":m, | |||||
"open_count":open_count_module[m]}).insert() | "open_count":open_count_module[m]}).insert() | ||||
return { | return { | ||||
@@ -48,7 +48,7 @@ def get_args(): | |||||
<pre>%s</pre>""" % repr(frappe.form_dict) | <pre>%s</pre>""" % repr(frappe.form_dict) | ||||
} | } | ||||
bean = frappe.bean(frappe.form_dict.doctype, frappe.form_dict.name) | |||||
bean = frappe.get_doc(frappe.form_dict.doctype, frappe.form_dict.name) | |||||
for ptype in ("read", "print"): | for ptype in ("read", "print"): | ||||
if not frappe.has_permission(bean.doctype, ptype, bean.doc): | if not frappe.has_permission(bean.doctype, ptype, bean.doc): | ||||
return { | return { | ||||
@@ -66,7 +66,7 @@ def get_html(doc, doclist, print_format=None): | |||||
from jinja2 import Environment | from jinja2 import Environment | ||||
if isinstance(doc, basestring) and isinstance(doclist, basestring): | if isinstance(doc, basestring) and isinstance(doclist, basestring): | ||||
bean = frappe.bean(doc, doclist) | |||||
bean = frappe.get_doc(doc, doclist) | |||||
doc = bean.doc | doc = bean.doc | ||||
doclist = bean.doclist | doclist = bean.doclist | ||||
@@ -55,7 +55,7 @@ class PropertySetter(Document): | |||||
validate_fields_for_doctype(self.doc_type) | validate_fields_for_doctype(self.doc_type) | ||||
def make_property_setter(doctype, fieldname, property, value, property_type, for_doctype = False): | def make_property_setter(doctype, fieldname, property, value, property_type, for_doctype = False): | ||||
return frappe.bean({ | |||||
return frappe.get_doc({ | |||||
"doctype":"Property Setter", | "doctype":"Property Setter", | ||||
"doctype_or_field": for_doctype and "DocType" or "DocField", | "doctype_or_field": for_doctype and "DocType" or "DocField", | ||||
"doc_type": doctype, | "doc_type": doctype, | ||||
@@ -20,7 +20,7 @@ class Todo(Document): | |||||
if not self.reference_type and self.reference_name: | if not self.reference_type and self.reference_name: | ||||
return | return | ||||
comment = frappe.bean({ | |||||
comment = frappe.get_doc({ | |||||
"doctype":"Comment", | "doctype":"Comment", | ||||
"comment_by": frappe.session.user, | "comment_by": frappe.session.user, | ||||
"comment_doctype": self.reference_type, | "comment_doctype": self.reference_type, | ||||
@@ -11,11 +11,11 @@ class TestUser(unittest.TestCase): | |||||
frappe.db.sql("""delete from tabUserRole where role='_Test Role 2'""") | frappe.db.sql("""delete from tabUserRole where role='_Test Role 2'""") | ||||
delete_doc("Role","_Test Role 2") | delete_doc("Role","_Test Role 2") | ||||
user = frappe.bean(copy=test_records[1]) | |||||
user = frappe.get_doc(copy=test_records[1]) | |||||
user.email = "_test@example.com" | user.email = "_test@example.com" | ||||
user.insert() | user.insert() | ||||
frappe.bean({"doctype": "ToDo", "description": "_Test"}).insert() | |||||
frappe.get_doc({"doctype": "ToDo", "description": "_Test"}).insert() | |||||
delete_doc("User", "_test@example.com") | delete_doc("User", "_test@example.com") | ||||
@@ -23,7 +23,7 @@ class TestUser(unittest.TestCase): | |||||
("_test@example.com",))) | ("_test@example.com",))) | ||||
from frappe.core.doctype.role.test_role import test_records as role_records | from frappe.core.doctype.role.test_role import test_records as role_records | ||||
frappe.bean(copy=role_records[1]).insert() | |||||
frappe.get_doc(copy=role_records[1]).insert() | |||||
def test_get_value(self): | def test_get_value(self): | ||||
self.assertEquals(frappe.db.get_value("User", "test@example.com"), "test@example.com") | self.assertEquals(frappe.db.get_value("User", "test@example.com"), "test@example.com") | ||||
@@ -250,7 +250,7 @@ class User(Document): | |||||
"role": role | "role": role | ||||
}) | }) | ||||
self.bean.save() | |||||
self.save() | |||||
@frappe.whitelist() | @frappe.whitelist() | ||||
def get_languages(): | def get_languages(): | ||||
@@ -312,7 +312,7 @@ def sign_up(email, full_name): | |||||
TIMEDIFF(%s, modified) > '1:00:00' """, now())[0][0] > 200: | TIMEDIFF(%s, modified) > '1:00:00' """, now())[0][0] > 200: | ||||
raise Exception, "Too Many New Users" | raise Exception, "Too Many New Users" | ||||
from frappe.utils import random_string | from frappe.utils import random_string | ||||
user = frappe.bean({ | |||||
user = frappe.get_doc({ | |||||
"doctype":"User", | "doctype":"User", | ||||
"email": email, | "email": email, | ||||
"first_name": full_name, | "first_name": full_name, | ||||
@@ -333,8 +333,8 @@ def reset_password(user): | |||||
if frappe.db.sql("""select name from tabUser where name=%s""", (user,)): | if frappe.db.sql("""select name from tabUser where name=%s""", (user,)): | ||||
# Hack! | # Hack! | ||||
frappe.session["user"] = "Administrator" | frappe.session["user"] = "Administrator" | ||||
user = frappe.bean("User", user) | |||||
user.get_controller().reset_password() | |||||
user = frappe.get_doc("User", user) | |||||
user.reset_password() | |||||
return "Password reset details sent to your email." | return "Password reset details sent to your email." | ||||
else: | else: | ||||
return "No such user (%s)" % user | return "No such user (%s)" % user | ||||
@@ -9,13 +9,14 @@ import frappe, json | |||||
from frappe.model.document import Document | from frappe.model.document import Document | ||||
class Version(Document): | class Version(Document): | ||||
pass | |||||
@frappe.whitelist() | @frappe.whitelist() | ||||
def restore(version): | def restore(version): | ||||
if not "System Manager" in frappe.get_roles(): | if not "System Manager" in frappe.get_roles(): | ||||
raise frappe.PermissionError | raise frappe.PermissionError | ||||
version = frappe.doc("Version", version) | |||||
version = frappe.get_doc("Version", version) | |||||
doclist = json.loads(version.doclist_json) | doclist = json.loads(version.doclist_json) | ||||
# check if renamed | # check if renamed | ||||
@@ -27,4 +28,4 @@ def restore(version): | |||||
doclist[0]["modified"] = frappe.db.get_value(version.ref_doctype, version.docname, "modified") | doclist[0]["modified"] = frappe.db.get_value(version.ref_doctype, version.docname, "modified") | ||||
# overwrite | # overwrite | ||||
frappe.bean(doclist).save() | |||||
frappe.get_doc(doclist).save() |
@@ -21,7 +21,7 @@ class Workflow(Document): | |||||
meta = frappe.get_meta(self.document_type) | meta = frappe.get_meta(self.document_type) | ||||
if not meta.get_field(self.workflow_state_field): | if not meta.get_field(self.workflow_state_field): | ||||
# create custom field | # create custom field | ||||
frappe.bean([{ | |||||
frappe.get_doc([{ | |||||
"doctype":"Custom Field", | "doctype":"Custom Field", | ||||
"dt": self.document_type, | "dt": self.document_type, | ||||
"__islocal": 1, | "__islocal": 1, | ||||
@@ -399,13 +399,13 @@ def upload(rows = None, submit_after_import=None, ignore_encoding_errors=False, | |||||
check_record(d, None, doctype_dl) | check_record(d, None, doctype_dl) | ||||
if overwrite and frappe.db.exists(doctype, doclist[0]["name"]): | if overwrite and frappe.db.exists(doctype, doclist[0]["name"]): | ||||
bean = frappe.bean(doctype, doclist[0]["name"]) | |||||
bean = frappe.get_doc(doctype, doclist[0]["name"]) | |||||
bean.ignore_links = ignore_links | bean.ignore_links = ignore_links | ||||
bean.doclist.update(doclist) | bean.doclist.update(doclist) | ||||
bean.save() | bean.save() | ||||
ret.append('Updated row (#%d) %s' % (row_idx + 1, getlink(bean.doctype, bean.name))) | ret.append('Updated row (#%d) %s' % (row_idx + 1, getlink(bean.doctype, bean.name))) | ||||
else: | else: | ||||
bean = frappe.bean(doclist) | |||||
bean = frappe.get_doc(doclist) | |||||
bean.ignore_links = ignore_links | bean.ignore_links = ignore_links | ||||
bean.insert() | bean.insert() | ||||
ret.append('Inserted row (#%d) %s' % (row_idx + 1, getlink(bean.doctype, bean.name))) | ret.append('Inserted row (#%d) %s' % (row_idx + 1, getlink(bean.doctype, bean.name))) | ||||
@@ -417,7 +417,7 @@ def upload(rows = None, submit_after_import=None, ignore_encoding_errors=False, | |||||
if parenttype: | if parenttype: | ||||
# child doc | # child doc | ||||
doc = frappe.doc(doctype) | |||||
doc = frappe.get_doc(doctype) | |||||
doc.fields.update(doclist[0]) | doc.fields.update(doclist[0]) | ||||
if parenttype: | if parenttype: | ||||
doc.parenttype = parenttype | doc.parenttype = parenttype | ||||
@@ -454,7 +454,7 @@ def validate_parent(parent_list, parenttype, ret, error): | |||||
parent_list = list(set(parent_list)) | parent_list = list(set(parent_list)) | ||||
for p in parent_list: | for p in parent_list: | ||||
try: | try: | ||||
obj = frappe.bean(parenttype, p) | |||||
obj = frappe.get_doc(parenttype, p) | |||||
obj.run_method("validate") | obj.run_method("validate") | ||||
obj.run_method("on_update") | obj.run_method("on_update") | ||||
except Exception, e: | except Exception, e: | ||||
@@ -503,7 +503,7 @@ def export_json(doctype, name, path): | |||||
if not name or name=="-": | if not name or name=="-": | ||||
name = doctype | name = doctype | ||||
with open(path, "w") as outfile: | with open(path, "w") as outfile: | ||||
doclist = [d.fields for d in frappe.bean(doctype, name).doclist] | |||||
doclist = [d.fields for d in frappe.get_doc(doctype, name).doclist] | |||||
for d in doclist: | for d in doclist: | ||||
if d.get("parent"): | if d.get("parent"): | ||||
del d["parent"] | del d["parent"] | ||||
@@ -529,7 +529,7 @@ def import_doclist(path, overwrite=False, ignore_links=False, ignore_insert=Fals | |||||
files = [path] | files = [path] | ||||
def _import_doclist(d): | def _import_doclist(d): | ||||
b = frappe.bean(d) | |||||
b = frappe.get_doc(d) | |||||
b.ignore_links = ignore_links | b.ignore_links = ignore_links | ||||
if insert: | if insert: | ||||
b.set("__islocal", True) | b.set("__islocal", True) | ||||
@@ -36,7 +36,7 @@ def remove(doctype, name): | |||||
@frappe.whitelist() | @frappe.whitelist() | ||||
def add(parent, role, permlevel): | def add(parent, role, permlevel): | ||||
frappe.only_for("System Manager") | frappe.only_for("System Manager") | ||||
frappe.doc(fielddata={ | |||||
frappe.get_doc({ | |||||
"doctype":"DocPerm", | "doctype":"DocPerm", | ||||
"__islocal": 1, | "__islocal": 1, | ||||
"parent": parent, | "parent": parent, | ||||
@@ -475,7 +475,7 @@ class Database: | |||||
def exists(self, dt, dn=None): | def exists(self, dt, dn=None): | ||||
if isinstance(dt, basestring): | if isinstance(dt, basestring): | ||||
if dt==dn: | |||||
if dt!="DocType" and dt==dn: | |||||
return True # single always exists (!) | return True # single always exists (!) | ||||
try: | try: | ||||
return self.sql('select name from `tab%s` where name=%s' % (dt, '%s'), (dn,)) | return self.sql('select name from `tab%s` where name=%s' % (dt, '%s'), (dn,)) | ||||
@@ -82,7 +82,7 @@ def set_default(key, value, parent, parenttype="Control Panel"): | |||||
add_default(key, value, parent) | add_default(key, value, parent) | ||||
def add_default(key, value, parent, parenttype=None): | def add_default(key, value, parent, parenttype=None): | ||||
d = frappe.doc({ | |||||
d = frappe.get_doc({ | |||||
"doctype": "DefaultValue", | "doctype": "DefaultValue", | ||||
"parent": parent, | "parent": parent, | ||||
"parenttype": parenttype or "Control Panel", | "parenttype": parenttype or "Control Panel", | ||||
@@ -33,7 +33,7 @@ def web_logout(): | |||||
@frappe.whitelist(allow_guest=True) | @frappe.whitelist(allow_guest=True) | ||||
def run_custom_method(doctype, name, custom_method): | def run_custom_method(doctype, name, custom_method): | ||||
"""cmd=run_custom_method&doctype={doctype}&name={name}&custom_method={custom_method}""" | """cmd=run_custom_method&doctype={doctype}&name={name}&custom_method={custom_method}""" | ||||
bean = frappe.bean(doctype, name) | |||||
bean = frappe.get_doc(doctype, name) | |||||
controller = bean.get_controller() | controller = bean.get_controller() | ||||
if getattr(controller, custom_method, frappe._dict()).is_whitelisted: | if getattr(controller, custom_method, frappe._dict()).is_whitelisted: | ||||
frappe.call(getattr(controller, custom_method), **frappe.local.form_dict) | frappe.call(getattr(controller, custom_method), **frappe.local.form_dict) | ||||
@@ -130,7 +130,7 @@ def set_all_patches_as_completed(app): | |||||
patch_path = os.path.join(frappe.get_pymodule_path(app), "patches.txt") | patch_path = os.path.join(frappe.get_pymodule_path(app), "patches.txt") | ||||
if os.path.exists(patch_path): | if os.path.exists(patch_path): | ||||
for patch in frappe.get_file_items(patch_path): | for patch in frappe.get_file_items(patch_path): | ||||
frappe.doc({ | |||||
frappe.get_doc({ | |||||
"doctype": "Patch Log", | "doctype": "Patch Log", | ||||
"patch": patch | "patch": patch | ||||
}).insert() | }).insert() | ||||
@@ -19,7 +19,7 @@ def insert(doclist): | |||||
else: | else: | ||||
d.set("__islocal", 1) | d.set("__islocal", 1) | ||||
wrapper = frappe.bean(doclist) | |||||
wrapper = frappe.get_doc(doclist) | |||||
wrapper.save() | wrapper.save() | ||||
return wrapper | return wrapper | ||||
@@ -42,7 +42,7 @@ class BaseDocument(object): | |||||
else: | else: | ||||
value = self.__dict__.get(key, default) | value = self.__dict__.get(key, default) | ||||
if value is None and key in self.get_table_fields(): | |||||
if value is None and key!="_meta" and key in (d.fieldname for d in self.get_table_fields()): | |||||
self.set(key, []) | self.set(key, []) | ||||
value = self.__dict__.get(key) | value = self.__dict__.get(key) | ||||
@@ -111,6 +111,9 @@ class BaseDocument(object): | |||||
for fieldname in self.valid_columns: | for fieldname in self.valid_columns: | ||||
d[fieldname] = self.get(fieldname) | d[fieldname] = self.get(fieldname) | ||||
return d | return d | ||||
def is_new(self): | |||||
return self.get("__islocal") | |||||
@property | @property | ||||
def valid_columns(self): | def valid_columns(self): | ||||
@@ -178,7 +181,7 @@ class BaseDocument(object): | |||||
self.docstatus = cint(self.docstatus) | self.docstatus = cint(self.docstatus) | ||||
def set_missing_values(self, d): | def set_missing_values(self, d): | ||||
for key, value in d.iteritems(): | |||||
for key, value in d.get_valid_dict().iteritems(): | |||||
if self.get(key) is None: | if self.get(key) is None: | ||||
self.set(key, value) | self.set(key, value) | ||||
@@ -51,7 +51,6 @@ def get_new_doc(doctype, parent_doc = None, parentfield = None): | |||||
else: | else: | ||||
ref_docname = frappe.db.get_default(ref_fieldname) | ref_docname = frappe.db.get_default(ref_fieldname) | ||||
doc.set(d.fieldname, frappe.db.get_value(ref_doctype, ref_docname, d.fieldname)) | doc.set(d.fieldname, frappe.db.get_value(ref_doctype, ref_docname, d.fieldname)) | ||||
else: | else: | ||||
doc.set(d.fieldname, d.default) | doc.set(d.fieldname, d.default) | ||||
@@ -72,7 +72,7 @@ class Document(BaseDocument): | |||||
self.update(d, valid_columns = d.keys()) | self.update(d, valid_columns = d.keys()) | ||||
for df in self.get_table_fields(): | for df in self.get_table_fields(): | ||||
children = frappe.db.get_values(df.options, | |||||
children = frappe.db.get_values(df.options, | |||||
{"parent": self.name, "parenttype": self.doctype, "parentfield": df.fieldname}, | {"parent": self.name, "parenttype": self.doctype, "parentfield": df.fieldname}, | ||||
"*", as_dict=True) | "*", as_dict=True) | ||||
if children: | if children: | ||||
@@ -81,13 +81,14 @@ class Document(BaseDocument): | |||||
self.set(df.fieldname, []) | self.set(df.fieldname, []) | ||||
def has_permission(self, permtype): | def has_permission(self, permtype): | ||||
if getattr(self, "_ignore_permissions", False): | |||||
if getattr(self, "ignore_permissions", False): | |||||
return True | return True | ||||
return frappe.has_permission(self.doctype, permtype, self) | return frappe.has_permission(self.doctype, permtype, self) | ||||
def insert(self): | |||||
# check links | |||||
# check permissions | |||||
def insert(self, ignore_permissions=None): | |||||
if ignore_permissions!=None: | |||||
self.ignore_permissions = ignore_permissions | |||||
self.set("__islocal", True) | self.set("__islocal", True) | ||||
if not self.has_permission("create"): | if not self.has_permission("create"): | ||||
@@ -114,7 +115,10 @@ class Document(BaseDocument): | |||||
self.run_method("after_insert") | self.run_method("after_insert") | ||||
self.run_post_save_methods() | self.run_post_save_methods() | ||||
def save(self): | |||||
def save(self, ignore_permissions=None): | |||||
if ignore_permissions!=None: | |||||
self.ignore_permissions = ignore_permissions | |||||
if self.get("__islocal") or not self.get("name"): | if self.get("__islocal") or not self.get("name"): | ||||
self.insert() | self.insert() | ||||
return | return | ||||
@@ -135,7 +139,7 @@ class Document(BaseDocument): | |||||
# children | # children | ||||
child_map = {} | child_map = {} | ||||
ignore_children_type = self.get("_ignore_children_type", []) | |||||
ignore_children_type = self.get("ignore_children_type") or [] | |||||
for d in self.get_all_children(): | for d in self.get_all_children(): | ||||
d.parent = self.name # rename if reqd | d.parent = self.name # rename if reqd | ||||
@@ -199,13 +203,13 @@ class Document(BaseDocument): | |||||
self.set_missing_values(new_doc) | self.set_missing_values(new_doc) | ||||
# children | # children | ||||
for df in self.meta.get("fields", {"fieldtype":"Table"}): | |||||
for df in self.get_table_fields(): | |||||
new_doc = frappe.new_doc(df.options) | new_doc = frappe.new_doc(df.options) | ||||
value = self.get(df.fieldname) | value = self.get(df.fieldname) | ||||
if isinstance(value, list): | if isinstance(value, list): | ||||
for d in value: | for d in value: | ||||
d.set_missing_values(new_doc) | d.set_missing_values(new_doc) | ||||
def _check_if_latest(self): | def _check_if_latest(self): | ||||
conflict = False | conflict = False | ||||
self._action = "save" | self._action = "save" | ||||
@@ -327,6 +331,9 @@ class Document(BaseDocument): | |||||
self.save() | self.save() | ||||
def run_before_save_methods(self): | def run_before_save_methods(self): | ||||
if getattr(self, "ignore_validate", False): | |||||
return | |||||
if self._action=="save": | if self._action=="save": | ||||
self.run_method("validate") | self.run_method("validate") | ||||
self.run_method("before_save") | self.run_method("before_save") | ||||
@@ -4,17 +4,17 @@ | |||||
# metadata | # metadata | ||||
from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
import frappe | |||||
import frappe, json | |||||
from frappe.utils import cstr, cint | from frappe.utils import cstr, cint | ||||
from frappe.model import integer_docfield_properties | from frappe.model import integer_docfield_properties | ||||
from frappe.model.document import Document | from frappe.model.document import Document | ||||
from frappe.model.base_document import BaseDocument | |||||
###### | ###### | ||||
def get_meta(doctype, cached=True): | def get_meta(doctype, cached=True): | ||||
# TODO: cache to be cleared | # TODO: cache to be cleared | ||||
if cached: | |||||
if cached and not frappe.flags.in_install_app: | |||||
if doctype not in frappe.local.meta: | if doctype not in frappe.local.meta: | ||||
frappe.local.meta[doctype] = frappe.cache().get_value("meta:" + doctype, lambda: Meta(doctype)) | frappe.local.meta[doctype] = frappe.cache().get_value("meta:" + doctype, lambda: Meta(doctype)) | ||||
return frappe.local.meta.get(doctype) | return frappe.local.meta.get(doctype) | ||||
@@ -25,7 +25,23 @@ class Meta(Document): | |||||
_metaclass = True | _metaclass = True | ||||
def __init__(self, doctype): | def __init__(self, doctype): | ||||
super(Meta, self).__init__("DocType", doctype) | super(Meta, self).__init__("DocType", doctype) | ||||
def load_from_db(self): | |||||
try: | |||||
super(Meta, self).load_from_db() | |||||
except frappe.DoesNotExistError: | |||||
if self.doctype=="DocType" and self.name in ("DocField", "DocPerm", "Role", "DocType", "Module Def"): | |||||
fname = frappe.scrub(self.name) | |||||
with open(frappe.get_app_path("frappe", "core", "doctype", fname, fname + ".txt"), "r") as f: | |||||
txt = f.read() | |||||
self.__dict__.update(json.loads(txt)) | |||||
self.fields = [BaseDocument(d) for d in self.fields] | |||||
if hasattr(self, "permissions"): | |||||
self.permissions = [BaseDocument(d) for d in self.permissions] | |||||
else: | |||||
raise | |||||
def get_link_fields(self): | def get_link_fields(self): | ||||
tmp = self.get("fields", {"fieldtype":"Link"}) | tmp = self.get("fields", {"fieldtype":"Link"}) | ||||
tmp.extend(self.get("fields", {"fieldtype":"Select", "options": "^link:"})) | tmp.extend(self.get("fields", {"fieldtype":"Select", "options": "^link:"})) | ||||
@@ -19,7 +19,9 @@ def set_new_name(doc): | |||||
if getattr(doc, "amended_from", None): | if getattr(doc, "amended_from", None): | ||||
return doc._get_amended_name() | return doc._get_amended_name() | ||||
else: | else: | ||||
if hasattr(doc, "autoname"): | |||||
tmp = getattr(doc, "autoname", None) | |||||
if tmp and not isinstance(tmp, basestring): | |||||
# autoname in a function, not a property | |||||
doc.autoname() | doc.autoname() | ||||
if doc.name and doc.localname != doc.name: | if doc.name and doc.localname != doc.name: | ||||
return | return | ||||
@@ -23,7 +23,7 @@ def rename_doc(doctype, old, new, force=False, merge=False, ignore_permissions=F | |||||
doclist = frappe.model.doctype.get(doctype) | doclist = frappe.model.doctype.get(doctype) | ||||
# call before_rename | # call before_rename | ||||
out = frappe.bean(doctype, old).run_method("before_rename", old, new, merge) or {} | |||||
out = frappe.get_doc(doctype, old).run_method("before_rename", old, new, merge) or {} | |||||
new = out.get("new") or new | new = out.get("new") or new | ||||
new = validate_rename(doctype, new, doclist, merge, force, ignore_permissions) | new = validate_rename(doctype, new, doclist, merge, force, ignore_permissions) | ||||
@@ -43,7 +43,7 @@ def rename_doc(doctype, old, new, force=False, merge=False, ignore_permissions=F | |||||
frappe.delete_doc(doctype, old) | frappe.delete_doc(doctype, old) | ||||
# call after_rename | # call after_rename | ||||
frappe.bean(doctype, new).run_method("after_rename", old, new, merge) | |||||
frappe.get_doc(doctype, new).run_method("after_rename", old, new, merge) | |||||
rename_versions(doctype, old, new) | rename_versions(doctype, old, new) | ||||
@@ -71,22 +71,24 @@ def import_doc(docdict): | |||||
docdict["__islocal"] = 1 | docdict["__islocal"] = 1 | ||||
doc = frappe.get_doc(docdict) | doc = frappe.get_doc(docdict) | ||||
old_doc = None | |||||
if doctype in ignore_values: | |||||
if frappe.db.exists(doc.doctype, doc.name): | |||||
old_doc = frappe.get_doc(doc.doctype, doc.name) | |||||
# update ignore values | |||||
for key in ignore_values.get(doctype) or []: | |||||
doc.set(key, old_doc.get(key)) | |||||
# update ignored docs into new doc | |||||
for df in doc.get_table_fields(): | |||||
if df.options in ignore_doctypes: | |||||
doc.set(df.fieldname, []) | |||||
ignore = [] | |||||
if frappe.db.exists(doc.doctype, doc.name): | |||||
old_doc = frappe.get_doc(doc.doctype, doc.name) | |||||
if doc.doctype in ignore_values: | |||||
# update ignore values | |||||
for key in ignore_values.get(doc.doctype) or []: | |||||
doc.set(key, old_doc.get(key)) | |||||
# update ignored docs into new doc | |||||
for df in doc.get_table_fields(): | |||||
if df.options in ignore_doctypes: | |||||
doc.set(df.fieldname, []) | |||||
ignore.append(df.options) | |||||
# delete old | |||||
frappe.delete_doc(doctype, name, force=1, ignore_doctypes=ignore, for_reload=True) | |||||
# delete old | |||||
frappe.delete_doc(doc.doctype, doc.name, force=1, ignore_doctypes=ignore, for_reload=True) | |||||
doc.ignore_children_type = ignore | doc.ignore_children_type = ignore | ||||
doc.ignore_links = True | doc.ignore_links = True | ||||
@@ -95,7 +95,7 @@ def update_patch_log(patchmodule): | |||||
frappe.db.sql("""INSERT INTO `__PatchLog` VALUES (%s, now())""", \ | frappe.db.sql("""INSERT INTO `__PatchLog` VALUES (%s, now())""", \ | ||||
patchmodule) | patchmodule) | ||||
else: | else: | ||||
frappe.doc({"doctype": "Patch Log", "patch": patchmodule}).insert() | |||||
frappe.get_doc({"doctype": "Patch Log", "patch": patchmodule}).insert() | |||||
def executed(patchmodule): | def executed(patchmodule): | ||||
"""return True if is executed""" | """return True if is executed""" | ||||
@@ -36,7 +36,7 @@ def has_permission(doctype, ptype="read", doc=None, verbose=True): | |||||
if doc: | if doc: | ||||
if isinstance(doc, basestring): | if isinstance(doc, basestring): | ||||
doc = frappe.doc(meta.name, doc) | |||||
doc = frappe.get_doc(meta.name, doc) | |||||
if not has_unrestricted_access(doc, verbose=verbose): | if not has_unrestricted_access(doc, verbose=verbose): | ||||
return False | return False | ||||
@@ -105,9 +105,9 @@ def has_unrestricted_access(doc, verbose=True): | |||||
def has_controller_permissions(doc): | def has_controller_permissions(doc): | ||||
if doc.get("__islocal"): | if doc.get("__islocal"): | ||||
bean = frappe.bean([doc]) | |||||
bean = frappe.get_doc([doc]) | |||||
else: | else: | ||||
bean = frappe.bean(doc.doctype, doc.name) | |||||
bean = frappe.get_doc(doc.doctype, doc.name) | |||||
condition_methods = frappe.get_hooks("has_permission:" + doc.doctype) | condition_methods = frappe.get_hooks("has_permission:" + doc.doctype) | ||||
for method in frappe.get_hooks("has_permission:" + doc.doctype): | for method in frappe.get_hooks("has_permission:" + doc.doctype): | ||||
@@ -24,7 +24,7 @@ def get_context(context): | |||||
blog_post.updated = global_date_format(blog_post.published_on) | blog_post.updated = global_date_format(blog_post.published_on) | ||||
if blog_post.blogger: | if blog_post.blogger: | ||||
blog_post.blogger_info = frappe.doc("Blogger", blog_post.blogger).fields | |||||
blog_post.blogger_info = frappe.get_doc("Blogger", blog_post.blogger).fields | |||||
blog_post.description = blog_post.blog_intro or blog_post.content[:140] | blog_post.description = blog_post.blog_intro or blog_post.content[:140] | ||||
blog_post.meta_description = blog_post.description | blog_post.meta_description = blog_post.description | ||||
@@ -70,10 +70,10 @@ def build_view_context(context): | |||||
context.post_list_html = get_post_list_html(context.group.name, context.view.name) | context.post_list_html = get_post_list_html(context.group.name, context.view.name) | ||||
elif context.view.name == "edit": | elif context.view.name == "edit": | ||||
context.post = frappe.doc("Post", frappe.form_dict.name).fields | |||||
context.post = frappe.get_doc("Post", frappe.form_dict.name).fields | |||||
if context.post.assigned_to: | if context.post.assigned_to: | ||||
context.user = frappe.doc("User", context.post.assigned_to) | |||||
context.user = frappe.get_doc("User", context.post.assigned_to) | |||||
elif context.view.name == "settings": | elif context.view.name == "settings": | ||||
context.users = frappe.db.sql("""select p.*, wsp.`read`, wsp.`write`, wsp.`admin` | context.users = frappe.db.sql("""select p.*, wsp.`read`, wsp.`write`, wsp.`admin` | ||||
@@ -30,7 +30,7 @@ def add_comment(args=None): | |||||
if "cmd" in args: | if "cmd" in args: | ||||
del args["cmd"] | del args["cmd"] | ||||
comment = frappe.bean(args) | |||||
comment = frappe.get_doc(args) | |||||
comment.ignore_permissions = True | comment.ignore_permissions = True | ||||
comment.insert() | comment.insert() | ||||
@@ -5,4 +5,4 @@ from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
def get_context(context): | def get_context(context): | ||||
return { "obj": frappe.bean("About Us Settings", "About Us Settings").get_controller() } | |||||
return { "obj": frappe.get_doc("About Us Settings", "About Us Settings").get_controller() } |
@@ -5,4 +5,4 @@ from __future__ import unicode_literals | |||||
import frappe | import frappe | ||||
def get_context(context): | def get_context(context): | ||||
return frappe.doc("Blog Settings", "Blog Settings").fields | |||||
return frappe.get_doc("Blog Settings", "Blog Settings").fields |
@@ -7,12 +7,12 @@ import frappe | |||||
from frappe.utils import now | from frappe.utils import now | ||||
def get_context(context): | def get_context(context): | ||||
bean = frappe.bean("Contact Us Settings", "Contact Us Settings") | |||||
bean = frappe.get_doc("Contact Us Settings", "Contact Us Settings") | |||||
query_options = filter(None, bean.query_options.replace(",", "\n").split()) if \ | query_options = filter(None, bean.query_options.replace(",", "\n").split()) if \ | ||||
bean.query_options else ["Sales", "Support", "General"] | bean.query_options else ["Sales", "Support", "General"] | ||||
address = frappe.bean("Address", bean.address).doc if bean.address else None | |||||
address = frappe.get_doc("Address", bean.address).doc if bean.address else None | |||||
out = { | out = { | ||||
"query_options": query_options | "query_options": query_options | ||||
@@ -84,7 +84,7 @@ def get_oauth_keys(provider): | |||||
if not keys: | if not keys: | ||||
# try database | # try database | ||||
social = frappe.doc("Social Login Keys", "Social Login Keys") | |||||
social = frappe.get_doc("Social Login Keys", "Social Login Keys") | |||||
keys = {} | keys = {} | ||||
for fieldname in ("client_id", "client_secret"): | for fieldname in ("client_id", "client_secret"): | ||||
value = social.get("{provider}_{fieldname}".format(provider=provider, fieldname=fieldname)) | value = social.get("{provider}_{fieldname}".format(provider=provider, fieldname=fieldname)) | ||||
@@ -183,7 +183,7 @@ def create_oauth_user(data, provider): | |||||
if isinstance(data.get("location"), dict): | if isinstance(data.get("location"), dict): | ||||
data["location"] = data.get("location").get("name") | data["location"] = data.get("location").get("name") | ||||
user = frappe.bean({ | |||||
user = frappe.get_doc({ | |||||
"doctype":"User", | "doctype":"User", | ||||
"first_name": data.get("first_name") or data.get("given_name") or data.get("name"), | "first_name": data.get("first_name") or data.get("given_name") or data.get("name"), | ||||
"last_name": data.get("last_name") or data.get("family_name"), | "last_name": data.get("last_name") or data.get("family_name"), | ||||
@@ -211,5 +211,5 @@ def create_oauth_user(data, provider): | |||||
user.github_username = data["login"] | user.github_username = data["login"] | ||||
user.ignore_permissions = True | user.ignore_permissions = True | ||||
user.get_controller().no_welcome_mail = True | |||||
user.no_welcome_mail = True | |||||
user.insert() | user.insert() |
@@ -29,7 +29,7 @@ def get_context(context): | |||||
else: | else: | ||||
modified = now() | modified = now() | ||||
ws = frappe.doc('Website Settings', 'Website Settings') | |||||
ws = frappe.get_doc('Website Settings', 'Website Settings') | |||||
context = { | context = { | ||||
'title': ws.title_prefix, | 'title': ws.title_prefix, | ||||
@@ -9,7 +9,7 @@ base_template_path = "templates/pages/style_settings.css" | |||||
def get_context(context): | def get_context(context): | ||||
"""returns web style""" | """returns web style""" | ||||
doc = frappe.doc("Style Settings", "Style Settings") | |||||
doc = frappe.get_doc("Style Settings", "Style Settings") | |||||
prepare(doc) | prepare(doc) | ||||
return { "doc": doc.fields } | return { "doc": doc.fields } | ||||
@@ -17,6 +17,6 @@ def get_context(context): | |||||
"categories": frappe.db.sql_list("select name from `tabBlog Category` order by name") | "categories": frappe.db.sql_list("select name from `tabBlog Category` order by name") | ||||
} | } | ||||
writers_context.update(frappe.doc("Blog Settings", "Blog Settings").fields) | |||||
writers_context.update(frappe.get_doc("Blog Settings", "Blog Settings").fields) | |||||
return writers_context | return writers_context |
@@ -9,7 +9,7 @@ from frappe.utils.file_manager import save_file | |||||
from frappe.templates.generators.website_group import get_pathname | from frappe.templates.generators.website_group import get_pathname | ||||
def get_post_context(context): | def get_post_context(context): | ||||
post = frappe.doc("Post", frappe.form_dict.name) | |||||
post = frappe.get_doc("Post", frappe.form_dict.name) | |||||
if post.parent_post: | if post.parent_post: | ||||
raise frappe.PermissionError | raise frappe.PermissionError | ||||
@@ -26,7 +26,7 @@ def get_post_context(context): | |||||
return frappe.cache().get_value(cache_key, lambda: _get_post_context()) | return frappe.cache().get_value(cache_key, lambda: _get_post_context()) | ||||
def get_parent_post_html(post, context): | def get_parent_post_html(post, context): | ||||
user = frappe.bean("User", post.owner).doc | |||||
user = frappe.get_doc("User", post.owner).doc | |||||
for fieldname in ("first_name", "last_name", "user_image", "location"): | for fieldname in ("first_name", "last_name", "user_image", "location"): | ||||
post.set(fieldname, user.fields[fieldname]) | post.set(fieldname, user.fields[fieldname]) | ||||
@@ -65,8 +65,8 @@ def add_post(group, content, picture, picture_name, title=None, parent_post=None | |||||
if frappe.db.get_value("Post", parent_post, "parent_post"): | if frappe.db.get_value("Post", parent_post, "parent_post"): | ||||
frappe.throw("Cannot reply to a reply") | frappe.throw("Cannot reply to a reply") | ||||
group = frappe.doc("Website Group", group) | |||||
post = frappe.bean({ | |||||
group = frappe.get_doc("Website Group", group) | |||||
post = frappe.get_doc({ | |||||
"doctype":"Post", | "doctype":"Post", | ||||
"title": (title or "").title(), | "title": (title or "").title(), | ||||
"content": content, | "content": content, | ||||
@@ -98,7 +98,7 @@ def add_post(group, content, picture, picture_name, title=None, parent_post=None | |||||
def save_post(post, content, picture=None, picture_name=None, title=None, | def save_post(post, content, picture=None, picture_name=None, title=None, | ||||
assigned_to=None, status=None, event_datetime=None): | assigned_to=None, status=None, event_datetime=None): | ||||
post = frappe.bean("Post", post) | |||||
post = frappe.get_doc("Post", post) | |||||
access = get_access(get_pathname(post.website_group)) | access = get_access(get_pathname(post.website_group)) | ||||
if not access.get("write"): | if not access.get("write"): | ||||
@@ -36,7 +36,7 @@ def add_sitemap_permission(group, user): | |||||
if not get_access(pathname).get("admin"): | if not get_access(pathname).get("admin"): | ||||
raise frappe.PermissionError | raise frappe.PermissionError | ||||
permission = frappe.bean({ | |||||
permission = frappe.get_doc({ | |||||
"doctype": "Website Route Permission", | "doctype": "Website Route Permission", | ||||
"website_route": pathname, | "website_route": pathname, | ||||
"user": user, | "user": user, | ||||
@@ -58,7 +58,7 @@ def update_permission(group, user, perm, value): | |||||
if not get_access(pathname).get("admin"): | if not get_access(pathname).get("admin"): | ||||
raise frappe.PermissionError | raise frappe.PermissionError | ||||
permission = frappe.bean("Website Route Permission", {"website_route": pathname, "user": user}) | |||||
permission = frappe.get_doc("Website Route Permission", {"website_route": pathname, "user": user}) | |||||
permission.set(perm, int(value)) | permission.set(perm, int(value)) | ||||
permission.save(ignore_permissions=True) | permission.save(ignore_permissions=True) | ||||
@@ -79,7 +79,7 @@ def update_description(group, description): | |||||
if not get_access(get_pathname(group)).get("admin"): | if not get_access(get_pathname(group)).get("admin"): | ||||
raise frappe.PermissionError | raise frappe.PermissionError | ||||
group = frappe.bean("Website Group", group) | |||||
group = frappe.get_doc("Website Group", group) | |||||
group.group_description = description | group.group_description = description | ||||
group.save(ignore_permissions=True) | group.save(ignore_permissions=True) | ||||
@@ -91,7 +91,7 @@ def add_website_group(group, new_group, public_read, public_write, group_type="F | |||||
parent_website_route = frappe.db.get_value("Website Route", | parent_website_route = frappe.db.get_value("Website Route", | ||||
{"ref_doctype": "Website Group", "docname": group}) | {"ref_doctype": "Website Group", "docname": group}) | ||||
frappe.bean({ | |||||
frappe.get_doc({ | |||||
"doctype": "Website Group", | "doctype": "Website Group", | ||||
"group_name": group + "-" + new_group, | "group_name": group + "-" + new_group, | ||||
"group_title": new_group, | "group_title": new_group, | ||||
@@ -4,6 +4,10 @@ | |||||
import frappe, unittest, time | import frappe, unittest, time | ||||
class TestDocument(unittest.TestCase): | class TestDocument(unittest.TestCase): | ||||
def test_get_return_empty_list_for_table_field_if_none(self): | |||||
d = frappe.get_doc({"doctype":"User"}) | |||||
self.assertEquals(d.get("user_roles"), []) | |||||
def test_load(self): | def test_load(self): | ||||
d = frappe.get_doc("DocType", "User") | d = frappe.get_doc("DocType", "User") | ||||
self.assertEquals(d.doctype, "DocType") | self.assertEquals(d.doctype, "DocType") | ||||
@@ -164,7 +164,7 @@ def get_messages_from_page(name): | |||||
return get_messages_from_page_or_report("Page", name) | return get_messages_from_page_or_report("Page", name) | ||||
def get_messages_from_report(name): | def get_messages_from_report(name): | ||||
report = frappe.doc("Report", name) | |||||
report = frappe.get_doc("Report", name) | |||||
messages = get_messages_from_page_or_report("Report", name, | messages = get_messages_from_page_or_report("Report", name, | ||||
frappe.db.get_value("DocType", report.ref_doctype, "module")) | frappe.db.get_value("DocType", report.ref_doctype, "module")) | ||||
if report.query: | if report.query: | ||||
@@ -128,7 +128,7 @@ def import_doc(d, doctype, overwrite, row_idx, submit=False, ignore_links=False) | |||||
"""import main (non child) document""" | """import main (non child) document""" | ||||
if d.get("name") and frappe.db.exists(doctype, d['name']): | if d.get("name") and frappe.db.exists(doctype, d['name']): | ||||
if overwrite: | if overwrite: | ||||
bean = frappe.bean(doctype, d['name']) | |||||
bean = frappe.get_doc(doctype, d['name']) | |||||
bean.ignore_links = ignore_links | bean.ignore_links = ignore_links | ||||
bean.update(d) | bean.update(d) | ||||
if d.get("docstatus") == 1: | if d.get("docstatus") == 1: | ||||
@@ -140,7 +140,7 @@ def import_doc(d, doctype, overwrite, row_idx, submit=False, ignore_links=False) | |||||
return 'Ignored row (#%d) %s (exists)' % (row_idx + 1, | return 'Ignored row (#%d) %s (exists)' % (row_idx + 1, | ||||
getlink(doctype, d['name'])) | getlink(doctype, d['name'])) | ||||
else: | else: | ||||
bean = frappe.bean([d]) | |||||
bean = frappe.get_doc([d]) | |||||
bean.ignore_links = ignore_links | bean.ignore_links = ignore_links | ||||
bean.insert() | bean.insert() | ||||
@@ -78,7 +78,7 @@ def send(recipients=None, sender=None, doctype='User', email_field='email', | |||||
def add(email, sender, subject, formatted, text_content=None, | def add(email, sender, subject, formatted, text_content=None, | ||||
ref_doctype=None, ref_docname=None): | ref_doctype=None, ref_docname=None): | ||||
"""add to bulk mail queue""" | """add to bulk mail queue""" | ||||
e = frappe.doc('Bulk Email') | |||||
e = frappe.get_doc('Bulk Email') | |||||
e.sender = sender | e.sender = sender | ||||
e.recipient = email | e.recipient = email | ||||
try: | try: | ||||
@@ -38,7 +38,7 @@ class SMTPServer: | |||||
def __init__(self, login=None, password=None, server=None, port=None, use_ssl=None): | def __init__(self, login=None, password=None, server=None, port=None, use_ssl=None): | ||||
# get defaults from control panel | # get defaults from control panel | ||||
try: | try: | ||||
es = frappe.doc('Outgoing Email Settings', 'Outgoing Email Settings') | |||||
es = frappe.get_doc('Outgoing Email Settings', 'Outgoing Email Settings') | |||||
except frappe.DoesNotExistError: | except frappe.DoesNotExistError: | ||||
es = None | es = None | ||||
@@ -45,7 +45,7 @@ def save_url(file_url, dt, dn): | |||||
# frappe.msgprint("URL must start with 'http://' or 'https://'") | # frappe.msgprint("URL must start with 'http://' or 'https://'") | ||||
# return None, None | # return None, None | ||||
f = frappe.bean({ | |||||
f = frappe.get_doc({ | |||||
"doctype": "File Data", | "doctype": "File Data", | ||||
"file_url": file_url, | "file_url": file_url, | ||||
"attached_to_doctype": dt, | "attached_to_doctype": dt, | ||||
@@ -55,7 +55,7 @@ def save_url(file_url, dt, dn): | |||||
try: | try: | ||||
f.insert(); | f.insert(); | ||||
except frappe.DuplicateEntryError: | except frappe.DuplicateEntryError: | ||||
return frappe.doc("File Data", f.duplicate_entry) | |||||
return frappe.get_doc("File Data", f.duplicate_entry) | |||||
return f.doc | return f.doc | ||||
def get_uploaded_content(): | def get_uploaded_content(): | ||||
@@ -140,7 +140,7 @@ def save_file(fname, content, dt, dn, decode=False): | |||||
os.rename(temp_fname, fpath.encode("utf-8")) | os.rename(temp_fname, fpath.encode("utf-8")) | ||||
f = frappe.bean({ | |||||
f = frappe.get_doc({ | |||||
"doctype": "File Data", | "doctype": "File Data", | ||||
"file_name": os.path.relpath(os.path.join(files_path, fname), get_site_path("public")), | "file_name": os.path.relpath(os.path.join(files_path, fname), get_site_path("public")), | ||||
"attached_to_doctype": dt, | "attached_to_doctype": dt, | ||||
@@ -151,7 +151,7 @@ def save_file(fname, content, dt, dn, decode=False): | |||||
try: | try: | ||||
f.insert(); | f.insert(); | ||||
except frappe.DuplicateEntryError: | except frappe.DuplicateEntryError: | ||||
return frappe.doc("File Data", f.duplicate_entry) | |||||
return frappe.get_doc("File Data", f.duplicate_entry) | |||||
return f.doc | return f.doc | ||||
@@ -29,12 +29,12 @@ def after_install(): | |||||
for d in install_docs: | for d in install_docs: | ||||
try: | try: | ||||
frappe.bean(d).insert() | |||||
frappe.get_doc(d).insert() | |||||
except NameError: | except NameError: | ||||
pass | pass | ||||
# all roles to admin | # all roles to admin | ||||
frappe.bean("User", "Administrator").get_controller().add_roles(*frappe.db.sql_list(""" | |||||
frappe.get_doc("User", "Administrator").add_roles(*frappe.db.sql_list(""" | |||||
select name from tabRole""")) | select name from tabRole""")) | ||||
# update admin password | # update admin password | ||||
@@ -97,7 +97,7 @@ def log(method, message=None): | |||||
frappe.db.rollback() | frappe.db.rollback() | ||||
frappe.db.begin() | frappe.db.begin() | ||||
d = frappe.doc("Scheduler Log") | |||||
d = frappe.get_doc("Scheduler Log") | |||||
d.method = method | d.method = method | ||||
d.error = message | d.error = message | ||||
d.save() | d.save() | ||||
@@ -195,7 +195,7 @@ def get_system_managers(only_name=False): | |||||
return [email.utils.formataddr((p.fullname, p.name)) for p in system_managers] | return [email.utils.formataddr((p.fullname, p.name)) for p in system_managers] | ||||
def add_role(user, role): | def add_role(user, role): | ||||
user_wrapper = frappe.bean("User", user).get_controller().add_roles(role) | |||||
user_wrapper = frappe.get_doc("User", user).add_roles(role) | |||||
def add_system_manager(email, first_name=None, last_name=None): | def add_system_manager(email, first_name=None, last_name=None): | ||||
# add user | # add user | ||||
@@ -213,7 +213,7 @@ def add_system_manager(email, first_name=None, last_name=None): | |||||
# add roles | # add roles | ||||
roles = frappe.db.sql_list("""select name from `tabRole` | roles = frappe.db.sql_list("""select name from `tabRole` | ||||
where name not in ("Administrator", "Guest", "All")""") | where name not in ("Administrator", "Guest", "All")""") | ||||
user.get_controller().add_roles(*roles) | |||||
user.add_roles(*roles) | |||||
def get_roles(username=None, with_standard=True): | def get_roles(username=None, with_standard=True): | ||||
"""get roles of current user""" | """get roles of current user""" | ||||
@@ -50,7 +50,7 @@ def build_context(sitemap_options): | |||||
# provide bean | # provide bean | ||||
if context.doctype and context.docname: | if context.doctype and context.docname: | ||||
context.bean = frappe.bean(context.doctype, context.docname) | |||||
context.bean = frappe.get_doc(context.doctype, context.docname) | |||||
if context.controller: | if context.controller: | ||||
module = frappe.get_module(context.controller) | module = frappe.get_module(context.controller) | ||||
@@ -11,7 +11,7 @@ from frappe import _ | |||||
from frappe.utils import today | from frappe.utils import today | ||||
class BlogPost(WebsiteGenerator): | class BlogPost(WebsiteGenerator): | ||||
self.save_versions = True | |||||
save_versions = True | |||||
def get_page_title(self): | def get_page_title(self): | ||||
return self.title | return self.title | ||||
@@ -39,11 +39,11 @@ class TestBlogPost(unittest.TestCase): | |||||
frappe.clear_cache(doctype="Blog Post") | frappe.clear_cache(doctype="Blog Post") | ||||
user = frappe.bean("User", "test1@example.com") | |||||
user.get_controller().add_roles("Website Manager") | |||||
user = frappe.get_doc("User", "test1@example.com") | |||||
user.add_roles("Website Manager") | |||||
user = frappe.bean("User", "test2@example.com") | |||||
user.get_controller().add_roles("Blogger") | |||||
user = frappe.get_doc("User", "test2@example.com") | |||||
user.add_roles("Blogger") | |||||
frappe.set_user("test1@example.com") | frappe.set_user("test1@example.com") | ||||
@@ -53,17 +53,17 @@ class TestBlogPost(unittest.TestCase): | |||||
clear_restrictions("Blog Post") | clear_restrictions("Blog Post") | ||||
def test_basic_permission(self): | def test_basic_permission(self): | ||||
post = frappe.bean("Blog Post", "_test-blog-post") | |||||
post = frappe.get_doc("Blog Post", "_test-blog-post") | |||||
self.assertTrue(post.has_read_perm()) | self.assertTrue(post.has_read_perm()) | ||||
def test_restriction_in_bean(self): | def test_restriction_in_bean(self): | ||||
frappe.defaults.add_default("Blog Category", "_Test Blog Category 1", "test1@example.com", | frappe.defaults.add_default("Blog Category", "_Test Blog Category 1", "test1@example.com", | ||||
"Restriction") | "Restriction") | ||||
post = frappe.bean("Blog Post", "_test-blog-post") | |||||
post = frappe.get_doc("Blog Post", "_test-blog-post") | |||||
self.assertFalse(post.has_read_perm()) | self.assertFalse(post.has_read_perm()) | ||||
post1 = frappe.bean("Blog Post", "_test-blog-post-1") | |||||
post1 = frappe.get_doc("Blog Post", "_test-blog-post-1") | |||||
self.assertTrue(post1.has_read_perm()) | self.assertTrue(post1.has_read_perm()) | ||||
def test_restriction_in_report(self): | def test_restriction_in_report(self): | ||||
@@ -92,10 +92,10 @@ class TestBlogPost(unittest.TestCase): | |||||
frappe.set_user("test2@example.com") | frappe.set_user("test2@example.com") | ||||
post = frappe.bean("Blog Post", "_test-blog-post") | |||||
post = frappe.get_doc("Blog Post", "_test-blog-post") | |||||
self.assertTrue(post.has_read_perm()) | self.assertTrue(post.has_read_perm()) | ||||
post1 = frappe.bean("Blog Post", "_test-blog-post-1") | |||||
post1 = frappe.get_doc("Blog Post", "_test-blog-post-1") | |||||
self.assertFalse(post1.has_read_perm()) | self.assertFalse(post1.has_read_perm()) | ||||
def test_owner_match_report(self): | def test_owner_match_report(self): | ||||
@@ -130,11 +130,11 @@ class TestBlogPost(unittest.TestCase): | |||||
frappe.set_user("test2@example.com") | frappe.set_user("test2@example.com") | ||||
# user can only access restricted blog post | # user can only access restricted blog post | ||||
bean = frappe.bean("Blog Post", "_test-blog-post") | |||||
bean = frappe.get_doc("Blog Post", "_test-blog-post") | |||||
self.assertTrue(bean.has_read_perm()) | self.assertTrue(bean.has_read_perm()) | ||||
# and not this one | # and not this one | ||||
bean = frappe.bean("Blog Post", "_test-blog-post-1") | |||||
bean = frappe.get_doc("Blog Post", "_test-blog-post-1") | |||||
self.assertFalse(bean.has_read_perm()) | self.assertFalse(bean.has_read_perm()) | ||||
def test_not_allowed_to_remove_self(self): | def test_not_allowed_to_remove_self(self): | ||||
@@ -151,21 +151,21 @@ class TestBlogPost(unittest.TestCase): | |||||
self.add_restricted_on_blogger() | self.add_restricted_on_blogger() | ||||
frappe.set_user("test2@example.com") | frappe.set_user("test2@example.com") | ||||
bean = frappe.bean("Blog Post", "_test-blog-post-1") | |||||
bean = frappe.get_doc("Blog Post", "_test-blog-post-1") | |||||
self.assertFalse(bean.has_read_perm()) | self.assertFalse(bean.has_read_perm()) | ||||
frappe.set_user("test1@example.com") | frappe.set_user("test1@example.com") | ||||
add("test2@example.com", "Blog Post", "_test-blog-post-1") | add("test2@example.com", "Blog Post", "_test-blog-post-1") | ||||
frappe.set_user("test2@example.com") | frappe.set_user("test2@example.com") | ||||
bean = frappe.bean("Blog Post", "_test-blog-post-1") | |||||
bean = frappe.get_doc("Blog Post", "_test-blog-post-1") | |||||
self.assertTrue(bean.has_read_perm()) | self.assertTrue(bean.has_read_perm()) | ||||
def test_set_only_once(self): | def test_set_only_once(self): | ||||
blog_post = frappe.get_meta("Blog Post") | blog_post = frappe.get_meta("Blog Post") | ||||
blog_post.get_field("title").set_only_once = 1 | blog_post.get_field("title").set_only_once = 1 | ||||
bean = frappe.bean("Blog Post", "_test-blog-post-1") | |||||
bean = frappe.get_doc("Blog Post", "_test-blog-post-1") | |||||
bean.title = "New" | bean.title = "New" | ||||
self.assertRaises(frappe.CannotChangeConstantError, bean.save) | self.assertRaises(frappe.CannotChangeConstantError, bean.save) | ||||
blog_post.get_field("title").set_only_once = 0 | blog_post.get_field("title").set_only_once = 0 | ||||
@@ -20,6 +20,6 @@ class Blogger(Document): | |||||
if self.user: | if self.user: | ||||
for blog in frappe.db.sql_list("""select name from `tabBlog Post` where owner=%s | for blog in frappe.db.sql_list("""select name from `tabBlog Post` where owner=%s | ||||
and ifnull(blogger,'')=''""", self.user): | and ifnull(blogger,'')=''""", self.user): | ||||
b = frappe.bean("Blog Post", blog) | |||||
b = frappe.get_doc("Blog Post", blog) | |||||
b.blogger = self.name | b.blogger = self.name | ||||
b.save() | b.save() |
@@ -54,7 +54,7 @@ class Post(Document): | |||||
def send_email_on_reply(self): | def send_email_on_reply(self): | ||||
owner_fullname = get_fullname(self.owner) | owner_fullname = get_fullname(self.owner) | ||||
parent_post = frappe.bean("Post", self.parent_post).doc | |||||
parent_post = frappe.get_doc("Post", self.parent_post).doc | |||||
message = self.get_reply_email_message(self.name, owner_fullname) | message = self.get_reply_email_message(self.name, owner_fullname) | ||||
@@ -42,7 +42,7 @@ def set_vote(ref_doctype, ref_name): | |||||
raise frappe.PermissionError | raise frappe.PermissionError | ||||
try: | try: | ||||
user_vote = frappe.bean({ | |||||
user_vote = frappe.get_doc({ | |||||
"doctype": "User Vote", | "doctype": "User Vote", | ||||
"ref_doctype": ref_doctype, | "ref_doctype": ref_doctype, | ||||
"ref_name": ref_name | "ref_name": ref_name | ||||
@@ -60,7 +60,7 @@ class TestWebPage(unittest.TestCase): | |||||
{"ref_doctype":"Web Page", "docname": "test-web-page-5"}, 'idx'), 2) | {"ref_doctype":"Web Page", "docname": "test-web-page-5"}, 'idx'), 2) | ||||
def test_check_rename(self): | def test_check_rename(self): | ||||
web_page = frappe.bean("Web Page", "test-web-page-1") | |||||
web_page = frappe.get_doc("Web Page", "test-web-page-1") | |||||
web_page.parent_website_route = "test-web-page-4" | web_page.parent_website_route = "test-web-page-4" | ||||
web_page.save() | web_page.save() | ||||
@@ -76,7 +76,7 @@ class TestWebPage(unittest.TestCase): | |||||
"test-web-page-1/test-web-page-2") | "test-web-page-1/test-web-page-2") | ||||
def test_check_move(self): | def test_check_move(self): | ||||
web_page = frappe.bean("Web Page", "test-web-page-3") | |||||
web_page = frappe.get_doc("Web Page", "test-web-page-3") | |||||
web_page.parent_website_route = "test-web-page-4" | web_page.parent_website_route = "test-web-page-4" | ||||
web_page.save() | web_page.save() | ||||
@@ -89,7 +89,7 @@ class TestWebPage(unittest.TestCase): | |||||
self.assertEquals(frappe.db.get_value("Website Route", | self.assertEquals(frappe.db.get_value("Website Route", | ||||
{"ref_doctype":"Web Page", "docname": "test-web-page-5"}, 'idx'), 1) | {"ref_doctype":"Web Page", "docname": "test-web-page-5"}, 'idx'), 1) | ||||
web_page = frappe.bean("Web Page", "test-web-page-3") | |||||
web_page = frappe.get_doc("Web Page", "test-web-page-3") | |||||
web_page.parent_website_route = "test-web-page-1" | web_page.parent_website_route = "test-web-page-1" | ||||
web_page.save() | web_page.save() | ||||
@@ -11,7 +11,7 @@ sitemap_fields = ("page_name", "ref_doctype", "docname", "page_or_generator", "i | |||||
"lastmod", "parent_website_route", "public_read", "public_write", "page_title") | "lastmod", "parent_website_route", "public_read", "public_write", "page_title") | ||||
class WebsiteRoute(DocTypeNestedSet): | class WebsiteRoute(DocTypeNestedSet): | ||||
self.nsm_parent_field = "parent_website_route" | |||||
nsm_parent_field = "parent_website_route" | |||||
def autoname(self): | def autoname(self): | ||||
self.name = self.get_url() | self.name = self.get_url() | ||||
@@ -97,7 +97,7 @@ class WebsiteRoute(DocTypeNestedSet): | |||||
# rename children | # rename children | ||||
for name in frappe.db.sql_list("""select name from `tabWebsite Route` | for name in frappe.db.sql_list("""select name from `tabWebsite Route` | ||||
where parent_website_route=%s""", self.name): | where parent_website_route=%s""", self.name): | ||||
child = frappe.bean("Website Route", name) | |||||
child = frappe.get_doc("Website Route", name) | |||||
child.parent_website_route = self.name | child.parent_website_route = self.name | ||||
child.save() | child.save() | ||||
@@ -139,32 +139,32 @@ class WebsiteRoute(DocTypeNestedSet): | |||||
clear_cache(self.parent_website_route) | clear_cache(self.parent_website_route) | ||||
def add_to_sitemap(options): | def add_to_sitemap(options): | ||||
bean = frappe.new_bean("Website Route") | |||||
website_route = frappe.new_doc("Website Route") | |||||
for key in sitemap_fields: | for key in sitemap_fields: | ||||
bean.set(key, options.get(key)) | |||||
if not bean.page_name: | |||||
bean.page_name = options.get("link_name") | |||||
bean.website_template = options.get("link_name") | |||||
website_route.set(key, options.get(key)) | |||||
if not website_route.page_name: | |||||
website_route.page_name = options.get("link_name") | |||||
website_route.website_template = options.get("link_name") | |||||
bean.insert(ignore_permissions=True) | |||||
website_route.insert(ignore_permissions=True) | |||||
return bean.idx | |||||
return website_route.idx | |||||
def update_sitemap(website_route, options): | def update_sitemap(website_route, options): | ||||
bean = frappe.bean("Website Route", website_route) | |||||
website_route = frappe.get_doc("Website Route", website_route) | |||||
for key in sitemap_fields: | for key in sitemap_fields: | ||||
bean.set(key, options.get(key)) | |||||
website_route.set(key, options.get(key)) | |||||
if not bean.page_name: | |||||
if not website_route.page_name: | |||||
# for pages | # for pages | ||||
bean.page_name = options.get("link_name") | |||||
website_route.page_name = options.get("link_name") | |||||
bean.website_template = options.get("link_name") | |||||
bean.save(ignore_permissions=True) | |||||
website_route.website_template = options.get("link_name") | |||||
website_route.save(ignore_permissions=True) | |||||
return bean.idx | |||||
return website_route.idx | |||||
def remove_sitemap(page_name=None, ref_doctype=None, docname=None): | def remove_sitemap(page_name=None, ref_doctype=None, docname=None): | ||||
if page_name: | if page_name: | ||||
@@ -80,7 +80,7 @@ def get_website_settings(): | |||||
] | ] | ||||
}) | }) | ||||
settings = frappe.doc("Website Settings", "Website Settings") | |||||
settings = frappe.get_doc("Website Settings", "Website Settings") | |||||
for k in ["banner_html", "brand_html", "copyright", "twitter_share_via", | for k in ["banner_html", "brand_html", "copyright", "twitter_share_via", | ||||
"favicon", "facebook_share", "google_plus_one", "twitter_share", "linked_in_share", | "favicon", "facebook_share", "google_plus_one", "twitter_share", "linked_in_share", | ||||
"disable_signup"]: | "disable_signup"]: | ||||
@@ -16,7 +16,7 @@ class WebsiteSlideshow(Document): | |||||
clear_cache() | clear_cache() | ||||
def get_slideshow(bean): | def get_slideshow(bean): | ||||
slideshow = frappe.bean("Website Slideshow", bean.slideshow) | |||||
slideshow = frappe.get_doc("Website Slideshow", bean.slideshow) | |||||
return { | return { | ||||
"slides": slideshow.doclist.get({"doctype":"Website Slideshow Item"}), | "slides": slideshow.doclist.get({"doctype":"Website Slideshow Item"}), | ||||
@@ -20,9 +20,9 @@ class WebsiteTemplate(Document): | |||||
website_route = frappe.db.get_value("Website Route", | website_route = frappe.db.get_value("Website Route", | ||||
{"website_template": self.name, "page_or_generator": "Page"}) | {"website_template": self.name, "page_or_generator": "Page"}) | ||||
opts = self.copy() | |||||
opts = self.as_dict() | |||||
opts.update({"public_read": 1}) | opts.update({"public_read": 1}) | ||||
if website_route: | if website_route: | ||||
update_sitemap(website_route, opts) | update_sitemap(website_route, opts) | ||||
else: | else: | ||||
@@ -37,13 +37,13 @@ class WebsiteTemplate(Document): | |||||
{condition} order by idx asc, {sort_field} {sort_order}""".format( | {condition} order by idx asc, {sort_field} {sort_order}""".format( | ||||
doctype = self.ref_doctype, | doctype = self.ref_doctype, | ||||
condition = condition, | condition = condition, | ||||
sort_field = self.sort_field or "name", | |||||
sort_order = self.sort_order or "asc" | |||||
sort_field = getattr(self, "sort_field", "name"), | |||||
sort_order = getattr(self, "sort_order", "asc") | |||||
)): | )): | ||||
bean = frappe.bean(self.ref_doctype, name) | |||||
doc = frappe.get_doc(self.ref_doctype, name) | |||||
# regenerate route | # regenerate route | ||||
bean.run_method("on_update") | |||||
doc.run_method("on_update") | |||||
def rebuild_website_template(): | def rebuild_website_template(): | ||||
# TODO | # TODO | ||||
@@ -127,7 +127,7 @@ def add_website_template(page_or_generator, app, path, fname, app_path): | |||||
# found by earlier app, override | # found by earlier app, override | ||||
frappe.db.sql("""delete from `tabWebsite Template` where name=%s""", (wsc.link_name,)) | frappe.db.sql("""delete from `tabWebsite Template` where name=%s""", (wsc.link_name,)) | ||||
frappe.bean(wsc).insert() | |||||
frappe.get_doc(wsc).insert() | |||||
return name | return name | ||||
@@ -24,10 +24,10 @@ def move(name, up_or_down): | |||||
if not frappe.has_permission("Website Route"): | if not frappe.has_permission("Website Route"): | ||||
raise frappe.PermissionError | raise frappe.PermissionError | ||||
sitemap = frappe.doc("Website Route", name) | |||||
sitemap = frappe.get_doc("Website Route", name) | |||||
if up_or_down=="up": | if up_or_down=="up": | ||||
if sitemap.idx > 0: | if sitemap.idx > 0: | ||||
prev = frappe.doc("Website Route", { | |||||
prev = frappe.get_doc("Website Route", { | |||||
"parent_website_route": sitemap.parent_website_route, | "parent_website_route": sitemap.parent_website_route, | ||||
"idx": sitemap.idx - 1 | "idx": sitemap.idx - 1 | ||||
}) | }) | ||||
@@ -40,7 +40,7 @@ def move(name, up_or_down): | |||||
ret = "ok" | ret = "ok" | ||||
else: | else: | ||||
nexts = frappe.doc("Website Route", { | |||||
nexts = frappe.get_doc("Website Route", { | |||||
"parent_website_route": sitemap.parent_website_route, | "parent_website_route": sitemap.parent_website_route, | ||||
"idx": sitemap.idx + 1 | "idx": sitemap.idx + 1 | ||||
}) | }) | ||||
@@ -60,10 +60,10 @@ def update_parent(name, new_parent): | |||||
if not frappe.has_permission("Website Route"): | if not frappe.has_permission("Website Route"): | ||||
raise frappe.PermissionError | raise frappe.PermissionError | ||||
sitemap = frappe.doc("Website Route", name) | |||||
sitemap = frappe.get_doc("Website Route", name) | |||||
if sitemap.ref_doctype: | if sitemap.ref_doctype: | ||||
generator = frappe.bean(sitemap.ref_doctype, sitemap.docname) | |||||
generator = frappe.get_doc(sitemap.ref_doctype, sitemap.docname) | |||||
if not generator.meta.has_field("parent_website_route"): | if not generator.meta.has_field("parent_website_route"): | ||||
frappe.throw("Does not allow moving.") | frappe.throw("Does not allow moving.") | ||||
generator.parent_website_route = new_parent | generator.parent_website_route = new_parent | ||||
@@ -21,10 +21,10 @@ def get_sitemap_options(path): | |||||
return frappe._dict(sitemap_options) | return frappe._dict(sitemap_options) | ||||
def build_sitemap_options(path): | def build_sitemap_options(path): | ||||
sitemap_options = frappe._dict(frappe.doc("Website Route", path).fields) | |||||
sitemap_options = frappe._dict(frappe.get_doc("Website Route", path).fields) | |||||
home_page = get_home_page() | home_page = get_home_page() | ||||
sitemap_config = frappe.doc("Website Template", | |||||
sitemap_config = frappe.get_doc("Website Template", | |||||
sitemap_options.get("website_template")).fields | sitemap_options.get("website_template")).fields | ||||
# get sitemap config fields too | # get sitemap config fields too | ||||
@@ -65,7 +65,7 @@ def set_sidebar_items(sitemap_options, pathname, home_page): | |||||
if sitemap_options.children: | if sitemap_options.children: | ||||
# if children are from generator and sort order is specified, then get that condition | # if children are from generator and sort order is specified, then get that condition | ||||
website_template = frappe.doc("Website Template", sitemap_options.children[0].website_template) | |||||
website_template = frappe.get_doc("Website Template", sitemap_options.children[0].website_template) | |||||
if website_template.sort_by!="name": | if website_template.sort_by!="name": | ||||
sitemap_options.children = frappe.db.sql("""select t1.* from | sitemap_options.children = frappe.db.sql("""select t1.* from | ||||
`tabWebsite Route` t1, `tab{ref_doctype}` t2 | `tabWebsite Route` t1, `tab{ref_doctype}` t2 | ||||
@@ -75,5 +75,5 @@ def set_sidebar_items(sitemap_options, pathname, home_page): | |||||
order by t2.{sort_by} {sort_order}""".format(**website_template.fields), | order by t2.{sort_by} {sort_order}""".format(**website_template.fields), | ||||
pathname, as_dict=True) | pathname, as_dict=True) | ||||
sitemap_options.children = [frappe.doc("Website Route", pathname).fields] + sitemap_options.children | |||||
sitemap_options.children = [frappe.get_doc("Website Route", pathname).fields] + sitemap_options.children | |||||
@@ -111,7 +111,7 @@ class sync(object): | |||||
self.insert_web_page(route, fpath, page_name, priority, parent_website_route) | self.insert_web_page(route, fpath, page_name, priority, parent_website_route) | ||||
def insert_web_page(self, route, fpath, page_name, priority, parent_website_route): | def insert_web_page(self, route, fpath, page_name, priority, parent_website_route): | ||||
page = frappe.bean({ | |||||
page = frappe.get_doc({ | |||||
"doctype":"Web Page", | "doctype":"Web Page", | ||||
"idx": priority, | "idx": priority, | ||||
"page_name": page_name, | "page_name": page_name, | ||||
@@ -125,7 +125,7 @@ class sync(object): | |||||
page.insert() | page.insert() | ||||
except NameError: | except NameError: | ||||
# page exists, if deleted static, delete it and try again | # page exists, if deleted static, delete it and try again | ||||
old_route = frappe.doc("Website Route", {"ref_doctype":"Web Page", | |||||
old_route = frappe.get_doc("Website Route", {"ref_doctype":"Web Page", | |||||
"docname": page.name}) | "docname": page.name}) | ||||
if old_route.static_file_timestamp and not os.path.exists(os.path.join(self.statics_path, | if old_route.static_file_timestamp and not os.path.exists(os.path.join(self.statics_path, | ||||
old_route.name)): | old_route.name)): | ||||
@@ -135,7 +135,7 @@ class sync(object): | |||||
# update timestamp | # update timestamp | ||||
route_bean = frappe.bean("Website Route", {"ref_doctype": "Web Page", | |||||
route_bean = frappe.get_doc("Website Route", {"ref_doctype": "Web Page", | |||||
"docname": page.name}) | "docname": page.name}) | ||||
route_bean.static_file_timestamp = cint(os.path.getmtime(fpath)) | route_bean.static_file_timestamp = cint(os.path.getmtime(fpath)) | ||||
route_bean.save() | route_bean.save() | ||||
@@ -148,12 +148,12 @@ class sync(object): | |||||
if str(cint(os.path.getmtime(fpath)))!= route_details.static_file_timestamp \ | if str(cint(os.path.getmtime(fpath)))!= route_details.static_file_timestamp \ | ||||
or (cint(route_details.idx) != cint(priority) and (priority is not None)): | or (cint(route_details.idx) != cint(priority) and (priority is not None)): | ||||
page = frappe.bean("Web Page", route_details.docname) | |||||
page = frappe.get_doc("Web Page", route_details.docname) | |||||
page.update(get_static_content(fpath, route_details.docname)) | page.update(get_static_content(fpath, route_details.docname)) | ||||
page.idx = priority | page.idx = priority | ||||
page.save() | page.save() | ||||
route_bean = frappe.bean("Website Route", route_details.name) | |||||
route_bean = frappe.get_doc("Website Route", route_details.name) | |||||
route_bean.static_file_timestamp = cint(os.path.getmtime(fpath)) | route_bean.static_file_timestamp = cint(os.path.getmtime(fpath)) | ||||
route_bean.save() | route_bean.save() | ||||
@@ -11,7 +11,7 @@ import json | |||||
def update_event(args, field_map): | def update_event(args, field_map): | ||||
args = frappe._dict(json.loads(args)) | args = frappe._dict(json.loads(args)) | ||||
field_map = frappe._dict(json.loads(field_map)) | field_map = frappe._dict(json.loads(field_map)) | ||||
w = frappe.bean(args.doctype, args.name) | |||||
w = frappe.get_doc(args.doctype, args.name) | |||||
w.set(field_map.start, args[field_map.start]) | w.set(field_map.start, args[field_map.start]) | ||||
w.set(field_map.end, args[field_map.end]) | w.set(field_map.end, args[field_map.end]) | ||||
w.save() | w.save() | ||||
@@ -34,7 +34,7 @@ def add(args=None): | |||||
else: | else: | ||||
from frappe.utils import nowdate | from frappe.utils import nowdate | ||||
d = frappe.bean({ | |||||
d = frappe.get_doc({ | |||||
"doctype":"ToDo", | "doctype":"ToDo", | ||||
"owner": args['assign_to'], | "owner": args['assign_to'], | ||||
"reference_type": args['doctype'], | "reference_type": args['doctype'], | ||||
@@ -79,7 +79,7 @@ def add(args=None): | |||||
@frappe.whitelist() | @frappe.whitelist() | ||||
def remove(doctype, name, assign_to): | def remove(doctype, name, assign_to): | ||||
"""remove from todo""" | """remove from todo""" | ||||
todo = frappe.bean("ToDo", {"reference_type":doctype, "reference_name":name, "owner":assign_to, "status":"Open"}) | |||||
todo = frappe.get_doc("ToDo", {"reference_type":doctype, "reference_name":name, "owner":assign_to, "status":"Open"}) | |||||
todo.status = "Closed" | todo.status = "Closed" | ||||
todo.save(ignore_permissions=True) | todo.save(ignore_permissions=True) | ||||
@@ -59,7 +59,7 @@ def add_comment(doclist): | |||||
doclist = json.loads(doclist) | doclist = json.loads(doclist) | ||||
doclist[0]["__islocal"] = 1 | doclist[0]["__islocal"] = 1 | ||||
doclistobj = frappe.bean(doclist) | |||||
doclistobj = frappe.get_doc(doclist) | |||||
doclistobj.ignore_permissions = True | doclistobj.ignore_permissions = True | ||||
doclistobj.save() | doclistobj.save() | ||||
@@ -13,7 +13,7 @@ from frappe.utils import flt, cint | |||||
import frappe.widgets.reportview | import frappe.widgets.reportview | ||||
def get_report_doc(report_name): | def get_report_doc(report_name): | ||||
bean = frappe.bean("Report", report_name) | |||||
bean = frappe.get_doc("Report", report_name) | |||||
if not bean.has_read_perm(): | if not bean.has_read_perm(): | ||||
raise frappe.PermissionError("You don't have access to: {report}".format(report=report_name)) | raise frappe.PermissionError("You don't have access to: {report}".format(report=report_name)) | ||||
@@ -63,7 +63,7 @@ def save_report(): | |||||
d.report_type = "Report Builder" | d.report_type = "Report Builder" | ||||
d.json = data['json'] | d.json = data['json'] | ||||
frappe.bean([d]).save() | |||||
frappe.get_doc([d]).save() | |||||
frappe.msgprint("%s saved." % d.name) | frappe.msgprint("%s saved." % d.name) | ||||
return d.name | return d.name | ||||