コード例 #1
0
ファイル: permission_manager.py プロジェクト: dataent/dataent
def get_roles_and_doctypes():
	dataent.only_for("System Manager")
	send_translations(dataent.get_lang_dict("doctype", "DocPerm"))

	active_domains = dataent.get_active_domains()

	doctypes = dataent.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 = dataent.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'])
	}
コード例 #2
0
ファイル: client.py プロジェクト: dataent/dataent
def get_js(items):
    '''Load JS code files.  Will also append translations
	and extend `dataent._messages`

	:param items: JSON list of paths of the js files to be loaded.'''
    items = json.loads(items)
    out = []
    for src in items:
        src = src.strip("/").split("/")

        if ".." in src or src[0] != "assets":
            dataent.throw(_("Invalid file path: {0}").format("/".join(src)))

        contentpath = os.path.join(dataent.local.sites_path, *src)
        with open(contentpath, "r") as srcfile:
            code = dataent.utils.cstr(srcfile.read())

        if dataent.local.lang != "en":
            messages = dataent.get_lang_dict("jsfile", contentpath)
            messages = json.dumps(messages)
            code += "\n\n$.extend(dataent._messages, {})".format(messages)

        out.append(code)

    return out
コード例 #3
0
def get_script(report_name):
    report = get_report_doc(report_name)
    module = report.module or dataent.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 = "dataent.query_reports['%s']={}" % report_name

    # load translations
    if dataent.lang != "en":
        send_translations(dataent.get_lang_dict("report", report_name))

    return {
        "script":
        render_include(script),
        "html_format":
        html_format,
        "execution_time":
        dataent.cache().hget('report_execution_time', report_name) or 0
    }
コード例 #4
0
	def set_translations(self, lang):
		self.set("__messages", dataent.get_lang_dict("doctype", self.name))

		# set translations for grid templates
		if self.get("__form_grid_templates"):
			for content in self.get("__form_grid_templates").values():
				messages = extract_messages_from_code(content)
				messages = make_dict_from_messages(messages)
				self.get("__messages").update(messages, as_value=True)
コード例 #5
0
def getpage():
    """
	   Load the page from `dataent.form` and send it via `dataent.response`
	"""
    page = dataent.form_dict.get('name')
    doc = get(page)

    # load translations
    if dataent.lang != "en":
        send_translations(dataent.get_lang_dict("page", page))

    dataent.response.docs.append(doc)
コード例 #6
0
ファイル: boot.py プロジェクト: dataent/dataent
def load_translations(bootinfo):
    messages = dataent.get_lang_dict("boot")

    bootinfo["lang"] = dataent.lang

    # load translated report names
    for name in bootinfo.user.all_reports:
        messages[name] = dataent._(name)

    # only untranslated
    messages = {k: v for k, v in iteritems(messages) if k != v}

    bootinfo["__messages"] = messages