def execute(pagename, request): util = NgoWikiUtil(request) if not util.is_super_user(): return util.open_database() try: util.init_database() pages = request.rootpage.getPageList(user='', exists='') for name in pages: if name.find(u'Category') == -1: page = Page(request, name) page_uuid = util.insert_page(page)["id"] pageinfo = util.parse_page(page) pageinfo["id"] = page_uuid util.update_page_meta(pageinfo) finally: util.close_database(True)
def execute(self): if self.request.user == None or not self.request.user.valid or not self.request.user.may.write( self.page.page_name): return '' ngowikiutil = NgoWikiUtil(self.request) pageinfo = ngowikiutil.parse_page(self.page) if '公益机构类' in pageinfo['categories'] or '机构类' in pageinfo[ 'categories'] or '企业志愿组织类' in pageinfo[ 'categories'] or '企业类' in pageinfo[ 'categories'] or '企业组织类' in pageinfo[ 'categories'] or '志愿组织类' in pageinfo[ 'categories'] or '服务基地类' in pageinfo[ 'categories'] or '服务站点类' in pageinfo[ 'categories']: self.organization = self.page.page_name html = [] html.append('<a class="' + self.style + '" href="' + './_NGO_NEWPAGE?pagetype=' + self.type) if self.organization != None: html.append('&organization=' + self.organization) html.append('">' + self.text + '</a>') return self.formatter.rawHTML(''.join(html))
def do_action_finish(self, success): if success: pg = Page(self.request, self.newpagename) ngowikiutil = NgoWikiUtil(self.request) ngowikiutil.open_database() try: pageinfo = ngowikiutil.parse_page(pg) pagerecord = ngowikiutil.select_page_by_path(self.pagename) page_uuid = None if pagerecord == None: page_uuid = ngowikiutil.insert_page(pg)["id"] else: page_uuid = pagerecord["id"] ngowikiutil.update_page(page_uuid, pg) pageinfo["id"] = page_uuid ngowikiutil.update_page_meta(pageinfo) finally: ngowikiutil.close_database(True) url = pg.url(self.request) self.request.http_redirect(url, code=301) else: self.render_msg(self.make_form(), "dialog")
except pg.SaveError, msg: # Show the error message request.theme.add_msg(unicode(msg), "error") # And show the editor again pg.sendEditor(preview=savetext, comment=comment, staytop=1) return # Send new page after successful save request.reset() pg = Page(request, pagename) ngowikiutil = NgoWikiUtil(request) ngowikiutil.open_database() try: pageinfo = ngowikiutil.parse_page(pg) pagerecord = ngowikiutil.select_page_by_path(pg.page_name) page_uuid = None if pagerecord == None: page_uuid = ngowikiutil.insert_page(pg)["id"] else: page_uuid = pagerecord["id"] ngowikiutil.update_page(page_uuid, pg) pageinfo["id"] = page_uuid ngowikiutil.update_page_meta(pageinfo) ngowikiutil.update_idea_status(page_uuid, ideastatus) finally: ngowikiutil.close_database(True) # sets revision number to default for further actions request.rev = 0
def execute(self): if FrontpageMacro.lastupdated == None or long(time.time()) - FrontpageMacro.lastupdated > 3600L: ngowikiutil = NgoWikiUtil(self.request) try: ngowikiutil.open_database() FrontpageMacro.totalcount_activities = ngowikiutil.count_pages_by_tag([u'服务产品类']) + ngowikiutil.count_pages_by_tag([u'视听产品类']) + ngowikiutil.count_pages_by_tag([u'实体产品类']) FrontpageMacro.totalcount_ngos = ngowikiutil.count_pages_by_tag([u'公益机构类']) FrontpageMacro.totalcount_enterprises = ngowikiutil.count_pages_by_tag([u'企业志愿组织类']) FrontpageMacro.featured_activities = ngowikiutil.select_pages_with_one_of_tags([u'服务产品类', u'视听产品类', u'实体产品类'], 'featured', 'DESC', 0, 20) for record in FrontpageMacro.featured_activities[0:2]: record["summary"] = record["summary"].replace("'''", "") record["summary"] = filter_summary(record["summary"], 50); pagename = record["path"] page = Page(self.request, pagename) record["link"] = page.url(self.request) if len(record["logo"]) > 0 and exists(self.request, record["path"], record["logo"]): record["logo_link"] = getAttachUrl(record["path"], record["logo"], self.request) else: findLogo = False text = page.getPageText() match = re.search('\\{\\{attachment:([^\\|]+)\\|\\|.*}}', text) if match != None: logo = match.group(1) if exists(self.request, record["path"], logo): record["logo_link"] = getAttachUrl(record["path"], logo, self.request) findLogo = True if not findLogo: record["logo_link"] = self.request.cfg.url_prefix_static + "/ngowiki/img/no-logo.png" FrontpageMacro.featured_ngos = ngowikiutil.select_pages_by_tag([u'公益机构类'], 'featured', 'DESC', 0, 2) for record in FrontpageMacro.featured_ngos: pagename = record["path"] record["summary"] = filter_summary(record["summary"], 50) page = Page(self.request, pagename) record["link"] = page.url(self.request) if len(record["logo"]) > 0 and exists(self.request, record["path"], record["logo"]): record["logo_link"] = getAttachUrl(record["path"], record["logo"], self.request) else: record["logo_link"] = self.request.cfg.url_prefix_static + "/ngowiki/img/no-logo.png" FrontpageMacro.recently_added = ngowikiutil.select_latest_created_pages([u'服务产品类', u'视听产品类', u'实体产品类', u'公益机构类', u'企业志愿组织类'], 0, 5) for record in FrontpageMacro.recently_added: pagename = record["path"] page = Page(self.request, pagename) record["link"] = page.url(self.request) if len(record["logo"]) > 0 and exists(self.request, record["path"], record["logo"]): record["logo_link"] = getAttachUrl(record["path"], record["logo"], self.request) else: record["logo_link"] = self.request.cfg.url_prefix_static + "/ngowiki/img/no-logo.png" if u'服务产品类' in ngowikiutil.parse_page(page)["categories"] or u'视听产品类' in ngowikiutil.parse_page(page)["categories"] or u'实体产品类' in ngowikiutil.parse_page(page)["categories"]: record["recently_added_type"] = "activity" elif u'公益机构类' in ngowikiutil.parse_page(page)["categories"]: record["recently_added_type"] = "ngo" else: record["recently_added_type"] = "enterprise" FrontpageMacro.news_items = ngowikiutil.select_pages_by_tag([u'新闻动态类'], 'featured', 'DESC', 0, 100) for record in FrontpageMacro.news_items: pagename = record["path"] page = Page(self.request, pagename) record["link"] = page.url(self.request) if len(record["logo"]) > 0 and exists(self.request, record["path"], record["logo"]): record["logo_link"] = getAttachUrl(record["path"], record["logo"], self.request) else: record["logo_link"] = self.request.cfg.url_prefix_static + "/ngowiki/img/no-logo.png" finally: ngowikiutil.close_database(True) FrontpageMacro.lastupdated = long(time.time()) context = { 'totalcount_activities': FrontpageMacro.totalcount_activities, 'totalcount_ngos': FrontpageMacro.totalcount_ngos, 'totalcount_enterprises': FrontpageMacro.totalcount_enterprises, 'featured_activities': FrontpageMacro.featured_activities, 'featured_ngos': FrontpageMacro.featured_ngos, 'recently_added': FrontpageMacro.recently_added, 'news_items': FrontpageMacro.news_items, 'logo_url': self.request.cfg.url_prefix_static + "/ngowiki/img/sitelogo.png", 'slogan_url': self.request.cfg.url_prefix_static + "/ngowiki/img/slogan2.png" } engine = tenjin.Engine(path=[os.path.dirname(__file__) + '/views']) html = engine.render('Frontpage.pyhtml', context) return self.formatter.rawHTML(html)