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)
common_css = ''.join(common_file.readlines()) common_file.close() print_file = open(os.path.join(css_location, 'print.css')) print_css = ''.join(print_file.readlines()) print_file.close() logo_background_file = open(os.path.join(img_location, 'floater.png')) logo_background = ''.join(logo_background_file.readlines()) logo_background_file.close() if config.image_logo: logo_file = open(os.path.join(config.web_root, config.url_prefix[1:], config.image_logo)) logo = ''.join(logo_file.readlines()) logo_background_file.close() flat_page_dict = { 'Wiki Settings': buildDB.basic_pages['Wiki Settings'], 'Wiki Settings/CSS': buildDB.basic_pages['Wiki Settings/CSS'], 'Wiki Settings/Images': buildDB.basic_pages['Wiki Settings/Images'] } flat_page_dict['Wiki Settings/CSS'].files = [ ("screen.css", screen_css), ("common.css", common_css), ("print.css", print_css) ] images_list = [ ("logo_background.png", logo_background) ] if config.image_logo: images_list.append(("logo.png", logo)) flat_page_dict['Wiki Settings/Images'].files = images_list buildDB.insert_pages(cursor, flat_page_dict) plist = wikiutil.getPageList(req) maintenance.buildCaches(plist) req.db_disconnect()