[Zope3-Users] A gentle push in the right direction needed

2006-07-19 Thread Tim Penhey
Hi all,

I have an application that is written with Struts (Java servlet and JSP) with 
a postgresql database which I am attempting to rewrite with zope 3.

Having read over half of Web Component Development with Zope 3 I thought it 
was high time to get started.  However I seem to have hit my first snag.

In the java app I have a customer class which has a postal address, and a list 
of delivery addresses.

So I started with:

from zope.interface import Interface
from zope.schema import TextLine

class IAddress(Interface):
Address details

line1 = TextLine(
title=uLine 1,
description=uThe first line of the address,
required=True
)
line2 = TextLine(
title=uLine 2,
description=uThe second line of the address,
required=False 
)
city = TextLine(
title=uCity,
description=uThe city,
required=False
)
county = TextLine(
title=uCounty,
description=uCounty for the address,
required=False
)

postcode = TextLine(
title=uPostcode,
description=uPostcode of the address,
required=False
)

Then...

from zope.interface import Interface
from zope.schema import Bool, Float, Text, TextLine, Int, InterfaceField

class ICustomer(Interface):
Information about our customers

id = Int(
title=uID,
description=uThe customer's unique id,
required=True,
min=1
)

name = TextLine(
title=uName,
description=uThe name of the customer,
required=True
)

postal_address = InterfaceField(
title=uPostal Address
)

Now it is with the postal_address I hit my first snag.  I really want to say 
that it is an IAddress.  Am I using InterfaceField correctly here?  Is there 
an option to specify the type of the interface?

Also how do I specify a list of addresses?

Thanks.
Tim
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: [Zope3-Users] A gentle push in the right direction needed

2006-07-19 Thread Darryl Cousins
Hi Tim,

My solution was to use an address container to act as the
'addressbook'. An adapter is used to attach (using annotations) the
addressbook to any object which implements IHaveAddressInfo.

Doctest: http://www.tfws.org.nz/tfws.portal.address.README.html
Code:
http://projects.treefernwebservices.co.nz/tfws.org.nz/browser/trunk/src/tfws/portal/address/

On Wed, 2006-07-19 at 21:22 +0100, Tim Penhey wrote:

...

 Now it is with the postal_address I hit my first snag.  I really want
 to say 
 that it is an IAddress.  Am I using InterfaceField correctly here?  Is
 there 
 an option to specify the type of the interface?
 
 Also how do I specify a list of addresses?
 
 Thanks.
 Tim 

___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: [Zope3-Users] A gentle push in the right direction needed

2006-07-19 Thread Tim Penhey
On Wednesday 19 July 2006 22:03, Darryl Cousins wrote:
 Hi Tim,

 My solution was to use an address container to act as the
 'addressbook'. An adapter is used to attach (using annotations) the
 addressbook to any object which implements IHaveAddressInfo.

An interesting idea.

 Doctest: http://www.tfws.org.nz/tfws.portal.address.README.html
 Code:
 http://projects.treefernwebservices.co.nz/tfws.org.nz/browser/trunk/src/tfw
s/portal/address/

Thanks for the reference.  Reading real life code really helps understand 
sometimes.

Cheers,
Tim
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users