From: duncanb <svn...@pl...> - 2006-01-06 11:01:55
|
Author: duncanb Date: Fri Jan 6 11:01:03 2006 New Revision: 15514 Modified: PloneMultisite/trunk/MultisiteTool.py PloneMultisite/trunk/tests/MultisiteTestCase.py PloneMultisite/trunk/www/config.pt Log: Active progress bar is now configurable. Preview test works again. Preview no longer requires VirtualRootPhysicalPath to be set. Modified: PloneMultisite/trunk/MultisiteTool.py ============================================================================== --- PloneMultisite/trunk/MultisiteTool.py (original) +++ PloneMultisite/trunk/MultisiteTool.py Fri Jan 6 11:01:03 2006 @@ -83,7 +83,6 @@ <style>.preview-status {display:none;}</style> </body></html>''' -ACTIVE_PROGRESS = True start_of_header_search = re.compile('(<head[^>]*>)', re.IGNORECASE).search base_re_search=re.compile('(<base.*?>)',re.I).search @@ -147,6 +146,10 @@ """Returns the path to the root folder for public sites""" return self.ROOT + def getActiveProgress(self): + """Is progress bar displayed?""" + return getattr(self, 'ACTIVE_PROGRESS', True) + def _filteredSiteList(self, sites): result = [] for s in sites: @@ -645,8 +648,11 @@ security.declareProtected('View', 'previewObject') def previewObject(self, uid, site, REQUEST=None): """Put content on site (temporarily) and render it for preview""" - REQUEST = self.REQUEST - if ACTIVE_PROGRESS: + if REQUEST is None: + REQUEST = self.REQUEST + + ActiveProgress = getattr(self, 'ACTIVE_PROGRESS', True) + if ActiveProgress: RESPONSE = REQUEST.RESPONSE RESPONSE.setHeader('content-type', 'text/html') @@ -689,12 +695,12 @@ raise MultisiteError('Cannot preview: %s is not a valid public site' % site) site = sites[0] portal = site.getPortal() - __traceback_info__ = { 'url': object.absolute_url() } + __traceback_info__ = { 'url': object.absolute_url(), 'other':REQUEST.other } fixups = {} SAVED_REQUEST = ( REQUEST['SERVER_URL'], - REQUEST.other['VirtualRootPhysicalPath'], + REQUEST.other.get('VirtualRootPhysicalPath', None), REQUEST._steps, REQUEST.other['URL'] ) sm = None @@ -1025,19 +1031,27 @@ REQUEST.RESPONSE.redirect(self.absolute_url() + '/multisite_sites') security.declareProtected(ManagePortal, "zmi_update_config") - def zmi_update_config(self, folder_name, default_owner, REQUEST=None): + def zmi_update_config(self, folder_name=None, default_owner=None, + active_progress=None, REQUEST=None): """Update root folder and default owner id""" - try: - assert folder_name.startswith('/') - if not folder_name.endswith('/'): - folder_name = folder_name + '/' - - folder = self.restrictedTraverse(folder_name) - except: - raise MultisiteError, "Invalid site container path" + if folder_name is not None: + try: + assert folder_name.startswith('/') + if not folder_name.endswith('/'): + folder_name = folder_name + '/' + + folder = self.restrictedTraverse(folder_name) + except: + raise MultisiteError, "Invalid site container path" + + self.ROOT = folder_name + + if default_owner is not None: + self.DEFAULT_OWNER = default_owner + + if active_progress is not None: + self.ACTIVE_PROGRESS = active_progress - self.ROOT = folder_name - self.DEFAULT_OWNER = default_owner if REQUEST: REQUEST.RESPONSE.redirect(self.absolute_url() + '/multisite_config') @@ -1312,5 +1326,16 @@ return [ (t,a,info[id][a]) for (t,id) in zip(transitions,ids) for a in sortedkeys(info[id]) ] - + def multisiteKupuFixItems(self, site, items): + portal = site.getPortal() + sitebase = portal.absolute_url() + base = getToolByName(self, 'portal_url')() + regex = re.compile('%s/(.*)/kupucollection.xml\?(.*)' % re.escape(sitebase)) + fixup = base + '/multisitecollection.xml?\\2&site=%s&path=\\1' % site.getId() + for i in items: + i['url'] = i['url'].replace('/resolveuid/', '/%s/resolveuid/' % portal.getId()) + if i['src']: + i['src'] = regex.sub(fixup, i['src']) + return items + InitializeClass(MultisiteTool) Modified: PloneMultisite/trunk/tests/MultisiteTestCase.py ============================================================================== --- PloneMultisite/trunk/tests/MultisiteTestCase.py (original) +++ PloneMultisite/trunk/tests/MultisiteTestCase.py Fri Jan 6 11:01:03 2006 @@ -108,6 +108,7 @@ portal = self.portal self.multisite = portal.portal_multisite + self.multisite.ACTIVE_PROGRESS = False # Add a manager user uf = self.portal.acl_users Modified: PloneMultisite/trunk/www/config.pt ============================================================================== --- PloneMultisite/trunk/www/config.pt (original) +++ PloneMultisite/trunk/www/config.pt Fri Jan 6 11:01:03 2006 @@ -93,6 +93,26 @@ </div> </fieldset> +<fieldset> +<legend>Active Progress</legend> +<div class="field"> +<div class="formHelp"> +Previewing is sometimes slow. Turning on this option will attempt to +display a progress bar while the preview is generated. If the progress +bar does not work correctly (e.g. because intervening proxies buffer +data) turn this off. +</div> +<table> +<tr> + <th>Display progress bar</th> + <td><input type="hidden" name="active_progress:int:default" + value="0" /><input type="checkbox" name="active_progress:int" + tal:attributes="checked typestool/getActiveProgress" value="1"/></td> + </tr> +</table> +</div> +</fieldset> + <input class="context" type="submit" name="zmi_update_config:method" value="Save" /> <fieldset> |