Warning: Can't synchronize with repository "(default)" (Unsupported version control system "svn": No module named svn). Look in the Trac log for more information.

Changes between Version 2 and Version 3 of SimpleAdminIdeas


Ignore:
Timestamp:
10/18/05 00:18:50 (14 years ago)
Author:
kevin
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SimpleAdminIdeas

    v2 v3  
    77Before diving in to details and comparisons of existing technology and ideas, let's review what we specifically want to accomplish for TurboGears quickstart applications: 
    88 
    9 1. A means to create simple database update forms nearly "for free" 
    10 2. These forms should allow for both client-side and server-side validation easily 
    11 3. A means to create the controller to receive that form input nearly "for free" 
    12 4. A smooth migration path from the automatically generated forms to something that is tailored for the application at hand 
    13 5. A smooth migration path for the controller's behavior as needs change 
     9 1. A means to create simple database update forms nearly "for free" 
     10 2. These forms should allow for both client-side and server-side validation easily 
     11 3. A means to create the controller to receive that form input nearly "for free" 
     12 4. A smooth migration path from the automatically generated forms to something that is tailored for the application at hand 
     13 5. A smooth migration path for the controller's behavior as needs change 
    1414 
    15 Right now, this document is focused on the '''view layer''', which means specifically #1, #2 and #4. The controller layer will likely be considerably less complex. 
     15Right now, this document is focused on the '''view layer''', which means specifically nos. 1, 2 and 4. The controller layer will likely be considerably less complex. 
    1616 
    1717The first pass does ''not'' need to take into account one-to-many and many-to-many relationships (item/detail style forms). Or, rather, the first version does not need to create such forms automatically. It does need to be possible for the developer to create such forms, though. 
     
    2121This follows the general TurboGears philosophy, but it's worth repeating. 
    2222 
    23 1. Don't write code for the sake of writing code. If there's an existing package with a good license that can be adapted for TurboGears, we should do that. 
    24 2. Unit tests are critical 
    25 3. If it's not documented, it doesn't exist. 
     23 1. Don't write code for the sake of writing code. If there's an existing package with a good license that can be adapted for TurboGears, we should do that. 
     24 2. Unit tests are critical 
     25 3. If it's not documented, it doesn't exist. 
    2626 
    27 I (Kevin) realize that many people don't like #3. That's fine. If you write the code, I'd be happy to help with #3. 
     27I (Kevin) realize that many people don't like no. 3. That's fine. If you write the code, I'd be happy to help with no. 3. 
    2828 
    29 #2 should really be done along with the code. If you're not sure about how to write a test for something, send a message to the list and there will definitely be help available. 
     29No. 2 should really be done along with the code. If you're not sure about how to write a test for something, send a message to the list and there will definitely be help available. 
    3030 
    3131== Prior Art == 
     
    3737Good APIs cannot be designed in a vacuum: they need to make real applications easier, not theoretical ones. Since we're starting off simple, let's consider an Address Book application. 
    3838 
    39 ``` 
     39{{{ 
    4040class Category(SQLObject): 
    4141    name = StringCol(length=50) 
     
    5050    age = IntCol() 
    5151    category = ForeignKey('Category') 
    52 ``` 
     52}}} 
    5353 
    5454Ignoring the several obvious problems with this example, it should still function as a reasonable application for simple CRUD.