コード例 #1
0
def menu_data() -> Dict[str, Any]:
    menu = appbuilder.menu.get_data()

    languages = {}
    for lang in appbuilder.languages:
        languages[lang] = {
            **appbuilder.languages[lang],
            "url":
            appbuilder.get_url_for_locale(lang),
        }
    return {
        "menu": menu,
        "brand": {
            "path": appbuilder.app.config["LOGO_TARGET_PATH"] or "/",
            "icon": appbuilder.app_icon,
            "alt": appbuilder.app_name,
            "width": appbuilder.app.config["APP_ICON_WIDTH"],
        },
        "navbar_right": {
            "bug_report_url": appbuilder.app.config["BUG_REPORT_URL"],
            "documentation_url": appbuilder.app.config["DOCUMENTATION_URL"],
            "version_string": appbuilder.app.config["VERSION_STRING"],
            "version_sha": appbuilder.app.config["VERSION_SHA"],
            "languages": languages,
            "show_language_picker": len(languages.keys()) > 1,
            "user_is_anonymous": g.user.is_anonymous,
            "user_info_url": appbuilder.get_url_for_userinfo,
            "user_logout_url": appbuilder.get_url_for_logout,
            "user_login_url": appbuilder.get_url_for_login,
            "user_profile_url": None
            if g.user.is_anonymous else f"/superset/profile/{g.user.username}",
            "locale": session.get("locale", "en"),
        },
    }
コード例 #2
0
def menu_data() -> Dict[str, Any]:
    menu = appbuilder.menu.get_data()

    languages = {}
    for lang in appbuilder.languages:
        languages[lang] = {
            **appbuilder.languages[lang],
            "url":
            appbuilder.get_url_for_locale(lang),
        }
    brand_text = appbuilder.app.config["LOGO_RIGHT_TEXT"]
    if callable(brand_text):
        brand_text = brand_text()
    build_number = appbuilder.app.config["BUILD_NUMBER"]
    return {
        "menu": menu,
        "brand": {
            "path": appbuilder.app.config["LOGO_TARGET_PATH"] or "/",
            "icon": appbuilder.app_icon,
            "alt": appbuilder.app_name,
            "width": appbuilder.app.config["APP_ICON_WIDTH"],
            "tooltip": appbuilder.app.config["LOGO_TOOLTIP"],
            "text": brand_text,
        },
        "navbar_right": {
            # show the watermark if the default app icon has been overriden
            "show_watermark": ("superset-logo-horiz"
                               not in appbuilder.app_icon),
            "bug_report_url":
            appbuilder.app.config["BUG_REPORT_URL"],
            "documentation_url":
            appbuilder.app.config["DOCUMENTATION_URL"],
            "version_string":
            appbuilder.app.config["VERSION_STRING"],
            "version_sha":
            appbuilder.app.config["VERSION_SHA"],
            "build_number":
            build_number,
            "languages":
            languages,
            "show_language_picker":
            len(languages.keys()) > 1,
            "user_is_anonymous":
            g.user.is_anonymous,
            "user_info_url":
            None if appbuilder.app.config["MENU_HIDE_USER_INFO"] else
            appbuilder.get_url_for_userinfo,
            "user_logout_url":
            appbuilder.get_url_for_logout,
            "user_login_url":
            appbuilder.get_url_for_login,
            "user_profile_url":
            None if g.user.is_anonymous
            or appbuilder.app.config["MENU_HIDE_USER_INFO"] else
            f"/superset/profile/{g.user.username}",
            "locale":
            session.get("locale", "en"),
        },
    }
コード例 #3
0
def menu_data() -> Dict[str, Any]:
    menu = appbuilder.menu.get_data()
    #TODO dict with more names ('Data' etc)
    menu_exclude_list = ['Databases', 'Upload Excel', '-']

    for idx, menu_entry in enumerate(menu):
        new_childs = []
        change_childs = False
        if menu_entry['name'] == 'Data':
            change_childs = True
            for menu_child in menu_entry['childs']:
                if type(menu_child
                        ) == str and menu_child not in menu_exclude_list:
                    new_childs.append(menu_child)
                if type(menu_child) == dict and menu_child[
                        'name'] not in menu_exclude_list:
                    new_childs.append(menu_child)
        if change_childs:
            menu[idx]['childs'] = new_childs

    logging.debug('XXX')
    logging.debug(menu)

    languages = {}
    for lang in appbuilder.languages:
        languages[lang] = {
            **appbuilder.languages[lang],
            "url":
            appbuilder.get_url_for_locale(lang),
        }
    return {
        "menu": menu,
        "brand": {
            "path": appbuilder.app.config["LOGO_TARGET_PATH"] or "/",
            "icon": appbuilder.app_icon,
            "alt": appbuilder.app_name,
            "width": appbuilder.app.config["APP_ICON_WIDTH"],
        },
        "navbar_right": {
            "bug_report_url": appbuilder.app.config["BUG_REPORT_URL"],
            "documentation_url": appbuilder.app.config["DOCUMENTATION_URL"],
            "version_string": appbuilder.app.config["VERSION_STRING"],
            "version_sha": appbuilder.app.config["VERSION_SHA"],
            "languages": languages,
            "show_language_picker": len(languages.keys()) > 1,
            "user_is_anonymous": g.user.is_anonymous,
            "user_info_url": appbuilder.get_url_for_userinfo,
            "user_logout_url": appbuilder.get_url_for_logout,
            "user_login_url": appbuilder.get_url_for_login,
            "user_profile_url": None
            if g.user.is_anonymous else f"/superset/profile/{g.user.username}",
            "locale": session.get("locale", "en"),
        },
    }
コード例 #4
0
def menu_data():
    menu = appbuilder.menu.get_data()
    root_path = "#"
    logo_target_path = ""
    if not g.user.is_anonymous:
        try:
            logo_target_path = (
                appbuilder.app.config["LOGO_TARGET_PATH"]
                or f"/profile/{g.user.username}/"
            )
        # when user object has no username
        except NameError as ex:
            logger.exception(ex)

        if logo_target_path.startswith("/"):
            root_path = f"/superset{logo_target_path}"
        else:
            root_path = logo_target_path

    languages = {}
    for lang in appbuilder.languages:
        languages[lang] = {
            **appbuilder.languages[lang],
            "url": appbuilder.get_url_for_locale(lang),
        }
    return {
        "menu": menu,
        "brand": {
            "path": root_path,
            "icon": appbuilder.app_icon,
            "alt": appbuilder.app_name,
            "width": appbuilder.app.config["APP_ICON_WIDTH"],
        },
        "navbar_right": {
            "bug_report_url": appbuilder.app.config["BUG_REPORT_URL"],
            "documentation_url": appbuilder.app.config["DOCUMENTATION_URL"],
            "version_string": appbuilder.app.config["VERSION_STRING"],
            "version_sha": appbuilder.app.config["VERSION_SHA"],
            "languages": languages,
            "show_language_picker": len(languages.keys()) > 1,
            "user_is_anonymous": g.user.is_anonymous,
            "user_info_url": appbuilder.get_url_for_userinfo,
            "user_logout_url": appbuilder.get_url_for_logout,
            "user_login_url": appbuilder.get_url_for_login,
            "locale": session.get("locale", "en"),
        },
    }