/
object_paste.cpy
35 lines (31 loc) · 1.11 KB
/
object_paste.cpy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
## Controller Python Script "object_paste"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind state=state
##bind subpath=traverse_subpath
##parameters=
##title=Paste objects into the parent/this folder
##
from Products.CMFPlone.utils import transaction_note
from Products.CMFPlone import PloneMessageFactory as _
from AccessControl import Unauthorized
from ZODB.POSException import ConflictError
msg=_(u'Copy or cut one or more items to paste.')
if context.cb_dataValid:
try:
context.manage_pasteObjects(context.REQUEST['__cp'])
transaction_note('Pasted content to %s' % (context.absolute_url()))
context.plone_utils.addPortalMessage(_(u'Item(s) pasted.'))
return state
except ConflictError:
raise
except ValueError:
msg=_(u'Disallowed to paste item(s).')
except (Unauthorized, 'Unauthorized'):
msg=_(u'Unauthorized to paste item(s).')
except: # fallback
msg=_(u'Paste could not find clipboard content.')
context.plone_utils.addPortalMessage(msg, 'error')
return state.set(status='failure')