Changeset 1031
- Timestamp:
- 12/25/07 03:36:04
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
qPloneSkinDump/branches/plone_3.0/skin_template/fixes.py
r1025 r1031 1 1 from Products.CMFCore.utils import getToolByName 2 2 from Products.ZCatalog.ProgressHandler import ZLogHandler 3 from plone.app.linkintegrity.handlers import referencedRelationship as li_relation 3 4 4 5 portal_catalog = None 5 6 portal_repository = None 7 uid_catalog = None 8 reference_catalog = None 6 9 7 10 def fix_archivest(ob): … … 15 18 ob.reindexObject() 16 19 20 def fix_linkintegrity(ob): 21 """Fix losed references.""" 22 ob_li_refs = reference_catalog.getReferences(ob, relationship=li_relation) 23 if ob_li_refs: 24 annotations = ob._getReferenceAnnotations() 25 uniqueUIDs = uid_catalog.uniqueValuesFor('UID') 26 # delete references to non-existent objects 27 [annotations._delObject(ref.id) for ref in ob_li_refs \ 28 if not ref.targetUID in uniqueUIDs] 29 17 30 def fix_all(ob): 18 31 """ Recursive function for perform registered … … 24 37 [fix_all(o) for o in ob.objectValues()] 25 38 26 perobject_actions = [fix_archivest, fix_catalog ]39 perobject_actions = [fix_archivest, fix_catalog, fix_linkintegrity] 27 40 28 41 def fix(context): … … 30 43 imported objects - absence in catalogs, some other issues''' 31 44 global portal_repository, portal_catalog 45 global uid_catalog, reference_catalog 32 46 portal_catalog = getToolByName(context,'portal_catalog') 33 47 portal_repository = getToolByName(context,'portal_repository') 48 uid_catalog = getToolByName(context,'uid_catalog') 49 reference_catalog = getToolByName(context,'reference_catalog') 34 50 35 51 fix_all(context) 52
