コード例 #1
0
def decorate_navbar_model(resp_model):
    main_navbar_data = memcache.get("main-navbar")
    if main_navbar_data is None:
        # Add navbar data
        main_navbar_db = model.ModuleConfig.get_by("module_id", "main-navbar")
        if main_navbar_db is not None and main_navbar_db.config is not None:
            main_navbar_data = json.loads(main_navbar_db.config)
            extern = util.get_if_exists(resp_model, "extern", False)
            expand_links(main_navbar_data, extern)
            memcache.add("main-navbar", main_navbar_data, 3600)
    resp_model["navbar"] = main_navbar_data
コード例 #2
0
def expand_links(parentItem, extern=False):
    if isinstance(parentItem, list):
        for item in parentItem:
            expand_links(item, extern)
    else:
        modelType = util.get_if_exists(parentItem, "modelType", None)
        if "story" == modelType:
            story_key = None
            keyStr = util.get_if_exists(parentItem, "key", None)
            if not util.is_blank(keyStr):
                story_db = ndb.Key(urlsafe=keyStr).get()
                if story_db:
                    parentItem["visible"] = story_db.deleted
                    parentItem["url"] = flask.url_for("story", story_key=util.story_key(story_db), _external=extern)
                else:
                    parentItem["visible"] = False
        if "page" == modelType:
            keyStr = util.get_if_exists(parentItem, "url_component", "home")
            try:
                parentItem["url"] = flask.url_for(keyStr, _external=extern)
            except routing.BuildError:
                parentItem["url"] = flask.url_for("home", _external=extern)
        if "nodes" in parentItem:
            expand_links(parentItem["nodes"], extern)