Ejemplo n.º 1
0
def create_wiki(wikiname, adminname, request):
    from Sycamore.wikidb import setRecentChanges
    wikiname = wikiname.lower()
    is_in_farm = wikiutil.isInFarm(wikiname, request)
    is_valid_name = isValidWikiName(wikiname)
    if is_valid_name and not is_in_farm:
        old_wiki = request.config.wiki_name
        wikiname = wikiname.lower()
        create_config(wikiname, request) 

        request.switch_wiki(wikiname)
        buildDB.insert_pages(request, global_pages=False)
        setup_admin(adminname, request)

        build_page_caches(request)
        clear_page_caches(request)

        build_search_index(request)
        setRecentChanges(request)
        request.switch_wiki(old_wiki)
        return None

    if is_in_farm:
        return 'Wiki creation failed because the wiki "%s" already exists!' % (
            wikiname)
    if not is_valid_name:
        return ('Wiki creation failed because the wiki name "%s" is invalid.  '
                'You may only use the numbers 0-9, the letters a-z, and the '
                'dash "-" in a wiki name.' % wikiname)
Ejemplo n.º 2
0
def updateRecentChanges(page):
    request = page.request
    # set global recent changes (per-wiki)
    wikidb.setRecentChanges(request)
    # set page specific recent changes
    wikidb.setRecentChanges(request, page=page.page_name)