Merge branch 'master' into dev
This commit is contained in:
commit
56104f25dc
7 changed files with 33 additions and 36 deletions
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 + '...');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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):
|
||||
"""
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue