<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <items_returned>7</items_returned>
  <items_available>7</items_available>
  <first_item_position>0</first_item_position>
  <result>
    <project>
      <id>18569</id>
      <name>dbsprockets</name>
      <created_at>2008-10-07T11:42:50Z</created_at>
      <updated_at>2009-05-03T18:16:59Z</updated_at>
      <description>DBSprocketsThe goal of DBSprockets is to give the developer the power to simply generate web content from available database definitions.  Because DBSprockets relies heavily on Toscawidgets, it is framework-independent.  It is easy to implement forms on TG, TG2, Pylons, Zope, and Grok using DBSprockets' primitives.  

DBSprockets is mainly supporting SQLAlchemy, so any application you have that uses  SQLAlchemy will be well supported.  Support for other ORMs will be available in the future. 

Every component of DBSprockets is extensible so that the developer can override a form or a set of forms to his or her liking. 

One of the important implementations using DBSprockets is DBMechanic, which acts as a control board for your database crud. 

Current Version0.2.2, 0.5dev 

Dependent ongenshi&gt;=0.5 sqlalchemy &gt;=0.5 toscawidgets &gt;=0.9.2 Supported FrameworksTurbogears 1.0 Turbogears 2.0 Grok InstallationIf you don't already have easy_install setup download ez_setup here. And execute it. 

With easy_install: 

easy_install dbsprockets 

more details. 

DeclarativesDeclaratives are the easiest way to get going with DBSprockets. 

FormBaseTake a look a the simplest example, a login form: 


from dbsprockets.declaratives import FormBase
from myProject.myModel import User

class LoginForm(FormBase):
    __model__ = User
    __limit_fields__ = 'username', 'password'

login_form = LoginForm()In your template, you would render the form like this: 

${login_form()}Here is what the form looks like: 

 

More information about the [wiki:demoModel model] that created this form. 

TableBaseAnd here is an example showing what it looks like to display a list of users: 

from dbsprockets.declaratives import TableBase
from dbsprockets.primitives import get_table_value
from myProject import User
     
class UserTable(TableBase):
    __model__ = User

user_table = UserTable()
value = get_table_value(User)

user_table(value=value)Which when rendered through a web framework looks something like this: 

 

Notice that the town name (Arvada) has been automatically added. 

Extensible APIThe power of DBSprockets is that every part of it is extensible so customizing forms, widget templates and other portions of your database view is made easier.  Simply override the fields you want to change by name or type with what you want.  Want a whole set of sprockets that have the same modification?  No problem, create a Sprockets cache with your new defaults. 

more on DBSprocketsAPI 

DBMechanic 

Started as a replacement for Catwalk that works with Sqlalchemy. 

DBMechanic is a stand-alone TG2 controller for database viewing. 

UsageDBMechanic is easy to use!  Here is an example of how to use it in TG 1.0: 

from myproject.model import metadata
from dbsprockets.dbmechanic.frameworks.tg import DBMechanic
from dbsprockets.saprovider import SAProvider

dbmechanic = DBMechanic(SAProvider(metadata), '/dbmechanic')more on DBMechanic</description>
      <homepage_url>http://code.google.com/p/dbsprockets</homepage_url>
      <download_url></download_url>
      <url_name>dbsprockets</url_name>
      <user_count>2</user_count>
      <average_rating></average_rating>
      <rating_count>0</rating_count>
      <analysis_id>392874</analysis_id>
      <licenses>
        <license>
          <name>mit</name>
          <nice_name>MIT License</nice_name>
        </license>
      </licenses>
    </project>
    <project>
      <id>316027</id>
      <name>tw.dojo</name>
      <created_at>2009-02-16T08:02:06Z</created_at>
      <updated_at>2009-10-13T14:19:11Z</updated_at>
      <description>ToscaWidgets Wrapper for the Dojo JavaScript Library.</description>
      <homepage_url>http://toscawidgets.org/documentation</homepage_url>
      <download_url></download_url>
      <url_name>tw_dojo</url_name>
      <user_count>1</user_count>
      <average_rating></average_rating>
      <rating_count>0</rating_count>
      <analysis_id>727373</analysis_id>
      <licenses>
        <license>
          <name>mit</name>
          <nice_name>MIT License</nice_name>
        </license>
      </licenses>
    </project>
    <project>
      <id>317325</id>
      <name>tw.timeline</name>
      <created_at>2009-02-25T20:45:56Z</created_at>
      <updated_at>2009-09-25T23:35:43Z</updated_at>
      <description>A tocsa wrapper for the SIMILE timeline widget.</description>
      <homepage_url>http://www.toscawidgets.org</homepage_url>
      <download_url></download_url>
      <url_name>tw_timeline</url_name>
      <user_count>1</user_count>
      <average_rating></average_rating>
      <rating_count>0</rating_count>
      <analysis_id>713840</analysis_id>
      <licenses>
        <license>
          <name>mit</name>
          <nice_name>MIT License</nice_name>
        </license>
      </licenses>
    </project>
    <project>
      <id>479911</id>
      <name>c5t</name>
      <created_at>2009-12-16T16:40:55Z</created_at>
      <updated_at>2009-12-16T16:47:58Z</updated_at>
      <description>a simple CMS based on TurboGears and MongoDB</description>
      <homepage_url>http://bitbucket.org/percious/c5t</homepage_url>
      <download_url></download_url>
      <url_name>c5tcms</url_name>
      <user_count>1</user_count>
      <average_rating></average_rating>
      <rating_count>0</rating_count>
      <analysis_id>793783</analysis_id>
      <licenses>
        <license>
          <name>mit</name>
          <nice_name>MIT License</nice_name>
        </license>
      </licenses>
    </project>
    <project>
      <id>308830</id>
      <name>tw.extjs</name>
      <created_at>2009-01-28T17:03:21Z</created_at>
      <updated_at>2009-01-28T17:14:00Z</updated_at>
      <description>TW wrapper for ExtJS 2.0.x (LGPL licensed)</description>
      <homepage_url></homepage_url>
      <download_url></download_url>
      <url_name>tw_extjs</url_name>
      <user_count>0</user_count>
      <average_rating></average_rating>
      <rating_count>0</rating_count>
      <analysis_id>433939</analysis_id>
      <licenses>
        <license>
          <name>lgpl</name>
          <nice_name>GNU Lesser General Public License 2.1</nice_name>
        </license>
      </licenses>
    </project>
    <project>
      <id>24480</id>
      <name>tgtools</name>
      <created_at>2008-10-07T16:30:16Z</created_at>
      <updated_at>2009-09-24T04:10:29Z</updated_at>
      <description>This is a code repository which contains extensions and additional tools for Turbogears2 wsgi technologies. 

tgext.crudCrud Controller Extension for TG2 

version0.2.4 

installationeasy_install tgext.crud 

UsageMailing ListPlease direct questions to the Turbogears mailing list. Development related questions / suggestions should be directed to the Turbogears Trunk mailing list 

tgext.adminAdmin Controller add-on for basic TG identity model. 

Usageversion0.2.6 

installationeasy_install tgext.admin 

Mailing ListPlease direct questions to the Turbogears mailing list. Development related questions / suggestions should be directed to the Turbogears Trunk mailing list 

tgext.geoTurbogears Extension for Geographic Applications 

Version0.6 

UsageUse GeoAlchemy to model spatial data types. 

Create MapFish layer (model and controller definition) inside your TG2 app to use the MapFish restful protocol. $ paster geo-layer 

Use FeatureServer to expose your GeoAlchemy data model using OGC Web Feature Service (WFS) protocol. 

Mailing ListPlease direct questions to the Turbogears mailing list. Development related questions / suggestions should be directed to the Turbogears Trunk mailing list</description>
      <homepage_url>http://code.google.com/p/tgtools</homepage_url>
      <download_url></download_url>
      <url_name>tgtools</url_name>
      <user_count>0</user_count>
      <average_rating></average_rating>
      <rating_count>0</rating_count>
      <analysis_id>711168</analysis_id>
      <licenses>
        <license>
          <name>mit</name>
          <nice_name>MIT License</nice_name>
        </license>
      </licenses>
    </project>
    <project>
      <id>146442</id>
      <name>Sprox</name>
      <created_at>2009-01-13T06:10:33Z</created_at>
      <updated_at>2009-12-15T21:52:11Z</updated_at>
      <description></description>
      <homepage_url>http://www.sprox.org</homepage_url>
      <download_url>http://pypi.python.org/pypi/sprox/</download_url>
      <url_name>sprox</url_name>
      <medium_logo_url>http://bits.ohloh.net/attachments/13185/sprox_logo_med.png</medium_logo_url>
      <small_logo_url>http://bits.ohloh.net/attachments/13185/sprox_logo_small.png</small_logo_url>
      <user_count>0</user_count>
      <average_rating></average_rating>
      <rating_count>0</rating_count>
      <analysis_id>792639</analysis_id>
      <licenses>
        <license>
          <name>mit</name>
          <nice_name>MIT License</nice_name>
        </license>
      </licenses>
    </project>
  </result>
</response>
