def view_page(self): pagename = self.request.matchdict['pagename'] session = DBSession() page = session.query(SiteText).filter_by(name=pagename).first() if page is None: location = self.url(route='add_page', pagename=pagename) self.response = HTTPFound(location=location) return def check(match): word = match.group(1) exists = session.query(SiteText).filter_by(name=word).all() if exists: url = self.url(route='view_page', pagename=word) else: url = self.url(route='add_page', pagename=word) return self._anchor(url, word) # this is a sad "markup" system # good for a tutorial, but needs to be better # for actual use. content = render_rst(page.content) content = wikiwords.sub(check, content) edit_url = self.url(route='edit_page', pagename=pagename) # We should check the session here # this is from tutorial, but we need better # solution. #logged_in = authenticated_userid(self.request) l = self.layout l.title = "Wiki: %s" % page.name l.header = page.name l.content = content l.footer = self._anchor(edit_url, "Edit Page")
def list_pages(self): session = DBSession() #pages = session.query(Page).all() pages = session.query(SiteText).filter_by(type='tutwiki').all() pagelist = [] for page in pages: url = self.url(route='view_page', pagename=page.name) anchor = self._anchor(url, page.name) pagelist.append('<li>%s</li>' % anchor) ul = '<ul>%s</ul>' % '\n'.join(pagelist) self.layout.content = ul
def edit_page(self): name = self.request.matchdict['pagename'] session = DBSession() #page = session.query(Page).filter_by(name=name).one() page = session.query(SiteText).filter_by(name=name).one() if 'form.submitted' in self.request.params: self._edit_form_submitted(name, page=page) return save_url = self.url(route='edit_page', pagename=name) #logged_in = authenticated_userid(self.request) self.layout.content = EDIT_PAGE_FORM % (save_url, page.content)
def populate_groups(): transaction.begin() session = DBSession() contacts = [ ('Clark', 'Kent', '601-555-1212', '*****@*****.**'), ('Bruce', 'Wayne', '601-911-2012', '*****@*****.**'), ] if not session.query(Contact).count(): with transaction.manager: for c in contacts: contact = Contact(*c) session.add(contact)