> > I will upload the documents tomorrow though, since it is late here and
> > I have to do some work still.
>Ok.  I'll begin thinking about all the stuff I dreamt of making mk-zprod

Okay, okay...I stayed up and typed it down pretty quick (2 hours). I 
attached it to this mail. It is plain text, since I was too lazy to do it 
in HTML. It might be a little unstructured, but I am too tired to fix that now.


Stephan Richter
CBU - Physics and Chemistry Student
Web2k - Web Design/Development & Technical Project Management
SmartWizards - A framework to generate the Every-Day-Wizard
by Stephan Richter in June 2001

Version 0.1

The following parts of a *default* WizardPage are defined:

|             |                                                      |
|    Logo     |           Header and Long Description                |
|             |                                                      |
|             |                                                      |
|  Wizard     |                    Wizard                            |
|             |                                                      |
|  Overview   |                     Main                             |
|             |                                                      |
|             |                    Window                            |
|             |                                                      |
|             |                                                      |
|             |                                                      |
|             |                                                      |
|             |                                                      |
|                      Status Messages                               |
|              Navigation Bar (buttons to move)                      |

Therefore there are the following standard methods defined in a wizard:

wizardHeader                        wizardStatus
wizardFooter                        wizardNavigationBar
wizardOverview                      wizardMainWindow

Functionalities of these methods:

  - should display a list of all pages (display short description/title)
  - needs to know about the active page to highlight it

  Default Output: A numbered list of all the pages with the active one 

  - shows the 'long' description of the active page
  - there might be also a static part, depending on the application

  - status messages/information
      o Errors by form validation
      o administrative messages (required fields, ...)
      o wizard information (page x out of y)

  - there should be only buttons here!
  - maybe we should define where the buttons are, since grouping some
    of them will be necessary

  - here goes the real page information
  - there can be: forms, other actions, information and everything mixed


SmartWizard --> Folder
  - we are going to use Sessions (CoreSessionTracking) and Versions to keep track of 
    user's status.
  - Since it will be too hard to give all information first and then commit everything 
    at the end, we decided to use versions, which we can always not commit, if a roll-
    back is requested.
  - All the other info is saved in the session, since several people at once could use
    the wizard at once.
  - Also, we will keep track of the active page by simply storing the index of the 
    inside the Pages folder; since it is an OrderedFolder we can do this safely.

  - methods: wizardHeader 
             wizardSession - Contains all the session data information
                             Object is of type SessionDataManager.       
             Versions  - Folder that contains versions of the people which use the 
                         Object is of type Folder.
             Pages     - The container of all the WizardPages that being displayed 
                         the Wizard.
                         Object is of type OrderedFolder (see Zope.org).

  - attributes: activePageIndex - specific value is stored in the session (because of 
                                  multiple users)
                wizardWidth - Width of the Wizard Window in the browser.
                wizardHeight - Same for height.

WizardPage --> OrderedFolder
  - WizardPages are the objects that are responsible for one Wizard Page/Screen. 
  - methods: shortDescription
             ActionButtons - Contains all the ActionButton instances for the navigation
                             bar. I am still thinking about the grouping.

ActionButton --> SimpleItem, PropertyManager
  - Simple class to represent an action object
  - Later this should maybe support graphical submits as well.
  - methods: render - return the information of the class in a valid HTML input tag
  - attributes: title - Text that is displayed on the button
                action - the method to call, when the button is pressed.

WizardPageTemplates --> WizardPage
  o FormPageTemplate - contains a Formulator Form and automatically knows how to render
                       it. This is easy, since I have done that before.
  o SectionPageTemplate - This will contain a SmartSection instance. SmartSections are 
                          a way for the non-programmer to quickly create Web-Sites. The
                          initial development is not yet done, but will be completed 
  o TreePageTemplate - Select an object or other value from an OFS Tree. 

  - These templates only have a factory (meaning a constructorForm, constructor) and 
    class, since they are only making some adjustments to the WizardPage, but do not 
    enhance its functionality.

  - The framework is very flexible, since all the methods are prefilled, but can be 
  - All the Use Cases I came up with can be implemented using this framework.
  - I think that the product has a potential for all the applications that have to get
    a lot of info from the non-technical user. Some projects I think that could profit 
    are Squishdot, proiektor, kontentor, ZopeGUM, mk-prod and many others.
  - The proiektor installer provides a nice prototype of how generated Wizards should 
    look and behave like. 

  - Classes are created with inital attributes and methods.
  - HTML code for the Wizard
  - Initial Setup for all the Wizard methods

  - Create versions and sessions for the user.
  - Fill-in basic actions and functionality.
  - Implementation of WizardPageTemplates
  - A nice Wizard CSS (since this product is for the end user)
  - A cute SmartWizard Logo ;)
  - ...

  - None so far. The project is fairky easily to have an overview over.

If you are interested in co-developing this new Product with iuveno AG, please
contact Stephan Richter at [EMAIL PROTECTED] I will be happy to send you
the current code.

Reply via email to