Changeset 2368 in products for quintagroup.canonicalpath/trunk/quintagroup/canonicalpath/upgrades.py
- Timestamp:
- May 21, 2010 10:29:10 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
quintagroup.canonicalpath/trunk/quintagroup/canonicalpath/upgrades.py
r2365 r2368 1 import sys 2 from types import StringTypes 1 3 from logging import NOTSET, DEBUG, INFO, ERROR 2 4 from logging import Logger, StreamHandler, Formatter 3 5 from StringIO import StringIO 4 6 from zope.component import getAdapter 5 #from zope.component import queryMultiAdapter6 7 from Acquisition import aq_base, aq_inner 7 #from Products.CMFCore.utils import getToolByName8 8 9 #from quintagroup.canonicalpath.adapters import PROPERTY_LINK10 #from quintagroup.canonicalpath.adapters import PROPERTY_PATH11 9 from quintagroup.canonicalpath.interfaces import ICanonicalPath 12 10 from quintagroup.canonicalpath.interfaces import ICanonicalLink 11 from quintagroup.canonicalpath.adapters import PROPERTY_LINK 12 from quintagroup.canonicalpath.adapters import PROPERTY_PATH 13 from quintagroup.canonicalpath.adapters import DefaultPropertyAdapter 13 14 14 15 class CanonicalConvertor(object): … … 31 32 self._inout = StringIO() 32 33 33 def convert LinkToPath(self, obj):34 def convertILinkToPath(self, obj): 34 35 """Convert canonical link to canonical path""" 35 36 return self._convert(obj, ICanonicalLink, ICanonicalPath, 36 37 self._convertL2P) 37 38 38 def convert PathToLink(self, obj):39 def convertIPathToLink(self, obj): 39 40 """Convert canonical path to canonical link""" 40 41 return self._convert(obj, ICanonicalPath, ICanonicalLink, 42 self._convertP2L) 43 44 def convertPLinkToPath(self, obj, prop=PROPERTY_LINK): 45 """Convert canonical link, got from the *prop* parameter 46 to canonical path. 47 """ 48 return self._convert(obj, prop, ICanonicalPath, 49 self._convertL2P) 50 51 def convertPPathToLink(self, obj, prop=PROPERTY_PATH): 52 """Convert canonical path, got from the *prop* parameter 53 to canonical link. 54 """ 55 return self._convert(obj, prop, ICanonicalLink, 41 56 self._convertP2L) 42 57 … … 48 63 Log results in logger. 49 64 """ 65 src_msg = type(src_iface) in StringTypes and src_iface or src_iface.__name__ 50 66 msg = "Migrate %s into %s for %s object: " \ 51 % (src_ iface.__name__, dst_iface.__name__, obj.absolute_url())67 % (src_msg, dst_iface.__name__, obj.absolute_url()) 52 68 try: 53 src = getAdapter(obj, src_iface)69 src = _getOrMakeAdapter(obj, src_iface) 54 70 dst = getAdapter(obj, dst_iface) 55 71 # XXX: Check is this correct work XXX … … 69 85 return lev == INFO and True or False 70 86 87 def _getOrMakeAdapter(self, obj, arg): 88 """Function return adapter for process of the property. 89 Adapter get by interface (if arg is not a string - interface assumed) 90 OR if arg is string - adapter created from DefaultCanonicalAdapter. 91 """ 92 if type(arg) in StringTypes: 93 adapter = DefaultPropertyAdapter(obj) 94 adapater.prop = arg 95 return adapter 96 else: 97 return getAdapter(obj, arg) 98 71 99 def _convertP2L(self, src, dst): 72 100 """Convert canonical path to canonical link.""" 73 cpath = src. canonical_path101 cpath = src.getProp() 74 102 cpath = cpath.startswith('/') and cpath or '/' + cpath 75 103 dst.canonical_link = self.portal_url + cpath 76 del src.canonical_path104 src.delProp() 77 105 78 106 def _convertL2P(self, src, dst):
Note: See TracChangeset
for help on using the changeset viewer.