From: Benoît Pin <benoit.pin@gmail.com>
Date: Thu, 18 Aug 2011 21:07:34 +0000 (+0200)
Subject: bugfix: la surchage de manage_pasteObjects fait que les objets collés ne sont pas... 
X-Git-Url: https://svn.cri.mines-paristech.fr/git/Plinn.git/commitdiff_plain/31f40c1330738960568a49dac57def289415db5d

bugfix: la surchage de manage_pasteObjects fait que les objets collés ne sont pas indexés. On met ça en stand-by.
---

diff --git a/Folder.py b/Folder.py
index fd7609b..866f630 100644
--- a/Folder.py
+++ b/Folder.py
@@ -277,164 +277,164 @@ class PlinnFolder(CMFCatalogAware, PortalFolder, DefaultDublinCoreImpl) :
 				self, REQUEST, portal_status_message="Folder added")
 
 	
-	## overload to maintain ownership if authenticated user has 'Manage portal' permission
-	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.
-
-		Also sends IObjectCopiedEvent and IObjectClonedEvent
-		or IObjectWillBeMovedEvent and IObjectMovedEvent.
-		"""
-		if cb_copy_data is not None:
-			cp = cb_copy_data
-		elif REQUEST is not None and REQUEST.has_key('__cp'):
-			cp = REQUEST['__cp']
-		else:
-			cp = None
-		if cp is None:
-			raise CopyError, eNoData
-
-		try:
-			op, mdatas = _cb_decode(cp)
-		except:
-			raise CopyError, eInvalid
-
-		oblist = []
-		app = self.getPhysicalRoot()
-		for mdata in mdatas:
-			m = Moniker.loadMoniker(mdata)
-			try:
-				ob = m.bind(app)
-			except ConflictError:
-				raise
-			except:
-				raise CopyError, eNotFound
-			self._verifyObjectPaste(ob, validate_src=op+1)
-			oblist.append(ob)
-
-		result = []
-		if op == 0:
-			# Copy operation
-			mtool = getToolByName(self, 'portal_membership')
-			utool = getToolByName(self, 'portal_url')
-			portal = utool.getPortalObject()
-			userIsPortalManager = mtool.checkPermission(ManagePortal, portal)
-
-			for ob in oblist:
-				orig_id = ob.getId()
-				if not ob.cb_isCopyable():
-					raise CopyError, eNotSupported % escape(orig_id)
-
-				try:
-					ob._notifyOfCopyTo(self, op=0)
-				except ConflictError:
-					raise
-				except:
-					raise CopyError, MessageDialog(
-						title="Copy Error",
-						message=sys.exc_info()[1],
-						action='manage_main')
-
-				id = self._get_id(orig_id)
-				result.append({'id': orig_id, 'new_id': id})
-
-				orig_ob = ob
-				ob = ob._getCopy(self)
-				ob._setId(id)
-				notify(ObjectCopiedEvent(ob, orig_ob))
-				
-				if not userIsPortalManager :
-					self._setObject(id, ob, suppress_events=True)
-				else :
-					self._setObject(id, ob, suppress_events=True, set_owner=0)
-				ob = self._getOb(id)
-				ob.wl_clearLocks()
-
-				ob._postCopy(self, op=0)
-
-				OFS.subscribers.compatibilityCall('manage_afterClone', ob, ob)
-
-				notify(ObjectClonedEvent(ob))
-
-			if REQUEST is not None:
-				return self.manage_main(self, REQUEST, update_menu=1,
-										cb_dataValid=1)
-
-		elif op == 1:
-			# Move operation
-			for ob in oblist:
-				orig_id = ob.getId()
-				if not ob.cb_isMoveable():
-					raise CopyError, eNotSupported % escape(orig_id)
-
-				try:
-					ob._notifyOfCopyTo(self, op=1)
-				except ConflictError:
-					raise
-				except:
-					raise CopyError, MessageDialog(
-						title="Move Error",
-						message=sys.exc_info()[1],
-						action='manage_main')
-
-				if not sanity_check(self, ob):
-					raise CopyError, "This object cannot be pasted into itself"
-
-				orig_container = aq_parent(aq_inner(ob))
-				if aq_base(orig_container) is aq_base(self):
-					id = orig_id
-				else:
-					id = self._get_id(orig_id)
-				result.append({'id': orig_id, 'new_id': id})
-
-				notify(ObjectWillBeMovedEvent(ob, orig_container, orig_id,
-											  self, id))
-
-				# try to make ownership explicit so that it gets carried
-				# along to the new location if needed.
-				ob.manage_changeOwnershipType(explicit=1)
-
-				try:
-					orig_container._delObject(orig_id, suppress_events=True)
-				except TypeError:
-					orig_container._delObject(orig_id)
-					warnings.warn(
-						"%s._delObject without suppress_events is discouraged."
-						% orig_container.__class__.__name__,
-						DeprecationWarning)
-				ob = aq_base(ob)
-				ob._setId(id)
-
-				try:
-					self._setObject(id, ob, set_owner=0, suppress_events=True)
-				except TypeError:
-					self._setObject(id, ob, set_owner=0)
-					warnings.warn(
-						"%s._setObject without suppress_events is discouraged."
-						% self.__class__.__name__, DeprecationWarning)
-				ob = self._getOb(id)
-
-				notify(ObjectMovedEvent(ob, orig_container, orig_id, self, id))
-				notifyContainerModified(orig_container)
-				if aq_base(orig_container) is not aq_base(self):
-					notifyContainerModified(self)
-
-				ob._postCopy(self, op=1)
-				# try to make ownership implicit if possible
-				ob.manage_changeOwnershipType(explicit=0)
-
-			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)
-
-		return result
+#   ## overload to maintain ownership if authenticated user has 'Manage portal' permission
+#   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.
+#
+#   	Also sends IObjectCopiedEvent and IObjectClonedEvent
+#   	or IObjectWillBeMovedEvent and IObjectMovedEvent.
+#   	"""
+#   	if cb_copy_data is not None:
+#   		cp = cb_copy_data
+#   	elif REQUEST is not None and REQUEST.has_key('__cp'):
+#   		cp = REQUEST['__cp']
+#   	else:
+#   		cp = None
+#   	if cp is None:
+#   		raise CopyError, eNoData
+#
+#   	try:
+#   		op, mdatas = _cb_decode(cp)
+#   	except:
+#   		raise CopyError, eInvalid
+#
+#   	oblist = []
+#   	app = self.getPhysicalRoot()
+#   	for mdata in mdatas:
+#   		m = Moniker.loadMoniker(mdata)
+#   		try:
+#   			ob = m.bind(app)
+#   		except ConflictError:
+#   			raise
+#   		except:
+#   			raise CopyError, eNotFound
+#   		self._verifyObjectPaste(ob, validate_src=op+1)
+#   		oblist.append(ob)
+#
+#   	result = []
+#   	if op == 0:
+#   		# Copy operation
+#   		mtool = getToolByName(self, 'portal_membership')
+#   		utool = getToolByName(self, 'portal_url')
+#   		portal = utool.getPortalObject()
+#   		userIsPortalManager = mtool.checkPermission(ManagePortal, portal)
+#
+#   		for ob in oblist:
+#   			orig_id = ob.getId()
+#   			if not ob.cb_isCopyable():
+#   				raise CopyError, eNotSupported % escape(orig_id)
+#
+#   			try:
+#   				ob._notifyOfCopyTo(self, op=0)
+#   			except ConflictError:
+#   				raise
+#   			except:
+#   				raise CopyError, MessageDialog(
+#   					title="Copy Error",
+#   					message=sys.exc_info()[1],
+#   					action='manage_main')
+#
+#   			id = self._get_id(orig_id)
+#   			result.append({'id': orig_id, 'new_id': id})
+#
+#   			orig_ob = ob
+#   			ob = ob._getCopy(self)
+#   			ob._setId(id)
+#   			notify(ObjectCopiedEvent(ob, orig_ob))
+#   			
+#   			if not userIsPortalManager :
+#   				self._setObject(id, ob, suppress_events=True)
+#   			else :
+#   				self._setObject(id, ob, suppress_events=True, set_owner=0)
+#   			ob = self._getOb(id)
+#   			ob.wl_clearLocks()
+#
+#   			ob._postCopy(self, op=0)
+#
+#   			OFS.subscribers.compatibilityCall('manage_afterClone', ob, ob)
+#
+#   			notify(ObjectClonedEvent(ob))
+#
+#   		if REQUEST is not None:
+#   			return self.manage_main(self, REQUEST, update_menu=1,
+#   									cb_dataValid=1)
+#
+#   	elif op == 1:
+#   		# Move operation
+#   		for ob in oblist:
+#   			orig_id = ob.getId()
+#   			if not ob.cb_isMoveable():
+#   				raise CopyError, eNotSupported % escape(orig_id)
+#
+#   			try:
+#   				ob._notifyOfCopyTo(self, op=1)
+#   			except ConflictError:
+#   				raise
+#   			except:
+#   				raise CopyError, MessageDialog(
+#   					title="Move Error",
+#   					message=sys.exc_info()[1],
+#   					action='manage_main')
+#
+#   			if not sanity_check(self, ob):
+#   				raise CopyError, "This object cannot be pasted into itself"
+#
+#   			orig_container = aq_parent(aq_inner(ob))
+#   			if aq_base(orig_container) is aq_base(self):
+#   				id = orig_id
+#   			else:
+#   				id = self._get_id(orig_id)
+#   			result.append({'id': orig_id, 'new_id': id})
+#
+#   			notify(ObjectWillBeMovedEvent(ob, orig_container, orig_id,
+#   										  self, id))
+#
+#   			# try to make ownership explicit so that it gets carried
+#   			# along to the new location if needed.
+#   			ob.manage_changeOwnershipType(explicit=1)
+#
+#   			try:
+#   				orig_container._delObject(orig_id, suppress_events=True)
+#   			except TypeError:
+#   				orig_container._delObject(orig_id)
+#   				warnings.warn(
+#   					"%s._delObject without suppress_events is discouraged."
+#   					% orig_container.__class__.__name__,
+#   					DeprecationWarning)
+#   			ob = aq_base(ob)
+#   			ob._setId(id)
+#
+#   			try:
+#   				self._setObject(id, ob, set_owner=0, suppress_events=True)
+#   			except TypeError:
+#   				self._setObject(id, ob, set_owner=0)
+#   				warnings.warn(
+#   					"%s._setObject without suppress_events is discouraged."
+#   					% self.__class__.__name__, DeprecationWarning)
+#   			ob = self._getOb(id)
+#
+#   			notify(ObjectMovedEvent(ob, orig_container, orig_id, self, id))
+#   			notifyContainerModified(orig_container)
+#   			if aq_base(orig_container) is not aq_base(self):
+#   				notifyContainerModified(self)
+#
+#   			ob._postCopy(self, op=1)
+#   			# try to make ownership implicit if possible
+#   			ob.manage_changeOwnershipType(explicit=0)
+#
+#   		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)
+#
+#   	return result
 
 		
 InitializeClass(PlinnFolder)