
from formless.annotate import *
from formless import webform
from nevow.tags import *
from nevow import rend, loaders

class IPerson(TypedInterface):
    class ContactInfo(TypedInterface):
        name = String()
        address = Text()
        phone = String()


class Person(object):
    __implements__ = IPerson,


class PersonPage(rend.Page):
    docFactory = loaders.stan(html[ webform.renderForms() ])


## Startup glue
from nevow import appserver
from twisted.application import service
from twisted.application import internet

application = service.Application('person-editor')
internet.TCPServer(8080, appserver.NevowSite(PersonPage(Person()))).setServiceParent(application)

