From c04ada7066974202189577d402a114bb90ca18f4 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Wed, 16 Apr 2014 19:08:14 +0530 Subject: [PATCH] Fixes in sync.js and init child --- frappe/model/base_document.py | 4 ++++ frappe/model/controller.py | 14 ++++---------- frappe/public/js/frappe/model/sync.js | 16 +++++++++------- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/frappe/model/base_document.py b/frappe/model/base_document.py index eade8fb7d8..a9762270ca 100644 --- a/frappe/model/base_document.py +++ b/frappe/model/base_document.py @@ -109,9 +109,13 @@ class BaseDocument(object): value.parent = self.name value.parenttype = self.doctype value.parentfield = key + if not getattr(value, "idx", None): value.idx = len(self.get(key) or []) + 1 + if not getattr(value, "name", None): + value.__dict__['__islocal'] = 1 + return value def get_valid_dict(self): diff --git a/frappe/model/controller.py b/frappe/model/controller.py index 4f86bc1389..ee0ef55d8e 100644 --- a/frappe/model/controller.py +++ b/frappe/model/controller.py @@ -18,15 +18,9 @@ class DocListController(Document): """check that value of fieldname should be 'condition' val2 else throw exception""" error_condition_map = { - "=": "!=", - "!=": "=", - "<": ">=", - ">": "<=", - ">=": "<", - "<=": ">", - "in": _("not in"), - "not in": _("in"), - "^": _("cannot start with"), + "in": _("one of"), + "not in": _("none of"), + "^": _("beginning with"), } if not doc: @@ -49,7 +43,7 @@ class DocListController(Document): if not frappe.compare(val1, condition, val2): label = doc.meta.get_label(fieldname) - condition_str = error_condition_map.get(condition, "") + condition_str = error_condition_map.get(condition, condition) if doc.parentfield: msg = _("Incorrect value in row {0}: {1} must be {2} {3}".format(doc.idx, label, condition_str, val2)) else: diff --git a/frappe/public/js/frappe/model/sync.js b/frappe/public/js/frappe/model/sync.js index f99b473505..4e3187b7c7 100644 --- a/frappe/public/js/frappe/model/sync.js +++ b/frappe/public/js/frappe/model/sync.js @@ -18,12 +18,6 @@ $.extend(frappe.model, { var dirty = []; $.each(r.docs, function(i, d) { - if(!d.name && d.__islocal) { // get name (local if required) - frappe.model.clear_doc(d); - d.name = frappe.model.get_new_name(d.doctype); - frappe.provide("frappe.model.docinfo." + d.doctype + "." + d.name); - } - frappe.model.add_to_locals(d); d.__last_sync_on = new Date(); @@ -68,8 +62,16 @@ $.extend(frappe.model, { }, add_to_locals: function(doc) { if(!locals[doc.doctype]) locals[doc.doctype] = {}; + if(!doc.name && doc.__islocal) { // get name (local if required) + if(!doc.parentfield) frappe.model.clear_doc(doc); + + doc.name = frappe.model.get_new_name(doc.doctype); + + if(!doc.parentfield) frappe.provide("frappe.model.docinfo." + doc.doctype + "." + doc.name); + } locals[doc.doctype][doc.name] = doc; - if(!doc.parent) { + + if(!doc.parentfield) { $.each(doc, function(key, value) { if($.isArray(value)) { $.each(value, function(i, d) {