diff --git a/frappe/core/doctype/workflow/workflow.js b/frappe/core/doctype/workflow/workflow.js index 26b83403e5..7cbfd6b715 100644 --- a/frappe/core/doctype/workflow/workflow.js +++ b/frappe/core/doctype/workflow/workflow.js @@ -20,7 +20,7 @@ frappe.core.Workflow = frappe.ui.form.Controller.extend({ } }, update_field_options: function() { - var fields = $.map(frappe.model.get_doc("DocType", this.frm.doc.document_type).fields, function(d) { + var fields = $.map(frappe.get_doc("DocType", this.frm.doc.document_type).fields, function(d) { return frappe.model.no_value_type.indexOf(d.fieldtype)===-1 ? d.fieldname : null; }) frappe.meta.get_docfield("Workflow Document State", "update_field", this.frm.doc.name).options diff --git a/frappe/core/page/permission_manager/permission_manager.js b/frappe/core/page/permission_manager/permission_manager.js index 9c05ea679a..015a8d4640 100644 --- a/frappe/core/page/permission_manager/permission_manager.js +++ b/frappe/core/page/permission_manager/permission_manager.js @@ -428,14 +428,14 @@ frappe.PermissionEngine = Class.extend({ }); }, get_user_fields: function(doctype) { - var user_fields = frappe.model.get_children("DocType", doctype, "fields", {fieldtype:"Link", options:"User"}) - user_fields = user_fields.concat(frappe.model.get_children("DocType", doctype, "fields", + var user_fields = frappe.get_children("DocType", doctype, "fields", {fieldtype:"Link", options:"User"}) + user_fields = user_fields.concat(frappe.get_children("DocType", doctype, "fields", {fieldtype:"Select", link_doctype:"User"})) return user_fields }, get_link_fields: function(doctype) { - return frappe.model.get_children("DocType", doctype, "fields", + return frappe.get_children("DocType", doctype, "fields", {fieldtype:"Link", options:["not in", ["User", '[Select]']]}); } }) diff --git a/frappe/model/controller.py b/frappe/model/controller.py index a023809fc8..fd01646127 100644 --- a/frappe/model/controller.py +++ b/frappe/model/controller.py @@ -6,22 +6,11 @@ import frappe from frappe import msgprint, _ from frappe.utils import flt, cint, cstr from frappe.model.meta import get_field_precision +from frappe.model.document import Document class EmptyTableError(frappe.ValidationError): pass -class DocListController(object): - def __init__(self, doc, doclist): - self.doc, self.doclist = doc, doclist - - if hasattr(self, "setup"): - self.setup() - - @property - def meta(self): - if not hasattr(self, "_meta"): - self._meta = frappe.get_doctype(self.doc.doctype) - return self._meta - +class DocListController(Document): def validate_value(self, fieldname, condition, val2, doc=None, raise_exception=None): """check that value of fieldname should be 'condition' val2 else throw exception""" @@ -80,18 +69,9 @@ class DocListController(object): for fieldname in fieldnames: doc.fields[fieldname] = flt(doc.fields.get(fieldname), self.precision(fieldname, doc.parentfield)) - def _process(self, parentfield): - from frappe.model.doc import Document - if isinstance(parentfield, Document): - parentfield = parentfield.parentfield - - elif isinstance(parentfield, dict): - parentfield = parentfield.get("parentfield") - - return parentfield - def precision(self, fieldname, parentfield=None): - parentfield = self._process(parentfield) + if not isinstance(parentfield, basestring): + parentfield = parentfield.parentfield if not hasattr(self, "_precision"): self._precision = frappe._dict({ diff --git a/frappe/model/meta.py b/frappe/model/meta.py index 730b90d5e1..380d02e31d 100644 --- a/frappe/model/meta.py +++ b/frappe/model/meta.py @@ -29,7 +29,7 @@ class Meta(Document): def get_link_fields(self): tmp = self.get("fields", {"fieldtype":"Link"}) tmp.extend(self.get("fields", {"fieldtype":"Select", "options": "^link:"})) - return tmp + return tmp def get_table_fields(self): return [ @@ -46,7 +46,7 @@ class Meta(Document): def get_table_field_doctype(self, fieldname): return { "fields": "DocField", "permissions": "DocPerm"}.get(fieldname) - + def process(self): self.add_custom_fields() self.apply_property_setters() diff --git a/frappe/public/js/frappe/form/control.js b/frappe/public/js/frappe/form/control.js index a652c2cc6d..e77ea6fd45 100644 --- a/frappe/public/js/frappe/form/control.js +++ b/frappe/public/js/frappe/form/control.js @@ -980,9 +980,9 @@ frappe.ui.form.ControlTable = frappe.ui.form.Control.extend({ this._super(); // add title if prev field is not column / section heading or html - var prev_fieldtype = frappe.model.get_children("DocType", this.frm.doctype, "fields", + var prev_fieldtype = frappe.get_children("DocType", this.frm.doctype, "fields", {idx: this.df.idx-1}); - prev_fieldtype = prev_fieldtype ? prev_fieldtype[0].fieldtype : ""; + prev_fieldtype = prev_fieldtype.length ? prev_fieldtype[0].fieldtype : ""; if(["Column Break", "Section Break", "HTML"].indexOf(prev_fieldtype)===-1) { $("