From 583cb4d155a7974ff89f8813db96821befd31f29 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 25 Feb 2015 15:08:06 +0530 Subject: [PATCH] [grid] render_on_display --- frappe/model/document.py | 10 ++++++---- frappe/public/js/frappe/form/grid.js | 15 ++++++++++++++- frappe/public/js/legacy/clientscriptAPI.js | 5 +++++ 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/frappe/model/document.py b/frappe/model/document.py index 643ecc7de9..ad897742e1 100644 --- a/frappe/model/document.py +++ b/frappe/model/document.py @@ -222,6 +222,12 @@ class Document(BaseDocument): else: self.db_update() + self.update_children() + self.run_post_save_methods() + + return self + + def update_children(self): # children child_map = {} ignore_children_type = self.flags.ignore_children_type or [] @@ -241,10 +247,6 @@ class Document(BaseDocument): frappe.db.sql("""delete from `tab%s` where parent=%s and parenttype=%s""" \ % (df.options, '%s', '%s'), (self.name, self.doctype)) - self.run_post_save_methods() - - return self - def set_new_name(self): """Calls `frappe.naming.se_new_name` for parent and child docs.""" set_new_name(self) diff --git a/frappe/public/js/frappe/form/grid.js b/frappe/public/js/frappe/form/grid.js index bfb34062dc..a52720e09d 100644 --- a/frappe/public/js/frappe/form/grid.js +++ b/frappe/public/js/frappe/form/grid.js @@ -454,6 +454,7 @@ frappe.ui.form.GridRow = Class.extend({ return this; }, show_form: function() { + var me = this; if(!this.form_panel) { this.form_panel = $('
') .appendTo(this.wrapper); @@ -474,6 +475,7 @@ frappe.ui.form.GridRow = Class.extend({ } cur_frm.cur_grid = this; this.wrapper.addClass("grid-row-open"); + me.frm.script_manager.trigger(me.doc.parentfield + "_on_form_rendered"); }, hide_form: function() { // if(this.form_panel) @@ -527,7 +529,6 @@ frappe.ui.form.GridRow = Class.extend({ this.toggle_add_delete_button_display(this.wrapper); this.grid.open_grid_row = this; - this.frm.script_manager.trigger(this.doc.parentfield + "_on_form_rendered", this); }, make_form: function() { if(!this.form_area) { @@ -581,5 +582,17 @@ frappe.ui.form.GridRow = Class.extend({ return visible ? df : null; }); return visible_columns; + }, + toggle_reqd: function(fieldname, reqd) { + var field = this.fields_dict[fieldname]; + field.df.reqd = reqd ? 1 : 0; + field.refresh(); + this.layout.refresh_sections(); + }, + toggle_display: function(fieldname, show) { + var field = this.fields_dict[fieldname]; + field.df.hidden = show ? 0 : 1; + field.refresh(); + this.layout.refresh_sections(); } }); diff --git a/frappe/public/js/legacy/clientscriptAPI.js b/frappe/public/js/legacy/clientscriptAPI.js index 402193ac55..0421042495 100644 --- a/frappe/public/js/legacy/clientscriptAPI.js +++ b/frappe/public/js/legacy/clientscriptAPI.js @@ -305,3 +305,8 @@ _f.Frm.prototype.get_formatted = function(fieldname) { frappe.meta.get_docfield(this.doctype, fieldname, this.docname), {no_icon:true}, this.doc); } + +_f.Frm.prototype.open_grid_row = function() { + return frappe.ui.form.get_open_grid_form(); +} +