[ZDP] ZDPTool Prototype Implementation - Part 2

Maik Roeder roeder@berg.net
Sat, 25 Dec 1999 20:57:43 +0100


Hi !


In this step, we create our own Document Type Definition for
the Project, and make a listing of the Phases of a Project
using just and only simple Catalog searches. 


Greetings,

Maik Röder


Steps to the ZDP-Tools Homepage

   Before we can make use of the ZDPTools for a big project like ZDP,
   I am building a prototype site using the ZDPTools. To show how
   extensible the ZDPTool design is, I am going to manage the ZDPTool
   documentation using the ZDPTools while they are being written ;-)

ZDPTools Prototype - Part 1

   In this part, I gave a step by step description of how to integrate a
   listing of all projects and members into the main page.

ZDPTools Prototype - Part 2

   Now that we have a ZDPTools Project in the home folder, we want to
   manage the documents relating to the ZDPProject inside this folder.
   The project is organized in the a process similar to the Rational
   Unified Process (RUP), which Stefan Richter modified for the Open
   Source community by trying to create more democratic ways of accomplishing
   tasks and making decisions, taking into account the geographically
   dispersed community of developers. 

   If we find that this is not the way we want to manage projects in the
   ZDP project, then we can still define a ZDPProject and rename our Project
   type to something like OSPProject, which would then stand for Open Source
   Process Project.
   
   So, inside the ZDPTools Folder, which is of type Project (at least for
   now), we create the following DocumentFolders of type Phase:

      Enter Folder ZDPTools:

         Add a DocumentFolder "ZDPToolsInception" of type InceptionPhase
         Add a DocumentFolder "ZDPToolsElaboration" of type ElaborationPhase
         Add a DocumentFolder "ZDPToolsConstruction" of type ConstructionPhase
         Add a DocumentFolder "ZDPToolsTransition" of type TransitionPhase
      
   Let's check to see what changes must be made to the different homepages:

      1. ZDP homepage:

         It is enough to have ZDPTools project listed, we don't want to
         list the Phases of the Project here.

      2. ZDPTools homepage:

         This is the right place to list our new Phases, because the
         ZDPTools Folder is of type Project. To use the same search 
         procedure as before, we have to provide a Parent Project, to 
         which the Phase belongs:

            Add a property "Parent" with the value "ZDPProject" to the
            the DocumentFolders: 
           
               ZDPToolsInception
               ZDPToolsElaboration
               ZDPToolsConstruction
               ZDPToolsTransition
           
         Add the following code to the index_html code of the ZDPTools Folder:

            <H1>Inception Phase</H1>
            <dtml-call "REQUEST.set('WhatType','InceptionPhase')">
            <dtml-call "REQUEST.set('WhatParent','ZDPTools')">
            <dtml-var WhatTypeWhatParentNeedsReaders>
            <H1>Elaboration Phase</H1>
            <dtml-call "REQUEST.set('WhatType','ElaborationPhase')">
            <dtml-call "REQUEST.set('WhatParent','ZDPTools')">
            <dtml-var WhatTypeWhatParentNeedsReaders>
            <H1>Construction Phase</H1>
            <dtml-call "REQUEST.set('WhatType','ConstructionPhase')">
            <dtml-call "REQUEST.set('WhatParent','ZDPTools')">
            <dtml-var WhatTypeWhatParentNeedsReaders>
            <H1>Transition Phase</H1>
            <dtml-call "REQUEST.set('WhatType','TransitionPhase')">
            <dtml-call "REQUEST.set('WhatParent','ZDPTools')">
            <dtml-var WhatTypeWhatParentNeedsReaders>

         This is the new and refined search procedure called 
         "WhatTypeWhatParentNeedsReaders":

            <dtml-comment>
            Set the type of documentfolder you are searching for with:
            <dtml-call "REQUEST.set('WhatType','Project')">
            <dtml-call "REQUEST.set('WhatParent','ZDPTools')">
            </dtml-comment>
 
            <dtml-in "Catalog({'meta_type': 'DocumentFolder',
                               'type': WhatType,
                               'parent': WhatParent,
                               'NeedsReaders': 1 })">
               <dtml-if sequence-start>
               <ul>
               </dtml-if>          
               <dtml-if "type==WhatType">
                 <li>         
                 <a href="<dtml-var "Catalog.getpath(data_record_id_)">">
                   <dtml-var id>
                 </a>
                 </li>
               </dtml-if>
               <dtml-if sequence-end>
               </ul>
               </dtml-if>          
            </dtml-in>

      3. Homepages inside the different Phases:

         I leave it up to the reader to create the following tasks in the 
         different phases, and create the homepages for each of them.
         Suffice it to say that not all of these Phases and Tasks need
         to be done from the beginning. It does not matter if the search
         does not find a Phase or a Task, because then it is just omitted.
         Certainly the creation of the folders could be left to a service
         which knows the Document Type Definition.

         Inception Phase:

            Requirements
            Identify Active Members
            Create a Process/Task List
            High Level Use Cases
            High Level Design
            Project Team Roles and Responsibilities
            Identify Risks
            Identify Milestones
            Community Agreement

         Elaboration Phase:

            Construction Phase

         Transition Phase:

            Enter Content

Have fun !

Maik Röder

<roeder@berg.net>