All pastes #605363 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-07-06 03:54 UTC
rendered paste body
import 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)