Selaa lähdekoodia

[fix] pull all madatory fields from meta while creatting new node in tree

version-14
Saurabh 8 vuotta sitten
vanhempi
commit
7d5123dd54
2 muutettua tiedostoa jossa 37 lisäystä ja 7 poistoa
  1. +1
    -1
      frappe/desk/treeview.py
  2. +36
    -6
      frappe/public/js/frappe/views/treeview.js

+ 1
- 1
frappe/desk/treeview.py Näytä tiedosto

@@ -26,7 +26,7 @@ def add_node():


doc = frappe.new_doc(doctype) doc = frappe.new_doc(doctype)
doc.update({ doc.update({
name_field: frappe.form_dict['name_field'],
name_field: frappe.form_dict[name_field],
parent_field: frappe.form_dict['parent'], parent_field: frappe.form_dict['parent'],
"is_group": frappe.form_dict['is_group'] "is_group": frappe.form_dict['is_group']
}) })


+ 36
- 6
frappe/public/js/frappe/views/treeview.js Näytä tiedosto

@@ -7,7 +7,8 @@ frappe.views.TreeFactory = frappe.views.Factory.extend({
make: function(route) { make: function(route) {
frappe.model.with_doctype(route[1], function() { frappe.model.with_doctype(route[1], function() {
var options = { var options = {
doctype: route[1]
doctype: route[1],
meta: frappe.get_meta(route[1])
}; };


if (!frappe.treeview_settings[route[1]] && !frappe.meta.get_docfield(route[1], "is_group")) { if (!frappe.treeview_settings[route[1]] && !frappe.meta.get_docfield(route[1], "is_group")) {
@@ -166,7 +167,7 @@ frappe.views.TreeView = Class.extend({
return; return;
} }


this.prepare_fields()
this.prepare_fields();


// the dialog // the dialog
var d = new frappe.ui.Dialog({ var d = new frappe.ui.Dialog({
@@ -174,7 +175,25 @@ frappe.views.TreeView = Class.extend({
fields: me.fields fields: me.fields
}) })


me.args["parent_"+me.doctype.toLowerCase()] = me.args["parent"];
d.set_value("is_group", 0); d.set_value("is_group", 0);
d.set_values(me.args);

// set query to all link fields if company field exists
if (me.args["company"]) {
$.each(me.fields, function(i, field){
if(field.fieldtype == "Link") {
d.fields_dict[field.fieldname].get_query = function() {
return {
filters:{
"company": me.args["company"]
}
}
};
}
})
}

// create // create
d.set_primary_action(__("Create New"), function() { d.set_primary_action(__("Create New"), function() {
var btn = this; var btn = this;
@@ -215,15 +234,26 @@ frappe.views.TreeView = Class.extend({
var me = this; var me = this;


this.fields = [ this.fields = [
{fieldtype:'Data', fieldname: 'name_field',
label:__('New {0} Name',[__(me.doctype)]), reqd:true},
{fieldtype:'Check', fieldname:'is_group', label:__('Group Node'), {fieldtype:'Check', fieldname:'is_group', label:__('Group Node'),
description: __("Further nodes can be only created under 'Group' type nodes")} description: __("Further nodes can be only created under 'Group' type nodes")}
] ]


if (me.opts.fields) {
me.fields = me.opts.fields;
if (this.opts.fields) {
this.fields = this.opts.fields;
} }

var mandatory_fields = $.map(me.opts.meta.fields,
function(d) { return (d.reqd || d.bold && !d.read_only) ? d : null });

var opts_field_names = this.fields.map(function(d) {
return d.fieldname
})

mandatory_fields.map(function(d) {
if($.inArray(d.fieldname, opts_field_names) === -1) {
me.fields.push(d)
}
})
}, },
set_primary_action: function(){ set_primary_action: function(){
var me = this; var me = this;


Ladataan…
Peruuta
Tallenna