[Zope-dev] manage_pasteObjects and REQUEST
   
    Danny William Adair
     
    danny@adair.net
       
    Wed, 19 Sep 2001 02:11:03 -0400
    
    
  
Hi!
Does anyone know when manage_PasteObjects will stop requiring REQUEST to be passed? I want to mimick the Cut/Copy/Paste Support of the management interface in a UI of my own.
my method "objectsCut" holds:
<dtml-call "manage_cutObjects(REQUEST['ids'], REQUEST)">
while my "objectsPaste" method holds:
<dtml-call "manage_pasteObjects(_.None, REQUEST)">
Pasting objects will sometimes (!?!) redirect me to the management interface, which I want to hide.
I found these last lines in manage_pasteObjects (CopySupport.py):
    def manage_pasteObjects(self, cb_copy_data=None, REQUEST=None):
        """Paste previously copied objects into the current object.
           If calling manage_pasteObjects from python code, pass
           the result of a previous call to manage_cutObjects or
           manage_copyObjects as the first argument."""
    ...
    ...
    ...
            if REQUEST is not None:
                REQUEST['RESPONSE'].setCookie('__cp', 'deleted',
                                    path='%s' % cookie_path(REQUEST),
                                    expires='Wed, 31-Dec-97 23:59:59 GMT')
                REQUEST['__cp'] = None
                return self.manage_main(self, REQUEST, update_menu=1,
                                        cb_dataValid=0)
I don't want to hack this file.
The only way to get the cookie set seems to be passing the REQUEST object.
"...pass the result of a previous call to manage_cutObjects or manage_copyObjects as the first argument"
This doesn't help me very much. It would help me if I wanted to Copy/Paste or Cut/Paste at the same time:
<dtml-call "REQUEST.set('my_clipboard_data', manage_cutObjects(REQUEST['ids'], REQUEST))">
<dtml-call "manage_pasteObjects(my_clipboard_data)">
works fine, but if I want to do Copy and Paste at completely different times, I have to pass my_clipboard_data along the requests all the time.
Is there a simple solution? Is it something I should put in the Bug Collector? Or did I miss something?
Thank you very much for your help,
Danny