--- /dev/null
+##parameters=items, **kw
+##title=Rename objects in a folder
+##
+from Products.CMFDefault.exceptions import CopyError
+from Products.Plinn.utils import translate
+_ = lambda msg : translate(msg, context)
+
+ids, new_ids = zip(*[(i['id'], i['new_id']) for i in items])
+changed = 0
+
+c = context.aq_explicit
+for itemInfo in items :
+ item = getattr(c, itemInfo['id'])
+ if item.Title() != itemInfo['title'] :
+ item.setTitle(itemInfo['title'])
+ item.reindexObject()
+ changed = changed + 1
+
+if not ids == new_ids:
+ try:
+ skiped = context.manage_renameObjects(ids, new_ids)
+ if not skiped :
+ if len(ids) == 1:
+ return context.setStatus(True, _(u'Item renamed.'))
+ else:
+ return context.setStatus(True, _(u'Items renamed.'))
+ else :
+ if len(skiped) == 1 :
+ return context.setStatus(True, _( u'This item has not been renamed: "%s"') % ids[0] )
+ else :
+ return context.setStatus(True
+ , _( u'These items have not been renamed: %s') % \
+ ', '.join(['"%s"' % id for id in ids]) )
+ except CopyError:
+ return context.setStatus(False, _(u'Rename failed.'))
+
+
+elif not changed :
+ return context.setStatus(False, _(u'Nothing to change.'))
+else :
+ if changed == 1:
+ return context.setStatus(True, _(u'Item renamed.'))
+ else:
+ return context.setStatus(True, _(u'Items renamed.'))
+
\ No newline at end of file