All pastes #505201 Raw Copy code Copy link Edit

Untitled

public text v1 · immutable
#505201 ·published 2007-05-23 13:39 UTC
rendered paste body
ship/computer/browser/computer.py: 

  1 from zope.publisher.browser import BrowserPage
  2 from zope.app.pagetemplate import ViewPageTemplateFile
  3 from zope.formlib.namedtemplate import NamedTemplate,NamedTemplateImplementation
  4 from zope.formlib.form import EditForm, Fields, AddForm, applyChanges
  5 from zope.component import createObject
  6 from ship.computer.interfaces import IComputer

...

 12 class ComputerEditForm(EditForm):
 13     """Basic EditForm for Editing Existing Computer Objects"""
 14     form_fields = Fields(IComputer)
 15     label = u"Edit Computer"
 16
 17 class ComputerAddForm(AddForm):
 18     """Basic AddForm for adding new Computer Objects with user specified data"""
 19     form_fields = Fields(IComputer)
 20     label = u"Add Computer"
 21
 22     template = NamedTemplate('computer.form')
 23
 24     def create(self, data):
 25         computer = createObject(u"ship.Computer")
 26         applyChanges(computer, self.form_fields, data)
 27         return computer
 28
 29 form_template = NamedTemplateImplementation(
 30         ViewPageTemplateFile('templates/compForm.pt'))


ship/computer/browser/configure.zcml:

...

  5     <!--Adapters and Security Declarations-->
  6     <zope:adapter
  7         factory=".computer.form_template"
  8         for=".computer.ComputerAddForm"
  9         name="computer.addform"
 10         />

...

 21     <page
 22         for="ship.computer.interfaces.IComputer"
 23         name="CompEdit.html"
 24         class="ship.computer.browser.computer.ComputerEditForm"
 25         permission="zope.ManageContent"
 26         menu="zmi_views" title="Edit"
 27         />
 28
 29      <!--Menu Entry-->
 30     <addMenuItem
 31         title="SHIP Computer"
 32         factory="ship.Computer"
 33         view="ship.Computer"
 34         permission="zope.ManageContent"
 35         />
 36
 37     <page
 38         for="zope.app.container.interfaces.IAdding"
 39         name="ship.Computer"
 40         class=".computer.ComputerAddForm"
 41         permission="zope.ManageContent"
 42         />

...