Merge branch 'master' into dev

This commit is contained in:
Anand Doshi 2012-07-06 11:27:16 +05:30
commit 56104f25dc
7 changed files with 33 additions and 36 deletions

View file

@ -26,8 +26,8 @@ function compress_doclist(list) {
var o = list[i];
var fl = [];
if(!kl[o.doctype]) { // make key only once # doctype must be first
var tfl = ['doctype', 'name', 'docstatus', 'owner', 'parent', 'parentfield', 'parenttype', 'idx', 'creation', 'modified', 'modified_by', '__islocal', '__deleted','__newname', '__modified', '_user_tags']; // for text
var fl = ['doctype', 'name', 'docstatus', 'owner', 'parent', 'parentfield', 'parenttype', 'idx', 'creation', 'modified', 'modified_by', '__islocal', '__deleted','__newname', '__modified', '_user_tags']; // for unique
var tfl = ['doctype', 'name', 'docstatus', 'owner', 'parent', 'parentfield', 'parenttype', 'idx', 'creation', 'modified', 'modified_by', '__islocal', '__newname', '__modified', '_user_tags']; // for text
var fl = [].concat(tfl);
for(key in wn.meta.docfield_map[o.doctype]) { // all other values
if(!in_list(fl, key)

View file

@ -225,12 +225,7 @@ LocalDB.create = function(doctype, n) {
// ======================================================================================
LocalDB.delete_record = function(dt, dn) {
var d = locals[dt][dn];
if(!d.__islocal) // newly created (not required to tag)
d.__oldparent = d.parent;
d.parent = 'old_parent:' + d.parent; // should be ..
d.docstatus = 2;
d.__deleted = 1;
delete locals[dt][dn];
}
// ======================================================================================
@ -280,7 +275,7 @@ LocalDB.copy=function(dt, dn, from_amend) {
// ======================================================================================
function make_doclist(dt, dn, deleted) {
function make_doclist(dt, dn) {
if(!locals[dt]) { return []; }
var dl = [];
dl[0] = locals[dt][dn];
@ -290,9 +285,8 @@ function make_doclist(dt, dn, deleted) {
if(locals[ndt]) {
for(var ndn in locals[ndt]) {
var doc = locals[ndt][ndn];
if(doc && doc.parenttype==dt && (doc.parent==dn||(deleted&&doc.__oldparent==dn))) {
dl[dl.length]=doc;
//if(deleted&&(doc.__oldparent==dn))alert(doc.name+','+doc.__oldparent);
if(doc && doc.parenttype==dt && doc.parent==dn) {
dl.push(doc)
}
}
}

View file

@ -1018,19 +1018,6 @@ _f.Frm.prototype.reload_doc = function() {
// reload only doctype
$c('webnotes.widgets.form.load.getdoctype', {'doctype':me.doctype }, ret_fn, null, null, 'Refreshing ' + me.doctype + '...');
} else {
// delete all unsaved rows
var gl = me.grids;
for(var i = 0; i < gl.length; i++) {
var dt = gl[i].df.options;
for(var dn in locals[dt]) {
if(locals[dt][dn].__islocal && locals[dt][dn].parent == me.docname) {
var d = locals[dt][dn];
d.parent = '';
d.docstatus = 2;
d.__deleted = 1;
}
}
}
// reload doc and docytpe
$c('webnotes.widgets.form.load.getdoc', {'name':me.docname, 'doctype':me.doctype, 'getdoctype':1, 'user':user}, ret_fn, null, null, 'Refreshing ' + me.docname + '...');
}

View file

@ -222,7 +222,7 @@ _f.FormGrid.prototype.check_selected = function() {
_f.FormGrid.prototype.delete_row = function(dt, dn) {
if(dt && dn) {
LocalDB.delete_record(dt, dn);
this.refresh();
this.refresh();
} else {
if(!this.check_selected()) return;
var r = _f.cur_grid_cell.row;

View file

@ -215,7 +215,7 @@ _f.Grid.prototype.set_cell_value = function(cell) {
// show static
var hc = this.head_row.cells[cell.cellIndex];
if(hc.fieldname) {
if(hc.fieldname && locals[hc.doctype][cell.row.docname]) {
var v = locals[hc.doctype][cell.row.docname][hc.fieldname];
} else {
var v = (cell.row.rowIndex + 1); // Index

View file

@ -515,7 +515,9 @@ class Document:
# delete from db
webnotes.conn.sql("""\
delete from `tab%s`
where name in ("%s")""" % (table_list[0].doctype, '", "'.join(delete_list)))
where parent=%s and parenttype=%s"""
% (table_list[0].doctype, '%s', '%s'),
(self.name, self.doctype))
self.fields['__unsaved'] = 1

View file

@ -191,7 +191,7 @@ class DocList:
if hasattr(self.obj, 'custom_' + method):
getattr(self.obj, 'custom_' + method)()
trigger(method, self.doc)
trigger(method, self.obj.doc)
self.set_doclist([self.obj.doc] + self.obj.doclist)
@ -214,18 +214,32 @@ class DocList:
"""
Save Children, with the new parent name
"""
child_map = {}
for d in self.children:
deleted, local = d.fields.get('__deleted',0), d.fields.get('__islocal',0)
if cint(local) and cint(deleted):
pass
elif d.fields.has_key('parent'):
if d.fields.has_key('parent'):
if d.parent and (not d.parent.startswith('old_parent:')):
d.parent = self.doc.name # rename if reqd
d.parenttype = self.doc.doctype
d.save(new = cint(local))
d.save(new = cint(d.fields.get('__islocal')))
child_map.setdefault(d.doctype, []).append(d.name)
# delete all children in database that are not in the child_map
# get all children types
tablefields = webnotes.model.meta.get_table_fields(self.doc.doctype)
for dt in tablefields:
cnames = child_map.get(dt[0]) or []
if cnames:
webnotes.conn.sql("""delete from `tab%s` where parent=%s and parenttype=%s and
name not in (%s)""" % (dt[0], '%s', '%s', ','.join(['%s'] * len(cnames))),
tuple([self.doc.name, self.doc.doctype] + cnames))
else:
webnotes.conn.sql("""delete from `tab%s` where parent=%s and parenttype=%s""" \
% (dt[0], '%s', '%s'), (self.doc.name, self.doc.doctype))
def save(self, check_links=1):
"""