The code is still being cleaned up and commented.  Actual documentation
will come later.  Python-hosting has offered a Trac for it so it will
be scaffolding.python-hosting.com.  I am hoping to have it up this
weekend.  There is a big deadline at work.  It is still 0.1.

There a few differences.  Scaffolding does not use Identity because it
supports user ownership and group ownership based roles.  The datamodel
is similar to Identity but supports role expiry and ownership.

Modules are called Boards and follow a specification.  By inheriting
all the data structures are a base set that can be expanded, the data
supports ownership and time expiry.  The Boards inherit from a class
similar to the data controller but with more functions.  Whereas
datacontroller supports one class at a time, the Board class provides
CRUD for a tree, node, and element structures.  I will have time based
structures working soon.

All Boards are required to have an init function that will add all the
default roles and configuration into the database.  All boards are by
default ready to go with.  This opens up an interesting possibility.
You could quickstart a Scaffolding project.  Easy_install the boards
that you need.  As you start the application, all the data will be
initialized.  The default controller has default function that uses the
__import__ recipe in the python cookbook.  The CMS would be ready to
go.  You can change your security and default Board names throught the
admin screens.  No coding necessary.

What is working now?  The basic Board, controllers are working.  I have
the import trick mostly working.  Security does what I want it to do
but not everything that identitity does.  I have been running
Scaffolding in site-packages so it is fairly well broken out from my
stuff.  It supports email output and configurable grid like my previous
code releases.  It is not ajax.  That will come after the integration
of client side javascript error detection.  Lightweight round trips is
fast but no roundtrips is faster.  :)

A lot of people will probably question my design decisions.  I have
certain projects in mind.  Some things about TG bug me.  It seems like
KID bothers a lot of people.  I don't mind Kid.  Mochikit and Cherrypy
are awesome.

<rant> SQLobject bothers me.  I have been reading the mailing list and
it seems like the solution to a lot of problems is to go directly to
the database and bypass SQLObject.  This makes the code less portable.
By encapsulating SQLObject, I probably make it even more inefficient
but it makes me feel better to know that I can work my way around
SQLObject later if necessary.  I am not bypassing SQLObject currently
but it is nice to know I have the option when I hit a performance wall.

I think the way to get the nice syntax of SQLObject and good relational
performance is to extend Catwalk.  If Catwalk or another data modelling
tool created the classes and SQL to create the databases, it should be
passible to get around some of the issues.  I think that SQLObject is
taking the easy route to abstraction by moving transactions into the
python code instead of leaving it in the database.  If Catwalk could
operate like Framework manager in Cognos, it would be the best of both
worlds.  Python Objects/Relational Speed.

What would really be nice would be if I could insert intelligence into
SQLobject so it if the database was say Mysql 5, it would use the
stored procedure that I wrote.  There are some use cases where I have
been able to get 30-100x more performance by using a stored procedure.
For an open source project, I would like to give people the option of
using any database but it would be fine tuned for the one I am using.

While I am dreaming, python can be used in postgresql to write stored
procedures.  Iron Python can probably do the same in SQL Server.

</rant>

Questions
I don't want Scaffolding to sit in the TG is changing so fast.  Can I
extend Quickstart with a template in a different directory?

Thanks Alvin

Reply via email to