Merge pull request #8499 from gavindsouza/list-view-freeze-fix

fix: desk freeze on updating multiple documents
This commit is contained in:
mergify[bot] 2019-09-27 05:18:00 +00:00 committed by GitHub
commit a1c8a9bdc2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 13 deletions

View file

@ -21,11 +21,11 @@ context('List View', () => {
url:'api/method/frappe.model.workflow.bulk_workflow_approval'
}).as('bulk-approval');
cy.route({
method: 'GET',
url:'api/method/frappe.desk.reportview.get*'
}).as('update-list');
method: 'POST',
url:'api/method/frappe.desk.reportview.get'
}).as('real-time-update');
cy.wrap(elements).contains('Approve').click();
cy.wait(['@bulk-approval', '@update-list']);
cy.wait(['@bulk-approval', '@real-time-update']);
cy.get('.list-row-container:visible').should('contain', 'Approved');
});
});

View file

@ -380,6 +380,14 @@ frappe.views.ListView = class ListView extends frappe.views.BaseList {
}
render() {
this.render_list();
this.on_row_checked();
this.render_count();
this.render_tags();
}
render_list() {
// clear rows
this.$result.find('.list-row-container').remove();
if (this.data.length > 0) {
// append rows
@ -390,9 +398,6 @@ frappe.views.ListView = class ListView extends frappe.views.BaseList {
}).join('')
);
}
this.on_row_checked();
this.render_count();
this.render_tags();
}
render_count() {
@ -1025,7 +1030,7 @@ frappe.views.ListView = class ListView extends frappe.views.BaseList {
// in the listview according to filters applied
// let's remove it manually
this.data = this.data.filter(d => d.name !== name);
this.render();
this.render_list();
return;
}
@ -1059,7 +1064,7 @@ frappe.views.ListView = class ListView extends frappe.views.BaseList {
return return_value;
});
this.toggle_result_area();
this.render();
this.render_list();
});
});
}

View file

@ -59,7 +59,7 @@ def create_todo_records():
@frappe.whitelist()
def setup_workflow():
from frappe.workflow.doctype.workflow.test_workflow import create_todo_workflow
create_todo_workflow()
create_todo_records()
frappe.clear_cache()
from frappe.workflow.doctype.workflow.test_workflow import create_todo_workflow
create_todo_workflow()
create_todo_records()
frappe.clear_cache()