Selaa lähdekoodia

[minor] enhancements to frappe.db.get_single_value. Now cached and converted to integer for 0 and 1

version-14
Rushabh Mehta 10 vuotta sitten
vanhempi
commit
22d3c513cc
2 muutettua tiedostoa jossa 18 lisäystä ja 3 poistoa
  1. +15
    -3
      frappe/database.py
  2. +3
    -0
      frappe/model/document.py

+ 15
- 3
frappe/database.py Näytä tiedosto

@@ -505,11 +505,23 @@ class Database:
def get_list(self, *args, **kwargs):
return frappe.get_list(*args, **kwargs)

def get_single_value(self, doctype, fieldname):
"""Get property of Single DocType."""
def get_single_value(self, doctype, fieldname, cache=False):
"""Get property of Single DocType. Cache locally by default"""
value = self.value_cache.setdefault(doctype, {}).get(fieldname)
if value:
return value

val = self.sql("""select value from
tabSingles where doctype=%s and field=%s""", (doctype, fieldname))
return val[0][0] if val else None
val = val[0][0] if val else None

if val=="0" or val=="1":
# check type
val = int(val)

self.value_cache[doctype][fieldname] = val

return val

def get_singles_value(self, *args, **kwargs):
"""Alias for get_single_value"""


+ 3
- 0
frappe/model/document.py Näytä tiedosto

@@ -295,6 +295,9 @@ class Document(BaseDocument):
frappe.db.sql("""insert into tabSingles(doctype, field, value)
values (%s, %s, %s)""", (self.doctype, field, value))

if self.doctype in frappe.db.value_cache:
del frappe.db.value_cache[self.doctype]

def _set_docstatus_user_and_timestamp(self):
self._original_modified = self.modified
self.modified = now()


Ladataan…
Peruuta
Tallenna