Beispiel #1
0
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)
Beispiel #2
0
    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))
Beispiel #3
0
    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")
Beispiel #4
0
        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
Beispiel #5
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)