Changeset 5178


Ignore:
Timestamp:
07/04/09 11:48:50 (10 years ago)
Author:
cbyrom
Message:

Add code to filter atoms on publication state.

Location:
MILK/trunk/milk_server/milk_server
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • MILK/trunk/milk_server/milk_server/lib/ndgInterface.py

    r5111 r5178  
    6565 
    6666         
    67     def __runRetrieveAndHandleErrors(self, ndgObject, outputFormat = None): 
     67    def __runRetrieveAndHandleErrors(self, ndgObject, outputFormat = None, 
     68                                     filterAtoms = False): 
    6869        ''' 
    6970        Retrieve doc represented by ndgObject; if problem occurs during retrieval 
     
    7172        @param ndgObject: ndgObject representing doc to retrieve 
    7273        @keyword outputFormat: format to return doc in 
     74        @keyword filterAtoms: if True, remove any atoms in the Working state - NB, these 
     75        should not be visible in 'browse' mode  
    7376        @return: status, doc where status = 1 => success, 0 => failure 
    7477        NB, when status = 0, doc will contain any associated error messages 
     
    7982        try: 
    8083            status, doc = retrieveClient.retrieveDoc(ndgObject,  
    81                                                      outputFormat = outputFormat) 
     84                                                     outputFormat = outputFormat, 
     85                                                     filterAtoms = filterAtoms) 
    8286        except Exception, e: 
    8387            logging.error("Problem occurred whilst retrieving doc, '%s'" %ndgObject) 
     
    8993             
    9094 
    91     def GetXML(self, uri, outputSchema = None, useCache = True): 
     95    def GetXML(self, uri, outputSchema = None, useCache = True, filterAtoms = False): 
    9296        '''  
    9397        This method provides a secure interface to the server 
     
    100104        @keyword useCache: check for data in the cache and use this, if set to 
    101105        True (the default)    
     106        @keyword filterAtoms: if True, remove any atoms in the Working state - NB, these 
     107        should not be visible in 'browse' mode  
    102108        @return doc in string format 
    103109        ''' 
     
    127133        if outputSchema or not useCache: 
    128134            status, xmlh = self.__runRetrieveAndHandleErrors(ndgObj,  
    129                                                              outputFormat = outputSchema) 
     135                                                             outputFormat = outputSchema, 
     136                                                             filterAtoms = filterAtoms) 
    130137        else: 
    131138            if not self.XMLHCache: 
  • MILK/trunk/milk_server/milk_server/models/ndgdoc.py

    r5035 r5178  
    1414from xml.etree import cElementTree as ET 
    1515import milk_server.lib.helpers as h 
     16from milk_server.lib.base import * 
    1617from milk_server.lib import Utilities 
    1718from milk_server.lib.ndgInterface import ndgInterface  
     
    3940        self.__setupNDGObject(ndgURI, config) 
    4041 
    41          
    4242        logging.debug("NDGDoc instantiated") 
    4343 
     
    122122 
    123123        useCache = True 
     124        filterAtoms = False 
    124125        viewFormat = self.ndgObject.schema 
    125126        # NB, don't use cache if we're looking up atoms as these can change quickly 
    126         # when using the atom editor 
     127        # when using the atom editor 
    127128        if viewFormat == ndgObject.ATOM_DOC_TYPE or \ 
    128129            viewFormat ==  ndgObject.ATOM_BACKUP_DOC_TYPE: 
    129130            useCache = False 
     131            # Impose restriction on results according to published state, if not  
     132            # in editor mode 
     133            if not g.atomEditorEnabled: 
     134                logging.debug("- filtering results for browse mode") 
     135                filterAtoms = True 
     136             
    130137             
    131138        self.status, self.xmlString = NDG_INTERFACE.GetXML(self.ndgUri,  
    132139                                                           outputSchema = outputSchema, 
    133                                                            useCache = useCache) 
     140                                                           useCache = useCache, 
     141                                                           filterAtoms = filterAtoms) 
     142             
    134143        logging.info("Document retrieve complete") 
    135144 
     
    148157        logging.debug("Processing document...") 
    149158        if not self.status: 
     159            self.templateType = 'genshi' 
    150160            self.renderTemplate = 'error' 
    151161            self.htmlCode = 400 
Note: See TracChangeset for help on using the changeset viewer.