[zopeorg-checkins] CVS: Products/ZopeOrg-NV/Extensions - NZOMigrate.py:1.9
Sidnei da Silva
sidnei at x3ng.com.br
Mon Jan 27 13:25:04 EST 2003
Update of /cvs-zopeorg/Products/ZopeOrg-NV/Extensions
In directory cvs.zope.org:/tmp/cvs-serv12380/Extensions
Modified Files:
NZOMigrate.py
Log Message:
Improving ZSP. Adding Migration. Small CSS Cleanup
=== Products/ZopeOrg-NV/Extensions/NZOMigrate.py 1.8 => 1.9 ===
alist = dict.keys()
alist.sort()
return alist
-
+
+def migrateZSP(root, obj):
+ entries = obj[0].objectValues('ENTRY')
+ for entry in entries:
+ id = getattr(entry, 'LOGO', entry.getId())
+ if hasattr(aq_base(root), id):
+ logo_id = '%s_logo' % id
+ root.manage_renameObject(id=id, new_id=logo_id)
+ root.invokeFactory(id=id, type_name='Zope Service Provider')
+ new_obj = getattr(root, id, None)
+ if new_obj is None:
+ return
+ new_obj.setCompany(getattr(entry, 'COMPANY', ''))
+ new_obj.setSummary('')
+ new_obj.setExternalURL(getattr(entry, 'URL', ''))
+ new_obj.setLocation(getattr(entry, 'LOCATION', ''))
+ new_obj.setLogo(logo_id)
+ text = [s.INFO for s in entry.objectValues('SERVICE')]
+ text = '\n'.join(text)
+ new_obj.setServiceInfo(text=text, text_format='plain')
+ new_contacts = []
+ contacts = entry.objectValues('CONTACT')
+ for ct in contacts:
+ contact = {}
+ contact['name'] = getattr(ct, 'NAME', '')
+ contact['email'] = getattr(ct, 'EMAIL', '')
+ contact['info'] = getattr(ct, 'INFO', '')
+ new_contacts.append(contact.copy())
+ new_obj.setContactInfo(new_contacts)
+ new_phones = []
+ phones = entry.objectValues('PHONE')
+ for p in phones:
+ phone = {}
+ phone['phone'] = getattr(p, 'NUMBER', '')
+ phone['info'] = getattr(p, 'INFO', '')
+ new_phones.append(phone.copy())
+ new_obj.setPhoneInfo(new_phones)
+ return new_obj
+
class Transmutator:
def __init__(self, source, dest, ignore_path, type_map, level=0):
@@ -249,7 +287,9 @@
return None
def XMLDocument2XMLDocument(self, obj, source, dest):
- self.log('Ignoring XML Document for now.\n')
+ id = obj.getId()
+ if id == 'zsp.xml':
+ return migrateZSP(dest, obj)
return None
def BackTalkBook2CMFBackTalkBook(self, obj, source, dest):
@@ -395,9 +435,11 @@
dest.invokeFactory(id=obj.getId(), type_name="Folder")
dest.setTitle(obj.title)
except: pass
- new = getattr(aq_base(dest), obj.getId(), None)
- if new is not None and hasattr(aq_base(new), 'objectValues'):
- return new.__of__(dest)
+ if not hasattr(aq_base(dest), obj.getId()):
+ return None
+ new = getattr(dest, obj.getId())
+ if hasattr(aq_base(new), 'objectValues'):
+ return new
return None
def BTreeFolder2CMFBTreeFolder(self, obj, source, dest):
@@ -507,7 +549,11 @@
oids.remove('acl_users')
oids.insert(0, 'acl_users')
for oid in oids:
- obj = getattr(source, oid)
+ obj = getattr(source, oid, None)
+ if obj is None:
+ self.log('Oid %s in objectIds but object ' % oid +\
+ ' not found in %s.\n' % '/'.join(path))
+ continue
try:
# We may want to catch POSKeyErrors early,
# so lets prod the object and see what happens
@@ -531,7 +577,7 @@
res = []
res = _cleanupOwnership(new_obj, res, 0)
if res != []:
- self.log('\n'.join(res))
+ self.log('\n'.join(res) + '\n')
new_obj = self.fixModificationDate(obj, new_obj)
ct = getToolByName(new_obj, 'portal_catalog', None)
More information about the zopeorg-checkins
mailing list