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

