Changeset 4838

Show
Ignore:
Timestamp:
06/28/08 17:59:09 (5 months ago)
Author:
brunojm
Message:

adding notfound method

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/docs/project_code/Wiki-20/wiki20/controllers/root.py

    r4835 r4838  
    1111import re 
    1212from docutils.core import publish_parts 
     13from sqlalchemy.exceptions import InvalidRequestError 
    1314 
    1415wikiwords = re.compile(r"\\b([A-Z]\\w+[A-Z]+\\w+)") 
     
    1920    @expose('wiki20.templates.page') 
    2021    def default(self, pagename="FrontPage"): 
     22        try: 
     23            page = DBSession.query(Page).filter_by(pagename=pagename).one() 
     24        except InvalidRequestError: 
     25            raise tg.redirect("notfound", pagename = pagename) 
    2126        page = DBSession.query(Page).filter_by(pagename=pagename).one() 
    2227        content = publish_parts(page.data, writer_name="html")["html_body"] 
     
    4045        DBSession.commit() # Tells database to commit changes permanently 
    4146        redirect("/" + pagename) 
     47         
     48    @expose("wiki20.templates.edit") 
     49    def notfound(self, pagename): 
     50        page = Page(pagename=pagename, data="") 
     51        DBSession.save(page) 
     52        DBSession.commit() 
     53        return dict(wikipage=page)