def manage_refresh(self, REQUEST, manage_tabs_message=None): ''' Displays the refresh management screen. ''' error_type = error_value = error_tb = None exc = RefreshFuncs.getLastRefreshException(self.id) if exc is not None: error_type, error_value, error_tb = exc exc = None refresh_txt = self._readRefreshTxt() # Read the persistent refresh information. auto = RefreshFuncs.isAutoRefreshEnabled(self._p_jar, self.id) deps = RefreshFuncs.getDependentProducts(self._p_jar, self.id) # List all product modules. mods = RefreshFuncs.listRefreshableModules(self.id) loaded_modules = [] prefix = 'Products.%s' % self.id prefixdot = prefix + '.' lpdot = len(prefixdot) for name, module in mods: if name == prefix or name[:lpdot] == prefixdot: name = name[lpdot:] if not name: name = '__init__' loaded_modules.append(name) all_auto = RefreshFuncs.listAutoRefreshableProducts(self._p_jar) for pid in all_auto: # Ignore products that don't have a refresh.txt. if self._readRefreshTxt(pid) is None: all_auto.remove(pid) auto_other = filter(lambda productId, myId=self.id: productId != myId, all_auto) # Return rendered DTML. return self._refresh_dtml(REQUEST, id=self.id, refresh_txt=refresh_txt, error_type=error_type, error_value=error_value, error_tb=error_tb, devel_mode=Globals.DevelopmentMode, auto_refresh_enabled=auto, auto_refresh_other=auto_other, dependent_products=deps, loaded_modules=loaded_modules, manage_tabs_message=manage_tabs_message, management_view='Refresh')