feat: Added 'Allow Import (via Data Import Tool)' checkbox in Customize Formversion-14
@@ -7,15 +7,20 @@ frappe.ui.form.on('Data Import', { | |||||
frm.set_value("action", ""); | frm.set_value("action", ""); | ||||
} | } | ||||
frm.set_query("reference_doctype", function() { | |||||
return { | |||||
"filters": { | |||||
"issingle": 0, | |||||
"istable": 0, | |||||
"name": ['in', frappe.boot.user.can_import] | |||||
} | |||||
}; | |||||
}); | |||||
frappe.call({ | |||||
method: "frappe.core.doctype.data_import.data_import.get_importable_doc", | |||||
callback: function (r) { | |||||
frm.set_query("reference_doctype", function () { | |||||
return { | |||||
"filters": { | |||||
"issingle": 0, | |||||
"istable": 0, | |||||
"name": ['in', r.message] | |||||
} | |||||
}; | |||||
}); | |||||
} | |||||
}), | |||||
// should never check public | // should never check public | ||||
frm.fields_dict["import_file"].df.is_private = 1; | frm.fields_dict["import_file"].df.is_private = 1; | ||||
@@ -29,6 +29,11 @@ class DataImport(Document): | |||||
upload(data_import_doc=self, from_data_import="Yes", validate_template=True) | upload(data_import_doc=self, from_data_import="Yes", validate_template=True) | ||||
@frappe.whitelist() | |||||
def get_importable_doc(): | |||||
import_lst = frappe.cache().hget("can_import", frappe.session.user) | |||||
return import_lst | |||||
@frappe.whitelist() | @frappe.whitelist() | ||||
def import_data(data_import): | def import_data(data_import): | ||||
frappe.db.set_value("Data Import", data_import, "import_status", "In Progress", update_modified=False) | frappe.db.set_value("Data Import", data_import, "import_status", "In Progress", update_modified=False) | ||||
@@ -18,6 +18,7 @@ | |||||
"track_changes", | "track_changes", | ||||
"track_views", | "track_views", | ||||
"allow_auto_repeat", | "allow_auto_repeat", | ||||
"allow_import", | |||||
"image_view", | "image_view", | ||||
"column_break_5", | "column_break_5", | ||||
"title_field", | "title_field", | ||||
@@ -167,13 +168,19 @@ | |||||
"fieldname": "allow_auto_repeat", | "fieldname": "allow_auto_repeat", | ||||
"fieldtype": "Check", | "fieldtype": "Check", | ||||
"label": "Allow Auto Repeat" | "label": "Allow Auto Repeat" | ||||
}, | |||||
{ | |||||
"default": "0", | |||||
"fieldname": "allow_import", | |||||
"fieldtype": "Check", | |||||
"label": "Allow Import (via Data Import Tool)" | |||||
} | } | ||||
], | ], | ||||
"hide_toolbar": 1, | "hide_toolbar": 1, | ||||
"icon": "fa fa-glass", | "icon": "fa fa-glass", | ||||
"idx": 1, | "idx": 1, | ||||
"issingle": 1, | "issingle": 1, | ||||
"modified": "2019-07-01 22:50:50.372465", | |||||
"modified": "2019-10-08 11:16:36.698006", | |||||
"modified_by": "Administrator", | "modified_by": "Administrator", | ||||
"module": "Custom", | "module": "Custom", | ||||
"name": "Customize Form", | "name": "Customize Form", | ||||
@@ -30,7 +30,8 @@ doctype_properties = { | |||||
'max_attachments': 'Int', | 'max_attachments': 'Int', | ||||
'track_changes': 'Check', | 'track_changes': 'Check', | ||||
'track_views': 'Check', | 'track_views': 'Check', | ||||
'allow_auto_repeat': 'Check' | |||||
'allow_auto_repeat': 'Check', | |||||
'allow_import': 'Check' | |||||
} | } | ||||
docfield_properties = { | docfield_properties = { | ||||
@@ -157,8 +157,11 @@ class UserPermissions: | |||||
self.can_read.remove(dt) | self.can_read.remove(dt) | ||||
if "System Manager" in self.get_roles(): | if "System Manager" in self.get_roles(): | ||||
self.can_import = list(filter(lambda d: d in self.can_create, | |||||
frappe.db.sql_list("""select name from `tabDocType` where allow_import = 1"""))) | |||||
docs = [x["name"] for x in frappe.get_all("DocType", "name")] | |||||
for docname in docs: | |||||
if frappe.get_meta(docname, cached=False).allow_import == 1: | |||||
self.can_import.append(docname) | |||||
frappe.cache().hset("can_import", frappe.session.user, self.can_import) | |||||
def get_defaults(self): | def get_defaults(self): | ||||
import frappe.defaults | import frappe.defaults | ||||