[api] frappe.get_all

This commit is contained in:
Rushabh Mehta 2014-09-30 17:44:41 +05:30
parent e222b2acc0
commit 4b519bdada
9 changed files with 26 additions and 23 deletions

View file

@ -608,17 +608,13 @@ def build_match_conditions(doctype, as_condition=True):
import frappe.desk.reportview
return frappe.desk.reportview.build_match_conditions(doctype, as_condition)
def get_list(doctype, filters=None, fields=None, or_filters=None, docstatus=None,
group_by=None, order_by=None, limit_start=0, limit_page_length=None,
as_list=False, debug=False, ignore_permissions=False, user=None):
def get_list(doctype, *args, **kwargs):
import frappe.model.db_query
return frappe.model.db_query.DatabaseQuery(doctype).execute(filters=filters,
fields=fields, docstatus=docstatus, or_filters=or_filters,
group_by=group_by, order_by=order_by, limit_start=limit_start,
limit_page_length=limit_page_length, as_list=as_list, debug=debug,
ignore_permissions=ignore_permissions, user=user)
return frappe.model.db_query.DatabaseQuery(doctype).execute(None, *args, **kwargs)
run_query = get_list
def get_all(doctype, *args, **kwargs):
kwargs["ignore_permissions"] = True
return get_list(doctype, *args, **kwargs)
def add_version(doc):
get_doc({

View file

@ -12,7 +12,7 @@ import json, os
def get_list(doctype, fields=None, filters=None, order_by=None,
limit_start=None, limit_page_length=None):
return frappe.get_list(doctype, fields=fields, filters=filters, order_by=order_by,
limit_start=limit_start, limit_page_length=limit_page_length)
limit_start=limit_start, limit_page_length=limit_page_length, ignore_permissions=True)
@frappe.whitelist()
def get(doctype, name=None, filters=None):

View file

@ -407,6 +407,9 @@ class Database:
else:
return {}
def update(self, *args, **kwargs):
return self.set_value(*args, **kwargs)
def set_value(self, dt, dn, field, val, modified=None, modified_by=None):
if not modified:
modified = now()
@ -414,9 +417,13 @@ class Database:
modified_by = frappe.session.user
if dn and dt!=dn:
self.sql("""update `tab%s` set `%s`=%s, modified=%s, modified_by=%s
where name=%s""" % (dt, field, "%s", "%s", "%s", "%s"),
(val, modified, modified_by, dn))
conditions, values = self.build_conditions(dn)
values.update({"val": val, "modified": modified, "modified_by": modified_by})
self.sql("""update `tab{0}` set `{1}`=%(val)s, modified=%(modified)s, modified_by=%(modified_by)s where
{2}""".format(dt, field, conditions), values)
else:
if self.sql("select value from tabSingles where field=%s and doctype=%s", (field, dt)):
self.sql("""update tabSingles set value=%s where field=%s and doctype=%s""",

View file

@ -44,13 +44,13 @@ class ToDo(Document):
return
try:
assignments = [d[0] for d in frappe.get_list("ToDo",
assignments = [d[0] for d in frappe.get_all("ToDo",
filters={
"reference_type": self.reference_type,
"reference_name": self.reference_name,
"status": "Open"
},
fields=["owner"], ignore_permissions=True, as_list=True)]
fields=["owner"], as_list=True)]
assignments.reverse()
frappe.db.set_value(self.reference_type, self.reference_name,

View file

@ -91,9 +91,8 @@ def get_user_permissions(meta):
return out
def get_attachments(dt, dn):
return frappe.get_list("File Data", fields=["name", "file_name", "file_url"],
filters = {"attached_to_name": dn, "attached_to_doctype": dt},
ignore_permissions=True)
return frappe.get_all("File Data", fields=["name", "file_name", "file_url"],
filters = {"attached_to_name": dn, "attached_to_doctype": dt})
def get_comments(dt, dn, limit=100):
comments = frappe.db.sql("""select name, comment, comment_by, creation,

View file

@ -46,8 +46,8 @@ class EmailAccount(Document):
def there_must_be_only_one_default(self):
if self.is_default:
for email_account in frappe.get_list("Email Account",
{"is_default": 1}, ignore_permissions=True):
for email_account in frappe.get_all("Email Account",
{"is_default": 1}):
if email_account.name==self.name:
continue
email_account = frappe.get_doc("Email Account",

View file

@ -133,7 +133,7 @@ def check_if_doc_is_linked(doc, method="Delete"):
if item and item.parent != doc.name and ((method=="Delete" and item.docstatus<2) or
(method=="Cancel" and item.docstatus==1)):
frappe.throw(_("Cannot delete or cancel because {0} {1} is linked with {2} {3}").format(doc.doctype,
doc.name, item.parent or item.name, item.parenttype if item.parent else link_dt),
doc.name, item.parenttype if item.parent else link_dt, item.parent or item.name),
frappe.LinkExistsError)
def check_if_doc_is_dynamically_linked(doc):

View file

@ -5,7 +5,7 @@ from __future__ import unicode_literals
import frappe
def execute():
for d in frappe.get_list("Property Setter", fields=["name", "doc_type"],
filters={"doctype_or_field": "DocField", "property": "allow_on_submit", "value": "1"}, ignore_permissions=True):
for d in frappe.get_all("Property Setter", fields=["name", "doc_type"],
filters={"doctype_or_field": "DocField", "property": "allow_on_submit", "value": "1"}):
frappe.delete_doc("Property Setter", d.name)
frappe.clear_cache(doctype=d.doc_type)

View file

@ -51,6 +51,7 @@ def get_allowed_functions_for_jenv():
"get_meta": frappe.get_meta,
"get_doc": frappe.get_doc,
"get_list": frappe.get_list,
"get_all": frappe.get_all,
"utils": datautils,
"user": frappe.session.user,
"date_format": frappe.db.get_default("date_format") or "yyyy-mm-dd"