Esempio n. 1
0
 def manage_selectDependentProducts(self, selections=(), REQUEST=None):
     '''
     Selects which products to refresh simultaneously.
     '''
     if self._readRefreshTxt() is None:
         raise Unauthorized, 'refresh.txt not created'
     RefreshFuncs.setDependentProducts(self._p_jar, self.id, selections)
     if REQUEST is not None:
         return self.manage_refresh(REQUEST)
Esempio n. 2
0
 def manage_selectDependentProducts(self, selections=(), REQUEST=None):
     '''
     Selects which products to refresh simultaneously.
     '''
     if self._readRefreshTxt() is None:
         raise Unauthorized, 'refresh.txt not created'
     RefreshFuncs.setDependentProducts(self._p_jar, self.id, selections)
     if REQUEST is not None:
         return self.manage_refresh(REQUEST)
Esempio n. 3
0
 def manage_enableAutoRefresh(self, enable=0, REQUEST=None):
     '''
     Changes the auto refresh flag for this product.
     '''
     if self._readRefreshTxt() is None:
         raise Unauthorized, 'refresh.txt not created'
     RefreshFuncs.enableAutoRefresh(self._p_jar, self.id, enable)
     if enable:
         message = 'Enabled auto refresh.'
     else:
         message = 'Disabled auto refresh.'
     if REQUEST is not None:
         return self.manage_refresh(REQUEST, manage_tabs_message=message)
Esempio n. 4
0
 def manage_enableAutoRefresh(self, enable=0, REQUEST=None):
     '''
     Changes the auto refresh flag for this product.
     '''
     if self._readRefreshTxt() is None:
         raise Unauthorized, 'refresh.txt not created'
     RefreshFuncs.enableAutoRefresh(self._p_jar, self.id, enable)
     if enable:
         message = 'Enabled auto refresh.'
     else:
         message = 'Disabled auto refresh.'
     if REQUEST is not None:
         return self.manage_refresh(REQUEST, manage_tabs_message=message)
Esempio n. 5
0
    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')
Esempio n. 6
0
    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')
Esempio n. 7
0
 def manage_performRefresh(self, REQUEST=None):
     '''
     Attempts to perform a refresh operation.
     '''
     if self._readRefreshTxt() is None:
         raise Unauthorized, 'refresh.txt not found'
     message = None
     if RefreshFuncs.performFullRefresh(self._p_jar, self.id):
         from ZODB import Connection
         Connection.resetCaches() # Clears cache in future connections.
         message = 'Product refreshed.'
     else:
         message = 'An exception occurred.'
     if REQUEST is not None:
         return self.manage_refresh(REQUEST, manage_tabs_message=message)
Esempio n. 8
0
 def manage_performRefresh(self, REQUEST=None):
     '''
     Attempts to perform a refresh operation.
     '''
     if self._readRefreshTxt() is None:
         raise Unauthorized, 'refresh.txt not found'
     message = None
     if RefreshFuncs.performFullRefresh(self._p_jar, self.id):
         from ZODB import Connection
         Connection.resetCaches()  # Clears cache in future connections.
         message = 'Product refreshed.'
     else:
         message = 'An exception occurred.'
     if REQUEST is not None:
         return self.manage_refresh(REQUEST, manage_tabs_message=message)