[Zope-dev] Why is ZEvent not ZClass subclassable?

Loren Stafford lstaffor@dynalogic.com
Tue, 7 Mar 2000 08:58:57 -0800


I still haven't found an answer to this question. Anyone have any idea why
or how to figure out?

Below is the code that defines the ZEvent class (minus some of its methods)


> I want the ZEvent class of ZScheduler to be subclassable by ZClasses. I
> think I did everything specified in
>
> http://www.zope.org/Documentation/Guides/ZDG-HTML/ZDG.6.3.11.html
>
> to make a subclassable class (i.e. registered it with
registerBaseClass()).
> However when I tried to make a ZClass, ZEvent was not in the list of base
> classes. What else do I need to do?
>
> -- Thanks
> -- Loren
>

class BaseZEvent(CatalogAware, DTMLMethod):
  meta_type = 'ZEvent'
  default_catalog = ScheduleID

  def __init__(self, id, title = '', file = ''):
    DTMLMethod.__init__(self, file, __name__ = id)

  manage_options=({'label':'Edit', 'action':'manage_main'},
                  {'label':'Upload', 'action':'manage_uploadForm'},
                  {'label':'View', 'action':''},
                  {'label':'Proxy', 'action':'manage_proxyForm'},
                  {'label':'Security', 'action':'manage_access'},
                 )
  __ac_permissions__=(
    ('View management screens', (
        'manage_editForm', 'manage', 'manage_main', 'manage_uploadForm',
        'document_src', 'PrincipiaSearchSource')),
    ('Change DTML Methods', ('manage_edit', 'manage_upload', 'PUT')),
    ('Change proxy roles', ('manage_proxyForm', 'manage_proxy')),
    ('View', ('__call__', '')),
    ('FTP access', ('manage_FTPstat','manage_FTPget','manage_FTPlist')),
  )

  manage_editForm=HTMLFile('documentEdit', globals())
  manage=manage_main=manage_editDocument=manage_editForm

class OneTimeZEvent(BaseZEvent):
  #meta_type = 'Onetime ZEvent'

default__class_init__(OneTimeZEvent)

# code that registers above class
      context.registerClass(
        ZEvent.OneTimeZEvent,
        permission = 'Add ZEvent',
        constructors = (
          ZEvent.manage_addOneTimeZEventForm,
          ZEvent.manage_addOneTimeZEvent),
        icon = 'www/OneTimeZEvent.gif')