Bläddra i källkod

delete row issue in grid fixed

version-14
Nabin Hait 13 år sedan
förälder
incheckning
2d10b6a85f
7 ändrade filer med 24 tillägg och 35 borttagningar
  1. +2
    -2
      js/legacy/model/doclist.js
  2. +4
    -10
      js/legacy/model/local_data.js
  3. +0
    -13
      js/legacy/widgets/form/form.js
  4. +1
    -1
      js/legacy/widgets/form/form_grid.js
  5. +1
    -1
      js/legacy/widgets/form/grid.js
  6. +3
    -1
      py/webnotes/model/doc.py
  7. +13
    -7
      py/webnotes/model/doclist.py

+ 2
- 2
js/legacy/model/doclist.js Visa fil

@@ -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)


+ 4
- 10
js/legacy/model/local_data.js Visa fil

@@ -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)
}
}
}


+ 0
- 13
js/legacy/widgets/form/form.js Visa fil

@@ -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 + '...');
}


+ 1
- 1
js/legacy/widgets/form/form_grid.js Visa fil

@@ -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;


+ 1
- 1
js/legacy/widgets/form/grid.js Visa fil

@@ -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


+ 3
- 1
py/webnotes/model/doc.py Visa fil

@@ -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


+ 13
- 7
py/webnotes/model/doclist.py Visa fil

@@ -214,18 +214,24 @@ 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
for dt in child_map:
cnames = child_map[dt]
webnotes.conn.sql("""delete from `tab%s` where parent=%s and parenttype=%s and
name not in (%s)""" % (dt, '%s', '%s', ','.join(['%s'] * len(cnames))),
tuple([self.doc.name, self.doc.doctype] + cnames), debug=1)

def save(self, check_links=1):
"""


Laddar…
Avbryt
Spara