Nabin Hait 11 lat temu
rodzic
commit
647266ecf5
4 zmienionych plików z 23 dodań i 17 usunięć
  1. +12
    -7
      frappe/model/base_document.py
  2. +8
    -7
      frappe/model/controller.py
  3. +2
    -2
      frappe/model/document.py
  4. +1
    -1
      frappe/model/mapper.py

+ 12
- 7
frappe/model/base_document.py Wyświetl plik

@@ -33,7 +33,17 @@ class BaseDocument(object):
self.set("doctype", d.get("doctype"))
for key, value in d.iteritems():
self.set(key, value)
def update_if_missing(self, d):
if isinstance(d, BaseDocument):
d = d.get_valid_dict()
if "doctype" in d:
self.set("doctype", d.get("doctype"))
for key, value in d.iteritems():
if self.get(key) is None:
self.set(key, value)
def get(self, key=None, filters=None, limit=None, default=None):
if key:
if isinstance(key, dict):
@@ -86,7 +96,7 @@ class BaseDocument(object):
raise ValueError
def remove(self, doc):
self.get(doc.parentfield).remove(d)
self.get(doc.parentfield).remove(doc)
def _init_child(self, value, key):
if not self.doctype:
@@ -164,11 +174,6 @@ class BaseDocument(object):
if self.docstatus is not None:
self.docstatus = cint(self.docstatus)
def set_missing_values(self, d):
for key, value in d.get_valid_dict().iteritems():
if self.get(key) is None:
self.set(key, value)
def _get_missing_mandatory_fields(self):
"""Get mandatory fields that do not have any values"""


+ 8
- 7
frappe/model/controller.py Wyświetl plik

@@ -29,7 +29,7 @@ class DocListController(Document):
if not doc:
doc = self
df = self.meta.get_field(fieldname, parent=doc.doctype)
df = doc.meta.get_field(fieldname)
val1 = doc.get(fieldname)
@@ -49,7 +49,7 @@ class DocListController(Document):
if doc.parentfield:
msg += _("Row") + (" # %d: " % doc.idx)
msg += _(self.meta.get_label(fieldname, parent=doc.doctype)) \
msg += _(doc.meta.get_label(fieldname)) \
+ " " + error_condition_map.get(condition, "") + " " + cstr(val2)
# raise passed exception or True
@@ -63,14 +63,14 @@ class DocListController(Document):
def round_floats_in(self, doc, fieldnames=None):
if not fieldnames:
fieldnames = [df.fieldname for df in self.meta.get({"doctype": "DocField", "parent": doc.doctype,
"fieldtype": ["in", ["Currency", "Float"]]})]
fieldnames = [df.fieldname for df in doc.meta.get("fields",
{"fieldtype": ["in", ["Currency", "Float"]]})]
for fieldname in fieldnames:
doc.set(fieldname, flt(doc.get(fieldname), self.precision(fieldname, doc.parentfield)))
def precision(self, fieldname, parentfield=None):
if not isinstance(parentfield, basestring):
if parentfield and not isinstance(parentfield, basestring):
parentfield = parentfield.parentfield
if not hasattr(self, "_precision"):
@@ -78,9 +78,10 @@ class DocListController(Document):
"default": cint(frappe.db.get_default("float_precision")) or 3,
"options": {}
})
if self._precision.setdefault(parentfield or "main", {}).get(fieldname) is None:
df = self.meta.get_field(fieldname, parentfield=parentfield)
meta = frappe.get_meta(self.meta.get_field(parentfield).options if parentfield else self.doctype)
df = meta.get_field(fieldname)
if df.fieldtype == "Currency" and df.options and not self._precision.options.get(df.options):
self._precision.options[df.options] = get_field_precision(df, self)


+ 2
- 2
frappe/model/document.py Wyświetl plik

@@ -222,7 +222,7 @@ class Document(BaseDocument):
return
new_doc = frappe.new_doc(self.doctype)
self.set_missing_values(new_doc)
self.update_if_missing(new_doc)

# children
for df in self.meta.get_table_fields():
@@ -230,7 +230,7 @@ class Document(BaseDocument):
value = self.get(df.fieldname)
if isinstance(value, list):
for d in value:
d.set_missing_values(new_doc)
d.update_if_missing(new_doc)

def check_if_latest(self):
conflict = False


+ 1
- 1
frappe/model/mapper.py Wyświetl plik

@@ -14,7 +14,7 @@ def get_mapped_doc(from_doctype, from_docname, table_maps, target_doc=None,
source_doc = frappe.get_doc(from_doctype, from_docname)

if not ignore_permissions and not doc.has_permission("read"):
if not ignore_permissions and not source_doc.has_permission("read"):
frappe.msgprint("No Permission", raise_exception=frappe.PermissionError)

# main


Ładowanie…
Anuluj
Zapisz