rendered paste bodyimport logging
import cherrypy
import turbogears
from turbogears import ( controllers, expose, validate, redirect,
widgets, validators, error_handler )
from bookmarker import json
from model import Bookmarks, Categories
log = logging.getLogger("bookmarker.controllers")
class bookmark_fields(widgets.WidgetsList):
bookmarkName = widgets.TextField(validator=validators.NotEmpty)
link = widgets.TextField(validator=validators.URL)
description = widgets.TextArea(validator=validators.NotEmpty)
bookmark_form = widgets.TableForm(fields=bookmark_fields(),
submit_text="Save Bookmark")
class Root(controllers.RootController):
@expose(template="bookmarker.templates.index")
def index(self):
return dict()
@expose(template="bookmarker.templates.list")
def list(self):
b=Bookmarks.select()
return dict(bookmarks=b)
@expose(template="bookmarker.templates.form")
def bookmark(self, *args, **kwargs):
if args and args[0] == "add":
b = ""
submit_action= "/save_bookmark/0"
if args and args[0] == "edit":
from sqlobject import SQLObjectNotFound
try:
b = Bookmarks.get(args[1])
values = kwargs
except SQLObjectNotFound:
values = ""
flash("That's not a valid Bookmark, do you want " +
"to add one now?")
submit_action = "/save_bookmark/%s" %args[1]
return dict(form=bookmark_form,
values=b,
action=submit_action)
@expose()
@error_handler(bookmark)
@validate(form=bookmark_form)
def save_bookmark(self, ID, **kwargs):
print 'save_bookmark(): ID=',ID, 'kwargs=', kwargs
from sqlobject import SQLObjectNotFound
try:
b=Bookmarks.get(ID)
b.set(**kwargs)
except SQLObjectNotFound:
Bookmarks(**kwargs)
raise redirect("/list")
@expose(template="bookmarker.templates.categorylist")
def list_by_category(self):
c=Categories.select()
return dict(categories=c)