@@ -635,11 +635,12 @@ def delete_doc_if_exists(doctype, name, force=0): | |||||
if db.exists(doctype, name): | if db.exists(doctype, name): | ||||
delete_doc(doctype, name, force=force) | delete_doc(doctype, name, force=force) | ||||
def reload_doctype(doctype, force=False): | |||||
def reload_doctype(doctype, force=False, reset_permissions=False): | |||||
"""Reload DocType from model (`[module]/[doctype]/[name]/[name].json`) files.""" | """Reload DocType from model (`[module]/[doctype]/[name]/[name].json`) files.""" | ||||
reload_doc(scrub(db.get_value("DocType", doctype, "module")), "doctype", scrub(doctype), force=force) | |||||
reload_doc(scrub(db.get_value("DocType", doctype, "module")), "doctype", scrub(doctype), | |||||
force=force, reset_permissions=reset_permissions) | |||||
def reload_doc(module, dt=None, dn=None, force=False): | |||||
def reload_doc(module, dt=None, dn=None, force=False, reset_permissions=False): | |||||
"""Reload Document from model (`[module]/[doctype]/[name]/[name].json`) files. | """Reload Document from model (`[module]/[doctype]/[name]/[name].json`) files. | ||||
:param module: Module name. | :param module: Module name. | ||||
@@ -649,7 +650,7 @@ def reload_doc(module, dt=None, dn=None, force=False): | |||||
""" | """ | ||||
import frappe.modules | import frappe.modules | ||||
return frappe.modules.reload_doc(module, dt, dn, force=force) | |||||
return frappe.modules.reload_doc(module, dt, dn, force=force, reset_permissions=reset_permissions) | |||||
def rename_doc(doctype, old, new, debug=0, force=False, merge=False, ignore_permissions=False): | def rename_doc(doctype, old, new, debug=0, force=False, merge=False, ignore_permissions=False): | ||||
"""Rename a document. Calls `frappe.model.rename_doc.rename_doc`""" | """Rename a document. Calls `frappe.model.rename_doc.rename_doc`""" | ||||
@@ -1174,7 +1174,7 @@ | |||||
"issingle": 0, | "issingle": 0, | ||||
"istable": 1, | "istable": 1, | ||||
"max_attachments": 0, | "max_attachments": 0, | ||||
"modified": "2016-10-26 17:29:04.205496", | |||||
"modified": "2017-01-06 07:29:04.205496", | |||||
"modified_by": "Administrator", | "modified_by": "Administrator", | ||||
"module": "Core", | "module": "Core", | ||||
"name": "DocField", | "name": "DocField", | ||||
@@ -92,7 +92,7 @@ def import_doc(path, overwrite=False, ignore_links=False, ignore_insert=False, | |||||
for f in files: | for f in files: | ||||
if f.endswith(".json"): | if f.endswith(".json"): | ||||
frappe.flags.mute_emails = True | frappe.flags.mute_emails = True | ||||
frappe.modules.import_file.import_file_by_path(f, data_import=True, force=True, pre_process=pre_process) | |||||
frappe.modules.import_file.import_file_by_path(f, data_import=True, force=True, pre_process=pre_process, reset_permissions=True) | |||||
frappe.flags.mute_emails = False | frappe.flags.mute_emails = False | ||||
frappe.db.commit() | frappe.db.commit() | ||||
elif f.endswith(".csv"): | elif f.endswith(".csv"): | ||||
@@ -23,7 +23,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 1, | "in_filter": 1, | ||||
"in_list_view": 1, | "in_list_view": 1, | ||||
"in_standard_filter": 1, | |||||
"label": "Document", | "label": "Document", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -53,7 +52,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 1, | "in_filter": 1, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "Label", | "label": "Label", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 1, | "no_copy": 1, | ||||
@@ -82,7 +80,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "Label Help", | "label": "Label Help", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -110,7 +107,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 1, | "in_list_view": 1, | ||||
"in_standard_filter": 0, | |||||
"label": "Fieldname", | "label": "Fieldname", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 1, | "no_copy": 1, | ||||
@@ -141,7 +137,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "Insert After", | "label": "Insert After", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 1, | "no_copy": 1, | ||||
@@ -170,7 +165,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
"permlevel": 0, | "permlevel": 0, | ||||
@@ -198,7 +192,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 1, | "in_filter": 1, | ||||
"in_list_view": 1, | "in_list_view": 1, | ||||
"in_standard_filter": 0, | |||||
"label": "Field Type", | "label": "Field Type", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -230,7 +223,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "Precision", | "label": "Precision", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -259,7 +251,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 1, | "in_list_view": 1, | ||||
"in_standard_filter": 0, | |||||
"label": "Options", | "label": "Options", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -288,7 +279,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "Options Help", | "label": "Options Help", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -316,7 +306,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
"permlevel": 0, | "permlevel": 0, | ||||
@@ -344,7 +333,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "Collapsible", | "label": "Collapsible", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -373,7 +361,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "Collapsible Depends On", | "label": "Collapsible Depends On", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -401,7 +388,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "Default Value", | "label": "Default Value", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -430,7 +416,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "Depends On", | "label": "Depends On", | ||||
"length": 255, | "length": 255, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -457,7 +442,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "Field Description", | "label": "Field Description", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -489,7 +473,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "Permission Level", | "label": "Permission Level", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -518,7 +501,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "Width", | "label": "Width", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -547,7 +529,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "", | "label": "", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -577,7 +558,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 1, | "in_list_view": 1, | ||||
"in_standard_filter": 0, | |||||
"label": "Is Mandatory Field", | "label": "Is Mandatory Field", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -606,7 +586,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "Unique", | "label": "Unique", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -634,7 +613,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "Read Only", | "label": "Read Only", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -662,7 +640,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "Ignore User Permissions", | "label": "Ignore User Permissions", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -689,7 +666,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "Hidden", | "label": "Hidden", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -716,7 +692,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "Print Hide", | "label": "Print Hide", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -746,7 +721,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "Print Hide If No Value", | "label": "Print Hide If No Value", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -774,7 +748,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "Print Width", | "label": "Print Width", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 1, | "no_copy": 1, | ||||
@@ -801,7 +774,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "No Copy", | "label": "No Copy", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -830,7 +802,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "Allow on Submit", | "label": "Allow on Submit", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -859,7 +830,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "In Report Filter", | "label": "In Report Filter", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -888,7 +858,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "In List View", | "label": "In List View", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -908,14 +877,13 @@ | |||||
"bold": 0, | "bold": 0, | ||||
"collapsible": 0, | "collapsible": 0, | ||||
"columns": 0, | "columns": 0, | ||||
"fieldname": "in_filter_dash", | |||||
"fieldname": "in_standard_filter", | |||||
"fieldtype": "Check", | "fieldtype": "Check", | ||||
"hidden": 0, | "hidden": 0, | ||||
"ignore_user_permissions": 0, | "ignore_user_permissions": 0, | ||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "In Standard Filter", | "label": "In Standard Filter", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -943,7 +911,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "Report Hide", | "label": "Report Hide", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -972,7 +939,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "Index", | "label": "Index", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 1, | "no_copy": 1, | ||||
@@ -1000,7 +966,6 @@ | |||||
"ignore_xss_filter": 0, | "ignore_xss_filter": 0, | ||||
"in_filter": 0, | "in_filter": 0, | ||||
"in_list_view": 0, | "in_list_view": 0, | ||||
"in_standard_filter": 0, | |||||
"label": "Ignore XSS Filter", | "label": "Ignore XSS Filter", | ||||
"length": 0, | "length": 0, | ||||
"no_copy": 0, | "no_copy": 0, | ||||
@@ -1028,7 +993,7 @@ | |||||
"issingle": 0, | "issingle": 0, | ||||
"istable": 0, | "istable": 0, | ||||
"max_attachments": 0, | "max_attachments": 0, | ||||
"modified": "2016-11-07 05:23:16.370928", | |||||
"modified": "2017-01-06 12:24:04.186289", | |||||
"modified_by": "Administrator", | "modified_by": "Administrator", | ||||
"module": "Custom", | "module": "Custom", | ||||
"name": "Custom Field", | "name": "Custom Field", | ||||
@@ -129,7 +129,7 @@ def install_app(name, verbose=False, set_as_patched=True): | |||||
if name != "frappe": | if name != "frappe": | ||||
add_module_defs(name) | add_module_defs(name) | ||||
sync_for(name, force=True, sync_everything=True, verbose=verbose) | |||||
sync_for(name, force=True, sync_everything=True, verbose=verbose, reset_permissions=True) | |||||
sync_from_app(name) | sync_from_app(name) | ||||
@@ -12,17 +12,17 @@ from frappe.modules.import_file import import_file_by_path | |||||
from frappe.modules.patch_handler import block_user | from frappe.modules.patch_handler import block_user | ||||
from frappe.utils import update_progress_bar | from frappe.utils import update_progress_bar | ||||
def sync_all(force=0, verbose=False): | |||||
def sync_all(force=0, verbose=False, reset_permissions=False): | |||||
block_user(True) | block_user(True) | ||||
for app in frappe.get_installed_apps(): | for app in frappe.get_installed_apps(): | ||||
sync_for(app, force, verbose=verbose) | |||||
sync_for(app, force, verbose=verbose, reset_permissions=reset_permissions) | |||||
block_user(False) | block_user(False) | ||||
frappe.clear_cache() | frappe.clear_cache() | ||||
def sync_for(app_name, force=0, sync_everything = False, verbose=False): | |||||
def sync_for(app_name, force=0, sync_everything = False, verbose=False, reset_permissions=False): | |||||
files = [] | files = [] | ||||
if app_name == "frappe": | if app_name == "frappe": | ||||
@@ -41,7 +41,7 @@ def sync_for(app_name, force=0, sync_everything = False, verbose=False): | |||||
l = len(files) | l = len(files) | ||||
if l: | if l: | ||||
for i, doc_path in enumerate(files): | for i, doc_path in enumerate(files): | ||||
import_file_by_path(doc_path, force=force) | |||||
import_file_by_path(doc_path, force=force, reset_permissions=reset_permissions) | |||||
#print module_name + ' | ' + doctype + ' | ' + name | #print module_name + ' | ' + doctype + ' | ' + name | ||||
frappe.db.commit() | frappe.db.commit() | ||||
@@ -7,19 +7,21 @@ import frappe, os, json | |||||
from frappe.modules import get_module_path, scrub_dt_dn | from frappe.modules import get_module_path, scrub_dt_dn | ||||
from frappe.utils import get_datetime_str | from frappe.utils import get_datetime_str | ||||
def import_files(module, dt=None, dn=None, force=False, pre_process=None): | |||||
def import_files(module, dt=None, dn=None, force=False, pre_process=None, reset_permissions=False): | |||||
if type(module) is list: | if type(module) is list: | ||||
out = [] | out = [] | ||||
for m in module: | for m in module: | ||||
out.append(import_file(m[0], m[1], m[2], force=force, pre_process=pre_process)) | |||||
out.append(import_file(m[0], m[1], m[2], force=force, pre_process=pre_process, | |||||
reset_permissions=reset_permissions)) | |||||
return out | return out | ||||
else: | else: | ||||
return import_file(module, dt, dn, force=force, pre_process=pre_process) | |||||
return import_file(module, dt, dn, force=force, pre_process=pre_process, | |||||
reset_permissions=reset_permissions) | |||||
def import_file(module, dt, dn, force=False, pre_process=None): | |||||
def import_file(module, dt, dn, force=False, pre_process=None, reset_permissions=False): | |||||
"""Sync a file from txt if modifed, return false if not updated""" | """Sync a file from txt if modifed, return false if not updated""" | ||||
path = get_file_path(module, dt, dn) | path = get_file_path(module, dt, dn) | ||||
ret = import_file_by_path(path, force, pre_process=pre_process) | |||||
ret = import_file_by_path(path, force, pre_process=pre_process, reset_permissions=reset_permissions) | |||||
return ret | return ret | ||||
def get_file_path(module, dt, dn): | def get_file_path(module, dt, dn): | ||||
@@ -30,7 +32,7 @@ def get_file_path(module, dt, dn): | |||||
return path | return path | ||||
def import_file_by_path(path, force=False, data_import=False, pre_process=None): | |||||
def import_file_by_path(path, force=False, data_import=False, pre_process=None, reset_permissions=False): | |||||
frappe.flags.in_import = True | frappe.flags.in_import = True | ||||
try: | try: | ||||
docs = read_doc_from_file(path) | docs = read_doc_from_file(path) | ||||
@@ -51,7 +53,8 @@ def import_file_by_path(path, force=False, data_import=False, pre_process=None): | |||||
original_modified = doc.get("modified") | original_modified = doc.get("modified") | ||||
import_doc(doc, force=force, data_import=data_import, pre_process=pre_process) | |||||
import_doc(doc, data_import=data_import, pre_process=pre_process, | |||||
reset_permissions=reset_permissions) | |||||
if original_modified: | if original_modified: | ||||
# since there is a new timestamp on the file, update timestamp in | # since there is a new timestamp on the file, update timestamp in | ||||
@@ -87,7 +90,7 @@ ignore_values = { | |||||
ignore_doctypes = ["Page Role", "DocPerm"] | ignore_doctypes = ["Page Role", "DocPerm"] | ||||
def import_doc(docdict, force=False, data_import=False, pre_process=None): | |||||
def import_doc(docdict, data_import=False, pre_process=None, reset_permissions=False): | |||||
frappe.flags.in_import = True | frappe.flags.in_import = True | ||||
docdict["__islocal"] = 1 | docdict["__islocal"] = 1 | ||||
doc = frappe.get_doc(docdict) | doc = frappe.get_doc(docdict) | ||||
@@ -99,14 +102,14 @@ def import_doc(docdict, force=False, data_import=False, pre_process=None): | |||||
if frappe.db.exists(doc.doctype, doc.name): | if frappe.db.exists(doc.doctype, doc.name): | ||||
old_doc = frappe.get_doc(doc.doctype, doc.name) | old_doc = frappe.get_doc(doc.doctype, doc.name) | ||||
if doc.doctype in ignore_values and not force: | |||||
if doc.doctype in ignore_values: | |||||
# update ignore values | # update ignore values | ||||
for key in ignore_values.get(doc.doctype) or []: | for key in ignore_values.get(doc.doctype) or []: | ||||
doc.set(key, old_doc.get(key)) | doc.set(key, old_doc.get(key)) | ||||
# update ignored docs into new doc | # update ignored docs into new doc | ||||
for df in doc.meta.get_table_fields(): | for df in doc.meta.get_table_fields(): | ||||
if df.options in ignore_doctypes and not force: | |||||
if df.options in ignore_doctypes and not reset_permissions: | |||||
doc.set(df.fieldname, []) | doc.set(df.fieldname, []) | ||||
ignore.append(df.options) | ignore.append(df.options) | ||||
@@ -136,9 +136,9 @@ def get_doc_path(module, doctype, name): | |||||
dt, dn = scrub_dt_dn(doctype, name) | dt, dn = scrub_dt_dn(doctype, name) | ||||
return os.path.join(get_module_path(module), dt, dn) | return os.path.join(get_module_path(module), dt, dn) | ||||
def reload_doc(module, dt=None, dn=None, force=True): | |||||
def reload_doc(module, dt=None, dn=None, force=False, reset_permissions=False): | |||||
from frappe.modules.import_file import import_files | from frappe.modules.import_file import import_files | ||||
return import_files(module, dt, dn, force=force) | |||||
return import_files(module, dt, dn, force=force, reset_permissions=reset_permissions) | |||||
def export_doc(doctype, name, module=None): | def export_doc(doctype, name, module=None): | ||||
"""Write a doc to standard path.""" | """Write a doc to standard path.""" | ||||
@@ -5,7 +5,7 @@ frappe.patches.v7_1.rename_scheduler_log_to_error_log | |||||
frappe.patches.v6_1.rename_file_data | frappe.patches.v6_1.rename_file_data | ||||
frappe.patches.v7_0.re_route #2016-06-27 | frappe.patches.v7_0.re_route #2016-06-27 | ||||
execute:frappe.reload_doc('core', 'doctype', 'doctype', force=True) #2016-10-17 | execute:frappe.reload_doc('core', 'doctype', 'doctype', force=True) #2016-10-17 | ||||
execute:frappe.reload_doc('core', 'doctype', 'docfield', force=True) #2016-02-26 | |||||
execute:frappe.reload_doc('core', 'doctype', 'docfield', force=True) #2017-01-06 | |||||
execute:frappe.reload_doc('core', 'doctype', 'docperm') #2014-06-24 | execute:frappe.reload_doc('core', 'doctype', 'docperm') #2014-06-24 | ||||
execute:frappe.reload_doc('core', 'doctype', 'role') | execute:frappe.reload_doc('core', 'doctype', 'role') | ||||
execute:frappe.reload_doc('core', 'doctype', 'user') | execute:frappe.reload_doc('core', 'doctype', 'user') | ||||
@@ -149,3 +149,4 @@ frappe.patches.v7_1.disabled_print_settings_for_custom_print_format | |||||
frappe.patches.v7_2.set_doctype_engine | frappe.patches.v7_2.set_doctype_engine | ||||
frappe.patches.v7_2.merge_knowledge_base | frappe.patches.v7_2.merge_knowledge_base | ||||
frappe.patches.v7_0.update_report_builder_json | frappe.patches.v7_0.update_report_builder_json | ||||
frappe.patches.v7_2.set_in_standard_filter_property #1 |
@@ -0,0 +1,12 @@ | |||||
import frappe | |||||
def execute(): | |||||
frappe.reload_doc('custom', 'doctype', 'custom_field', force=True) | |||||
try: | |||||
frappe.db.sql('update `tabCustom Field` set in_standard_filter = in_filter_dash') | |||||
except Exception, e: | |||||
if e.args[0]!=1054: raise e | |||||
for doctype in frappe.get_all("DocType", {"istable": 0, "issingle": 0}): | |||||
frappe.reload_doctype(doctype.name, force=True) |