Hi Everyone,
I am done with this, here is the code which will help everyone.
paste_file.py
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# MIT License. See license.txt
from __future__ import unicode_literals
import frappe
import logging
import string
import datetime
import re
import json
import os
import requests
import requests.exceptions
import StringIO
import mimetypes, imghdr
import urllib
import frappe, frappe.utils
from frappe import msgprint, _
from frappe.utils import getdate, flt,validate_email_add,cint
from frappe.model.naming import make_autoname
from frappe.model.document import Document
from frappe.model.mapper import get_mapped_doc
from frappe.utils.file_manager import delete_file_data_content, get_content_hash, get_random_filename
from frappe.utils import get_files_path
from frappe import _
from frappe.utils.nestedset import NestedSet
from frappe.utils import strip
_logger = logging.getLogger(frappe.__name__)
@frappe.whitelist()
def setup_folder_paths(filename, new_parent):
file = frappe.get_doc("File", filename)
file.folder = new_parent
file.save()
if file.is_folder:
frappe.rename_doc("File", file.name, file.get_name_based_on_parent_folders(), ignore_permissions=True)
@frappe.whitelist()
def get_name_based_on_parent_folders(self):
path = get_breadcrumbs(self.folder)
folder_name = frappe.get_value("File", self.folder, "file_name")
return "/".join([d.file_name for d in path] + [folder_name, self.file_name])
@frappe.whitelist()
def movee_file(doc_name,new_parent,old_parent):
file_list=frappe.db.sql("""SELECT name from `tabFile` where attached_to_name=%s""",doc_name)
for f in file_list:
setup_folder_paths(file_list.name, new_parent)
frappe.msgprint(f[0]);
# recalculate sizes
frappe.get_doc("File", old_parent).save()
frappe.get_doc("File", new_parent).save()
@frappe.whitelist
def get_bom_detail(item_code):
return frappe.db.sql("""select bom_no,parent from `tabBOM Item` where item_code=%s""", item_code, as_dict=1)
@frappe.whitelist()
def createe_folder(file_name, folder):
""" create new folder under current parent folder """
file = frappe.new_doc("File")
file.file_name = file_name
file.is_folder = 1
file.folder = folder
file.insert()
Code written on a customer button of Purchase Order, name of button is create_folder:
frappe.ui.form.on("Purchase Order","create_folder", function(frm, doctype, name) {
var home_folder="Home";
var data = {
"file_name": frm.doc.name,
"folder": home_folder
};
frappe.call({
//method: "library_management.folder_scriptss.createe_folder",
method: "frappe.core.doctype.file.file.create_new_folder",
args: data,
callback: function(r) { }
})
setTimeout(function(){
var new_parents="Home/"+frm.doc.name;
var data1 = {
"doc_name": frm.doc.name,
"new_parent": new_parents,
"old_parent": "Home/Attachments"
};
frappe.call({
method: "library_management.library_management.paste_file.movee_file",
args: data1,
callback: function(r) { }
})
}, 2000);
});
I hope, it will help people.
@rmehta thanks for the inspiring me.
Regards
Ruchin Sharma