- Timestamp:
- 05/22/12 15:51:08 (12 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Products.ecmigration/trunk/Products/ecmigration/migrate.py
r886 r890 177 177 def getFile(self, fn): 178 178 fname = os.path.join(self.base, fn) 179 f = open(fname, 'rb') 179 try: 180 f = open(fname, 'rb') 181 except IOError: 182 return None 180 183 data = f.read() 181 184 f.close() … … 232 235 def readFile(self, info): 233 236 f = self.tar_archive.extractfile(info) 234 data = f.read() 235 f.close() 236 # Circumvent caching for large file handling 237 self.tar_archive.members = [] 238 return data 237 if f: 238 data = f.read() 239 f.close() 240 # Circumvent caching for large file handling 241 self.tar_archive.members = [] 242 return data 243 return None 239 244 240 245 def getFile(self, info): … … 331 336 data = self._getMetadata(x, archive) 332 337 self.importSettings(data) 338 elif 'ecmigration_theme' == ext: 339 self.logger.info('Getting eduCommons theme settings: %s' %x) 340 data = self._getMetadata(x, archive) 341 self.importThemeSettings(data) 342 self.importThemeFiles(archive) 333 343 elif 'ecmigration_userinfo' == ext: 334 344 self.logger.info('Getting eduCommons user info: %s' %x) … … 345 355 obj = self.importObject(data) 346 356 else: 347 #f = archvie.getFileOpen(x)348 #data = archive.getFile(x)349 357 self.importObjectData(x, archive) 350 358 self.imp += 1 … … 362 370 transaction.savepoint(optimistic=True) 363 371 372 def importThemeSettings(self, data): 373 """ Import theme data """ 374 portal = self.context.portal_url.getPortalObject() 375 props = portal.portal_skins.custom 376 bp = props.base_properties 377 bp.manage_changeProperties( 378 logoName=data['logoName'], 379 faviconName=data['faviconName'], 380 bodyBackgroundColor=data['bodyBackgroundColor'], 381 bodyBackgroundImage=data['bodyBackgroundImage'], 382 portalHeaderBackgroundImage=data['portalHeaderBackgroundImage'], 383 portalHeaderBackgroundColor=data['portalHeaderBackgroundColor'], 384 portalHeaderFontColor=data['portalHeaderFontColor'], 385 portalHeaderLinkColor=data['portalHeaderLinkColor'], 386 portalHeaderActiveColor=data['portalHeaderActiveColor'], 387 portalTopNavBackgroundImage=data['portalTopNavBackgroundImage'], 388 portalTopNavBackgroundColor=data['portalTopNavBackgroundColor'], 389 portalTopNavFontColor=data['portalTopNavFontColor'], 390 portalTopNavLinkColor=data['portalTopNavLinkColor'], 391 portalTopNavActiveColor=data['portalTopNavActiveColor'], 392 portalColumnOneBackgroundImage=data['portalColumnOneBackgroundImage'], 393 portalColumnOneBackgroundColor=data['portalColumnOneBackgroundColor'], 394 portalColumnOneFontColor=data['portalColumnOneFontColor'], 395 portalColumnOneLinkColor=data['portalColumnOneLinkColor'], 396 portalColumnOneActiveColor=data['portalColumnOneActiveColor'], 397 backgroundColor=data['backgroundColor'], 398 fontColor=data['fontColor'], 399 linkColor=data['linkColor'], 400 activeColor=data['activeColor'], 401 ) 402 transaction.savepoint(optimistic=True) 403 404 def importThemeFiles(self, archive): 405 portal = self.context.portal_url.getPortalObject() 406 props = portal.portal_skins.custom 407 bp = props.base_properties 408 images = [ 409 bp.getProperty('logoName'), 410 bp.getProperty('faviconName'), 411 bp.getProperty('bodyBackgroundImage'), 412 bp.getProperty('portalHeaderBackgroundImage'), 413 bp.getProperty('portalTopNavBackgroundImage'), 414 bp.getProperty('portalColumnOneBackgroundImage'), 415 ] 416 path = '%s/portal_skins/custom/' %self.context.getId() 417 for x in images: 418 data = archive.getFile(path+x) 419 if data: 420 if x in props.objectIds(): 421 props.manage_delObjects(ids=[x]) 422 props.manage_addImage(x, data) 423 self.logger.info('Added Theme File: %s' %path+x) 424 transaction.savepoint(optimistic=True) 425 364 426 def importUsers(self, data): 365 427 """ Import Users """ … … 540 602 self.logger.info('Starting Export') 541 603 self.exportSettings(archive) 604 self.exportThemeSettings(archive) 542 605 self.exportUsers(archive) 543 606 self.exportObjects(brains, archive, 99999) … … 561 624 archive.addFile(fn, data) 562 625 self.logger.info('Added settings file: %s' %fn) 626 627 def exportThemeSettings(self, archive): 628 tprops = self.context.portal_skins.custom 629 bp = tprops.base_properties 630 fn = '%s/theme.ecmigration_theme' %self.context.getId() 631 objstore = { 632 'logoName':bp.getProperty('logoName'), 633 'faviconName':bp.getProperty('faviconName'), 634 'bodyBackgroundColor':bp.getProperty('bodyBackgroundColor'), 635 'bodyBackgroundImage':bp.getProperty('bodyBackgroundImage'), 636 'portalHeaderBackgroundImage':bp.getProperty('portalHeaderBackgroundImage'), 637 'portalHeaderBackgroundColor':bp.getProperty('portalHeaderBackgroundColor'), 638 'portalHeaderFontColor':bp.getProperty('portalHeaderFontColor'), 639 'portalHeaderLinkColor':bp.getProperty('portalHeaderLinkColor'), 640 'portalHeaderActiveColor':bp.getProperty('portalHeaderActiveColor'), 641 'portalTopNavBackgroundImage':bp.getProperty('portalTopNavBackgroundImage'), 642 'portalTopNavBackgroundColor':bp.getProperty('portalTopNavBackgroundColor'), 643 'portalTopNavFontColor':bp.getProperty('portalTopNavFontColor'), 644 'portalTopNavLinkColor':bp.getProperty('portalTopNavLinkColor'), 645 'portalTopNavActiveColor':bp.getProperty('portalTopNavActiveColor'), 646 'portalColumnOneBackgroundImage':bp.getProperty('portalColumnOneBackgroundImage'), 647 'portalColumnOneBackgroundColor':bp.getProperty('portalColumnOneBackgroundColor'), 648 'portalColumnOneFontColor':bp.getProperty('portalColumnOneFontColor'), 649 'portalColumnOneLinkColor':bp.getProperty('portalColumnOneLinkColor'), 650 'portalColumnOneActiveColor':bp.getProperty('portalColumnOneActiveColor'), 651 'backgroundColor':bp.getProperty('backgroundColor'), 652 'fontColor':bp.getProperty('fontColor'), 653 'linkColor':bp.getProperty('linkColor'), 654 'activeColor':bp.getProperty('activeColor'), 655 } 656 data = Pickle.dumps(objstore) 657 self.files.append(fn) 658 archive.addFile(fn, data) 659 self.logger.info('Added theme settings: %s' %fn) 660 images = [ 661 objstore['logoName'], 662 objstore['faviconName'], 663 objstore['bodyBackgroundImage'], 664 objstore['portalHeaderBackgroundImage'], 665 objstore['portalTopNavBackgroundImage'], 666 objstore['portalColumnOneBackgroundImage'], 667 ] 668 path = '%s/portal_skins/custom/' %self.context.getId() 669 for x in images: 670 if x in tprops.objectIds(): 671 img = getattr(tprops, x, None) 672 if img: 673 archive.addFile(path + x, img.data) 674 self.logger.info('Added theme image file: %s' %path+x) 563 675 564 676 def exportUsers(self, archive):
Note: See TracChangeset
for help on using the changeset viewer.
