Skip to content

Instantly share code, notes, and snippets.

@maethu
Created June 24, 2014 12:35
Show Gist options
  • Save maethu/d97e027213402fdf0dc5 to your computer and use it in GitHub Desktop.
Save maethu/d97e027213402fdf0dc5 to your computer and use it in GitHub Desktop.
from AccessControl.SecurityManagement import newSecurityManager
from Acquisition import aq_inner
from Acquisition import aq_parent
from Products.CMFCore.utils import getToolByName
from Testing.makerequest import makerequest
from zope.component.hooks import setSite
import transaction
app = globals()['app']
# we need to get a super user security and a request
user = app.acl_users.getUser('zopemaster')
user = user.__of__(app.acl_users)
newSecurityManager(app, user)
app = makerequest(app)
globals()['app'] = app
# register the site
globals()['platform'] = path.to.plone
setSite(platform)
from simplelayout.base.interfaces import IOneColumn
from simplelayout.base.interfaces import ISlotA
from simplelayout.base.interfaces import ISimpleLayoutCapable
from zope.interface import alsoProvides
def fix(obj):
if not ISimpleLayoutCapable.providedBy(obj.aq_parent):
return
if not ISlotA.providedBy(obj):
alsoProvides(obj, ISlotA)
if not IOneColumn.providedBy(obj):
alsoProvides(obj, IOneColumn)
obj.reindexObject(idxs=['object_provides'])
print "Fixed Image at: %s" % '/'.join(obj.getPhysicalPath())
query = {'portal_type': ['Image']}
for brain in platform.portal_catalog(query):
obj = brain.getObject()
fix(obj)
print "COMITTING"
transaction.commit()
print "COMITTED"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment