Commit 1c90b872 authored by Nabin Hait's avatar Nabin Hait
Browse files

Merge branch 'hotfix'

parents 654e33fc 7a871230
Showing with 18 additions and 14 deletions
+18 -14
......@@ -14,7 +14,7 @@ import os, sys, importlib, inspect, json
from .exceptions import *
from .utils.jinja import get_jenv, get_template, render_template, get_email_from_template
__version__ = '10.1.7'
__version__ = '10.1.8'
__title__ = "Frappe Framework"
local = Local()
......
......@@ -19,6 +19,7 @@ frappe.ui.form.save = function (frm, action, callback, btn) {
var save = function () {
remove_empty_rows();
$(frm.wrapper).addClass('validated-form');
if (check_mandatory()) {
_call({
......@@ -127,9 +128,8 @@ frappe.ui.form.save = function (frm, action, callback, btn) {
if (df.reqd && !frappe.model.has_value(doc.doctype, doc.name, df.fieldname)) {
has_errors = true;
error_fields[error_fields.length] = __(df.label);
// scroll to field
if (!me.scroll_set) {
if (!frm.scroll_set) {
scroll_to(doc.parentfield || df.fieldname);
}
......@@ -141,6 +141,7 @@ frappe.ui.form.save = function (frm, action, callback, btn) {
}
});
if (error_fields.length) {
if (doc.parenttype) {
var message = __('Mandatory fields required in table {0}, Row {1}',
......
......@@ -99,32 +99,35 @@ $.extend(frappe.model, {
}
}
},
update_in_locals: function(d) {
update_in_locals: function(doc) {
// update values in the existing local doc instead of replacing
let local_doc = locals[d.doctype][d.name];
for (let fieldname in d) {
let local_doc = locals[doc.doctype][doc.name];
for (let fieldname in doc) {
if (local_doc[fieldname] instanceof Array) {
// table
if (!(d[fieldname] instanceof Array)) {
d[fieldname] = [];
if (!(doc[fieldname] instanceof Array)) {
doc[fieldname] = [];
}
// child table, override each row and append new rows if required
for (let i=0; i < d[fieldname].length; i++ ) {
for (let i=0; i < doc[fieldname].length; i++ ) {
let d = doc[fieldname][i];
if (local_doc[fieldname][i]) {
// row exists, just copy the values
Object.assign(local_doc[fieldname][i], d[fieldname][i]);
Object.assign(local_doc[fieldname][i], d);
} else {
local_doc[fieldname].push(d[fieldname][i]);
local_doc[fieldname].push(d);
if (!d.parent) d.parent = doc.name;
frappe.model.add_to_locals(d);
}
}
// remove extra rows
if (local_doc[fieldname].length > d[fieldname].length) {
local_doc[fieldname].length = d[fieldname].length;
if (local_doc[fieldname].length > doc[fieldname].length) {
local_doc[fieldname].length = doc[fieldname].length;
}
} else {
// literal
local_doc[fieldname] = d[fieldname];
local_doc[fieldname] = doc[fieldname];
}
}
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment