[Zope] I think I'm close, but still no luck

Daniel Rusch drusch@globalcrossing.com
Thu, 24 Aug 2000 09:40:15 -0500


Hello,

(See bottom of this message for all the iterations I have tried)

I've created a product called BasicDocument. I've installed it and it
works great. 

I've also created a folderish product (called SimpleSite). When a user
selects
the SimpleSite product from the available objects list, thus creating an
instance of that product, 
they have an option to create sub folders which contain objects like
dtml documents, dtml
methods, and my BasicDocument product (very similar to what happens when
you instantiate a folder object, you
can have a dtml method created in the new folder). 
  
I am able to have the manage_addSimpleSite function create
DTMLDocument, DTMLMethod and Folder objects but I am unable to
have the function create BasicDocuments (which live in the Products
directory) additionally, I am unable to it create any Products from
the Products directory, such as Local File System????? 
  
 The code below works great, I get a dtml document, two folders each
with a dtml method in them.... 
  

 HOW CAN I CREATE A BascicDocument, LOCAL FILE SYSTEM OR ANY OTHER
OBJECT FROM THE 
 PRODUCTS DIRECTORY IN THIS MANAGE_ADD FUNCTION??????? 


Thanks, 

Dan 
  
 def manage_addSimpleSite(self, id, title='', 
                      createNewFolder=0, 
                      createEditFolder=0, 
                      REQUEST=None): 
     """Add a new SimpleSite object with id *id*. 
  
     If the 'createNewFolder' and 'createEditFolder' parameters are set 
 to any true 
     value, an 'New sub Folder' and an 'edit sub Folder' objects are 
 created respectively 
     in the new SimpleSite. 
     """ 
     ob=SimpleSite() 
     ob.id=id 
     ob.title=title 
     self._setObject(id, ob)     
     try: user=REQUEST['AUTHENTICATED_USER'] 
     except: user=None 
     #ob.manage_addBasicDocument(id='index_html', title='')<-- This line
generates: AttributeError: manage_addBasicDocument 
     ob.manage_addDTMLDocument(id='index_html', title='') 
     if createNewFolder: 
         if (user is not None) and not ( 
             user.has_permission('Add User SimpleSites', self)): 
             raise 'Unauthorized', ( 
                   'You are not authorized to add User SimpleSites.' 
                   ) 
         ob.manage_addFolder(id='New'+id, title='', createPublic=1) 
     if createEditFolder: 
         if (user is not None) and not ( 
             user.has_permission('Add Documents, Images, and Files', 
 self)): 
             raise 'Unauthorized', ( 
                   'You are not authorized to add DTML Documents.' 
                   ) 
         ob.manage_addFolder(id='Edit'+id, title='', createPublic=1) 
     if REQUEST is not None: 
         return self.manage_main(self, REQUEST, update_menu=1


I have tried the following each generated an error:

1. ob.manage_addBasicDocument(id='index_html', title='')  
AttributeError: manage_addBasicDocument 
2.
ob.manage_addProduct['SimpleSite'].manage_addBasicDocument(id='index_html',
title='')  AttributeError: _getProducts
3.
self.manage_addProduct['SimpleSite'].manage_addBasicDocument(id='index_html',
title='')AttributeError:manage_addBasicDocument
4.
self.manage_addProduct['BasicDocument'].manage_addBasicDocument(id='index_html',
title='') TypeError: not enough arguments; expected 2, got 0
5.
ob.manage_addProduct['BasicDocument'].manage_addBasicDocument(id='index_html',
title='')AttributeError: _getProducts