[Zope-PTK] Wizards design (continued)
kamon.ayeva@bureauveritas.com
kamon.ayeva@bureauveritas.com
Fri, 31 Mar 2000 10:23:42 +0100
Hi,
On 03/25 Andrew Wilcox <circle@gwi.net> wrote:
>Portal objects could implement Buildable themselves,
[KA] I understand with Andrew M. Kuchling's response that we should take
'Objects' and not specifically 'Portal objects'. Right ?
>or if they didn't want
to deal with issues of being in an incomplete state, a helper class could
implement Buildable on behalf of a portal object.
>A Buildable object would be stored either in the session, or in a private
member's area of the ZODB.
[KA] Can we say 'Wizard-aware object' to use some interesting concepts from
the ZCatalog API ? I see the object having the behavior because it
inherits from a class Wizard-aware.
Then wizards are created like Z Search interfaces, but more complicated due
to wizard requirements.
>[snip implementation explanation]
>So, let's see, the Buildable interface would need to provide for:
* Storing one or more properties at a time
* Reporting on invalid property values in a *standard* way
* Once all the properties had been entered, reporting on
whether the object as a whole is valid
* Instantiating the object in the ZODB
* For when you want to edit an existing object, making a
working copy of the object in either the session
or a user's private "construction yard" area of the ZODB.
[OK] In non-PTK applications, this means that you need to provide the
'user's private area' facility. This may be adding a constraint to
developers... but, Hmm, one may say If you want to have a powerfull site
and you need things like letting people upload large files, then you want
to implement either a complete PTK product or at least the 'user's private
area' facility in the ZODB.
>...hmm, anything else?
>Is Buildable doing a good job fitting into a
model/view/controller(presenter) architecture Jeffrey?
>>>I have not yet understood this design pattern, so...
I don't know if I missed a mail, but I have not seen Jeffrey's answer ?
Kamon
kayeva@hotmail.com