Procházet zdrojové kódy

Merge pull request #2071 from saurabh6790/quick_entry_for_treeview

[fix] pull all mandatory fields from meta while creating new node in tree
version-14
Nabin Hait před 8 roky
committed by GitHub
rodič
revize
abb723247c
2 změnil soubory, kde provedl 37 přidání a 7 odebrání
  1. +1
    -1
      frappe/desk/treeview.py
  2. +36
    -6
      frappe/public/js/frappe/views/treeview.js

+ 1
- 1
frappe/desk/treeview.py Zobrazit soubor

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

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


+ 36
- 6
frappe/public/js/frappe/views/treeview.js Zobrazit soubor

@@ -7,7 +7,8 @@ frappe.views.TreeFactory = frappe.views.Factory.extend({
make: function(route) {
frappe.model.with_doctype(route[1], function() {
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")) {
@@ -166,7 +167,7 @@ frappe.views.TreeView = Class.extend({
return;
}

this.prepare_fields()
this.prepare_fields();

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

me.args["parent_"+me.doctype.toLowerCase()] = me.args["parent"];
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
d.set_primary_action(__("Create New"), function() {
var btn = this;
@@ -215,15 +234,26 @@ frappe.views.TreeView = Class.extend({
var me = this;

this.fields = [
{fieldtype:'Data', fieldname: 'name_field',
label:__('New {0} Name',[__(me.doctype)]), reqd:true},
{fieldtype:'Check', fieldname:'is_group', label:__('Group Node'),
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(){
var me = this;


Načítá se…
Zrušit
Uložit