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"), }, }
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"), }, }
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"), }, }
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"), }, }