def load_messages(language): frappe.clear_cache() set_default_language(language) m = get_dict("page", "setup-wizard") m.update(get_dict("boot")) send_translations(m) return frappe.local.lang
def get_roles_and_doctypes(): frappe.only_for("System Manager") send_translations(frappe.get_lang_dict("doctype", "DocPerm")) active_domains = frappe.get_active_domains() doctypes = frappe.get_all("DocType", filters={ "istable": 0, "name": ("not in", "DocType"), }, or_filters={ "ifnull(restrict_to_domain, '')": "", "restrict_to_domain": ("in", active_domains) }, fields=["name"]) roles = frappe.get_all("Role", filters={ "name": ("not in", "Administrator"), "disabled": 0, }, or_filters={ "ifnull(restrict_to_domain, '')": "", "restrict_to_domain": ("in", active_domains) }, fields=["name"]) return { "doctypes": [d.get("name") for d in doctypes], "roles": [d.get("name") for d in roles] }
def get_roles_and_doctypes(): frappe.only_for("System Manager") send_translations(frappe.get_lang_dict("doctype", "DocPerm")) active_domains = frappe.get_active_domains() doctypes = frappe.get_all("DocType", filters={ "istable": 0, "name": ("not in", ",".join(not_allowed_in_permission_manager)), }, or_filters={ "ifnull(restrict_to_domain, '')": "", "restrict_to_domain": ("in", active_domains) }, fields=["name"]) roles = frappe.get_all("Role", filters={ "name": ("not in", "Administrator"), "disabled": 0, }, or_filters={ "ifnull(restrict_to_domain, '')": "", "restrict_to_domain": ("in", active_domains) }, fields=["name"]) doctypes_list = [ {"label":_(d.get("name")), "value":d.get("name")} for d in doctypes] roles_list = [ {"label":_(d.get("name")), "value":d.get("name")} for d in roles] return { "doctypes": sorted(doctypes_list, key=lambda d: d['label']), "roles": sorted(roles_list, key=lambda d: d['label']) }
def get_script(report_name): report = get_report_doc(report_name) module = report.module or frappe.db.get_value("DocType", report.ref_doctype, "module") module_path = get_module_path(module) report_folder = os.path.join(module_path, "report", scrub(report.name)) script_path = os.path.join(report_folder, scrub(report.name) + ".js") print_path = os.path.join(report_folder, scrub(report.name) + ".html") script = None if os.path.exists(script_path): with open(script_path, "r") as f: script = f.read() html_format = get_html_format(print_path) if not script and report.javascript: script = report.javascript if not script: script = "frappe.query_reports['%s']={}" % report_name # load translations if frappe.lang != "en": send_translations(frappe.get_lang_dict("report", report_name)) return { "script": script, "html_format": html_format }
def load_messages(language): frappe.clear_cache() lang = get_lang_dict()[language] frappe.local.lang = lang m = get_dict("page", "setup-wizard") m.update(get_dict("boot")) send_translations(m) return lang
def get_roles_and_doctypes(): frappe.only_for("System Manager") send_translations(frappe.get_lang_dict("doctype", "DocPerm")) return { "doctypes": [d[0] for d in frappe.db.sql("""select name from `tabDocType` dt where istable=0 and name not in ('DocType')""")], "roles": [d[0] for d in frappe.db.sql("""select name from tabRole where name != 'Administrator' and disabled=0""")] }
def get_roles_and_doctypes(): frappe.only_for("System Manager") send_translations(frappe.get_lang_dict("doctype", "DocPerm")) return { "doctypes": [d[0] for d in frappe.db.sql("""select name from `tabDocType` dt where ifnull(istable,0)=0 and name not in ('DocType') and exists(select * from `tabDocField` where parent=dt.name)""")], "roles": [d[0] for d in frappe.db.sql("""select name from tabRole where name not in ('Guest', 'Administrator')""")] }
def getpage(): """ Load the page from `frappe.form` and send it via `frappe.response` """ page = frappe.form_dict.get("name") doc = get(page) # load translations if frappe.lang != "en": send_translations(frappe.get_lang_dict("page", page)) frappe.response.docs.append(doc)
def getpage(): """ Load the page from `frappe.form` and send it via `frappe.response` """ page = frappe.form_dict.get('name') doc = get(page) # load translations if frappe.lang != "en": send_translations(frappe.get_lang_dict("page", page)) frappe.response.docs.append(doc)
def get_roles_and_doctypes(): frappe.only_for("System Manager") send_translations(frappe.get_lang_dict("doctype", "DocPerm")) active_domains = frappe.get_active_domains() doctypes = frappe.get_all( "DocType", filters={ "istable": 0, "name": ("not in", ",".join(not_allowed_in_permission_manager)), }, or_filters={ "ifnull(restrict_to_domain, '')": "", "restrict_to_domain": ("in", active_domains) }, fields=["name"]) restricted_roles = ['Administrator'] if frappe.session.user != 'Administrator': custom_user_type_roles = frappe.get_all('User Type', filters={'is_standard': 0}, fields=['role']) for row in custom_user_type_roles: restricted_roles.append(row.role) restricted_roles.append('All') roles = frappe.get_all("Role", filters={ "name": ("not in", restricted_roles), "disabled": 0, }, or_filters={ "ifnull(restrict_to_domain, '')": "", "restrict_to_domain": ("in", active_domains) }, fields=["name"]) doctypes_list = [{ "label": _(d.get("name")), "value": d.get("name") } for d in doctypes] roles_list = [{ "label": _(d.get("name")), "value": d.get("name") } for d in roles] return { "doctypes": sorted(doctypes_list, key=lambda d: d['label']), "roles": sorted(roles_list, key=lambda d: d['label']) }
def get_roles_and_doctypes(): if frappe.local.site_path.split('/')[1] == 'demo.tailorpad.com' and frappe.session.user!='Administrator': return None frappe.only_for("System Manager") send_translations(frappe.get_lang_dict("doctype", "DocPerm")) return { "doctypes": [d[0] for d in frappe.db.sql("""select name from `tabDocType` dt where ifnull(istable,0)=0 and name not in ('DocType') and exists(select * from `tabDocField` where parent=dt.name)""")], "roles": [d[0] for d in frappe.db.sql("""select name from tabRole where name not in ('Guest', 'Administrator')""")] }
def load_messages(language): """Load translation messages for given language from all `setup_wizard_requires` javascript files""" frappe.clear_cache() set_default_language(get_language_code(language)) m = get_dict("page", "setup-wizard") for path in frappe.get_hooks("setup_wizard_requires"): # common folder `assets` served from `sites/` js_file_path = os.path.abspath(frappe.get_site_path("..", *path.strip("/").split("/"))) m.update(get_dict("jsfile", js_file_path)) m.update(get_dict("boot")) send_translations(m) return frappe.local.lang
def get_roles_and_doctypes(): frappe.only_for("System Manager") send_translations(frappe.get_lang_dict("doctype", "DocPerm")) return { "doctypes": [ d[0] for d in frappe.db.sql("""select name from `tabDocType` dt where ifnull(istable,0)=0 and name not in ('DocType') and exists(select * from `tabDocField` where parent=dt.name)""") ], "roles": [ d[0] for d in frappe.db.sql( """select name from tabRole where name not in ('Guest', 'Administrator')""") ] }
def get_roles_and_doctypes(): frappe.only_for("System Manager") send_translations(frappe.get_lang_dict("doctype", "DocPerm")) return { "doctypes": [ d[0] for d in frappe.db.sql("""select name from `tabDocType` dt where istable=0 and name not in ('DocType') and exists(select * from `tabDocField` where parent=dt.name) and exists(select * from `tabDocPerm` dp,`tabRole` role where dp.role = role.name and dp.parent=dt.name and not role.disabled)""" ) ], "roles": [ d[0] for d in frappe.db.sql("""select name from tabRole where name != 'Administrator' and disabled=0""") ] }
def get_script(report_name): report = get_report_doc(report_name) module = report.module or frappe.db.get_value("DocType", report.ref_doctype, "module") is_custom_module = frappe.get_cached_value("Module Def", module, "custom") # custom modules are virtual modules those exists in DB but not in disk. module_path = '' if is_custom_module else get_module_path(module) report_folder = module_path and os.path.join(module_path, "report", scrub(report.name)) script_path = report_folder and os.path.join(report_folder, scrub(report.name) + ".js") print_path = report_folder and os.path.join(report_folder, scrub(report.name) + ".html") script = None if os.path.exists(script_path): with open(script_path, "r") as f: script = f.read() script += f"\n\n//# sourceURL={scrub(report.name)}.js" html_format = get_html_format(print_path) if not script and report.javascript: script = report.javascript script += f"\n\n//# sourceURL={scrub(report.name)}__custom" if not script: script = "frappe.query_reports['%s']={}" % report_name # load translations if frappe.lang != "en": send_translations(frappe.get_lang_dict("report", report_name)) return { "script": render_include(script), "html_format": html_format, "execution_time": frappe.cache().hget("report_execution_time", report_name) or 0, }
def search(text, start=0, limit=20, doctype=""): """ Search for given text in __global_search :param text: phrase to be searched :param start: start results at, default 0 :param limit: number of results to return, default 20 :return: Array of result objects """ from frappe.desk.doctype.global_search_settings.global_search_settings import get_doctypes_for_global_search results = [] sorted_results = [] allowed_doctypes = get_doctypes_for_global_search() for text in set(text.split('&')): text = text.strip() if not text: continue conditions = '1=1' offset = '' mariadb_text = frappe.db.escape('+' + text + '*') mariadb_fields = '`doctype`, `name`, `content`, MATCH (`content`) AGAINST ({} IN BOOLEAN MODE) AS rank'.format( mariadb_text) postgres_fields = '`doctype`, `name`, `content`, TO_TSVECTOR("content") @@ PLAINTO_TSQUERY({}) AS rank'.format( frappe.db.escape(text)) values = {} if doctype: conditions = '`doctype` = %(doctype)s' values['doctype'] = doctype elif allowed_doctypes: conditions = '`doctype` IN %(allowed_doctypes)s' values['allowed_doctypes'] = tuple(allowed_doctypes) if int(start) > 0: offset = 'OFFSET {}'.format(start) common_query = """ SELECT {fields} FROM `__global_search` WHERE {conditions} ORDER BY rank DESC LIMIT {limit} {offset} """ result = frappe.db.multisql( { 'mariadb': common_query.format(fields=mariadb_fields, conditions=conditions, limit=limit, offset=offset), 'postgres': common_query.format(fields=postgres_fields, conditions=conditions, limit=limit, offset=offset) }, values=values, as_dict=True) results.extend(result) if frappe.flags.translated_doctypes is None: frappe.flags.translated_doctypes = [] # Faster for smaller lists # sort results based on allowed_doctype's priority for doctype in allowed_doctypes: for index, r in enumerate(results): if r.doctype == doctype and r.rank > 0.0: try: meta = frappe.get_meta(r.doctype) if meta.image_field: r.image = frappe.db.get_value(r.doctype, r.name, meta.image_field) if doctype not in frappe.flags.translated_doctypes: frappe.flags.translated_doctypes.append(doctype) send_translations( frappe.get_lang_dict("doctype", doctype)) except Exception: frappe.clear_messages() sorted_results.extend([r]) return sorted_results