Changeset 1615


Ignore:
Timestamp:
20/10/06 09:44:19 (13 years ago)
Author:
lawrence
Message:

Modifications to discovery (and browse) to support ndgDoc as an interim
measure ...

Location:
TI07-MOLES/trunk/PythonCode/browse/portal/cgi/browse
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • TI07-MOLES/trunk/PythonCode/browse/portal/cgi/browse/DIF.py

    r1592 r1615  
    3636        helper=nsdumb(self.tree) 
    3737        self.type='DIF' 
     38        if self.tree.tag!=self.type: self.tree=self.tree.find('.//%s'%self.type) 
     39        if self.tree is None: raise TypeError, self.xml 
    3840        self.entryID=helper.getText(self.tree,'Entry_ID') 
    3941        self.abstract=helper.getText(self.tree,'Summary') 
  • TI07-MOLES/trunk/PythonCode/browse/portal/cgi/browse/DiscoveryGUI.py

    r1587 r1615  
    3333            self.advancedInterface() 
    3434            return 
     35        elif self.inputs.keys()==['help']: 
     36            self.helpInterface(0) 
     37            return 
     38        elif self.inputs.keys()==['help','advanced']: 
     39            self.helpInterface(1) 
     40            return 
    3541         
    3642        #check simplest text issues common to both simple and advanced search 
     
    5359            expected=['timeLimit','startDateDay','startDateMon','startDateYear', 
    5460                        'endDateDay','endDateMon','endDateYear','spaceLimit', 
    55                         'bboxN','bboxE','bboxS','bboxW','sourceLimit'] 
     61                        'bboxN','bboxE','bboxS','bboxW', 
     62                        'sourceLimit'] 
    5663            self.__checkform(expected) 
    5764            if self.message!='': return 
    5865             
    59             if self.inputs['timeLimit']=="None" and self.inputs['sourceLimit']=="None" and \ 
    60                 self.inputs['spaceLimit']=="None": 
    61                 #it's a simple text search from the advanced box 
     66            if self.inputs['timeLimit']=="0" and self.inputs['spaceLimit']=="0":  
     67                if int(self.inputs['sourceLimit']): 
     68                    scope=[] 
     69                    if 'sourceMDIP' in self.inputs: 
     70                        if self.inputs['sourceMDIP']: scope.append('MDIP') 
     71                    if 'sourceNERC' in self.inputs: 
     72                        if self.inputs['sourceNERC']: scope.append('NERC') 
     73                else: 
     74                    scope=None 
     75                    #it's a simple text search from the advanced box 
    6276                self.doText(self.inputs['searchString'],self.inputs['textTarget'], 
    63                             self.inputs['start'],self.inputs['howmany']) 
    64             else: 
     77                            self.inputs['start'],self.inputs['howmany'],scope) 
     78            else : 
    6579                #it's more complicated 
    6680                self.doGeoSpatial() 
     
    7993        return DiscoveryState(id,self.request,hits,offset,stride) 
    8094         
    81     def doText(self,searchString,textTarget,start,howmany): 
     95    def doText(self,searchString,textTarget,start,howmany,scope=None): 
    8296        ''' Carry out a text search for <searchString> without geospatial elements,  
    8397        in the <textTarget> where the accepted text target values are controlled 
     
    88102         
    89103        ws=NS.ndgSearch() 
    90         documents=ws.search(searchString,start=start,howmany=howmany) 
     104        documents=ws.search(searchString,start=start,howmany=howmany,scope=scope) 
     105         
    91106        hits=ws.hits 
    92107        id=ws.serverSessionID 
     
    104119     
    105120    def doGeoSpatial(self): 
    106         pass 
     121        self.html='Geospatial and Time limiting not yet implemented' 
     122        return 
    107123     
    108124    def standardInterface(self): 
     
    132148        self.html=DiscoveryTemplate.advanced%locals() 
    133149        return 
     150     
     151    def helpInterface(self,advanced): 
     152        if advanced: 
     153            self.advancedInterface() 
     154        else: 
     155            self.standardInterface() 
     156        self.html=DiscoveryTemplate.help+self.html 
     157        return 
    134158         
    135159         
  • TI07-MOLES/trunk/PythonCode/browse/portal/cgi/browse/DiscoveryTemplate.py

    r1586 r1615  
    9696    <div class="searchMethod"> 
    9797        <h4> Refine by Area </h4> 
    98         <input type="radio" name="spaceLimit" value="None" checked> Do not limit by area 
    99         <input type="radio" name="spaceLimit" value="BBOX"> Limit by Bounding Box 
     98        <input type="radio" name="spaceLimit" value="0" checked> Do not limit by area 
     99        <input type="radio" name="spaceLimit" value="1"> Limit by Bounding Box 
    100100        <table> 
    101101        <tr><td>Northerly Latitude:</td> 
     
    112112    </div> 
    113113    <div class="searchMethod"> 
    114         <h4> Refine by Source Data Centre </h4> 
    115         <input type="radio" name="sourceLimit" value="0" checked> Do not limit by source 
     114        <h4> Refine by Source Data Centres </h4> 
     115        <input type="radio" name="sourceLimit" value="0" checked> All 
     116        <input type="radio" name="sourceLimit" value="1"> Limit scope 
     117        <table> 
     118        <tr><td> NERC Data Centres</td><td><input type="checkbox" name="sourceNERC"></td></tr> 
     119        <tr><td> Marine Data Partnership (MDIP)</td><td><input type="checkbox" name="sourceMDIP"></td></tr> 
     120        </table> 
    116121    </div> 
    117122    <input type="submit" value="Run Search"/> 
     
    120125    </form> 
    121126</div>''' 
     127 
     128help=''' 
     129<h3> NDG Search Interface </h3> 
     130Some help text should appear here 
     131''' 
    122132     
  • TI07-MOLES/trunk/PythonCode/browse/portal/cgi/browse/ETxmlView.py

    r1577 r1615  
    3333    def getText(self,elem,xpathExpression,multiple=0): 
    3434        ''' Get a text object sensibly ''' 
     35        if elem is None:  
     36            if multiple: 
     37                return ['',] 
     38            else: return ''  
    3539        if multiple: 
    3640                r=elem.findall(self.xmlns+xpathExpression) 
     
    5256    def find(self,elem,xpathExpression): 
    5357       ''' Return relevant subelement ''' 
     58       if elem is None: return '' 
    5459       xe=self.xmlns+xpathExpression 
    5560       return elem.find(xe) 
     
    5762    def findall(self,elem,xpathExpression): 
    5863       ''' Return all relevant subelements ''' 
     64       if elem is None: return [] 
    5965       xe=self.xmlns+xpathExpression 
    6066       return elem.findall(xe) 
  • TI07-MOLES/trunk/PythonCode/browse/portal/cgi/browse/Utilities.py

    r1592 r1615  
    110110            if i is None: return '' 
    111111            return i 
     112        if element is None: 
     113            if multiple: 
     114                 return ['',] 
     115            else: return '' 
    112116        if multiple: 
    113117                r=element.findall(xpathExpression) 
  • TI07-MOLES/trunk/PythonCode/browse/portal/cgi/browse/config.test

    r1586 r1615  
    11#dummy configuration file 
    22[SEARCH] 
     3script:             discovery.py 
    34server:             http://localhost.localdomain:8000/cgi/ 
    4 advancedURL:        ${server}Discovery.py 
    5 discoveryURL:       ${server}Discovery.py 
    6 helpURL:            ${server}help.py 
     5advancedURL:        %(server)s%(script)s?advanced=1 
     6discoveryURL:       %(server)s%(script)s 
     7helpURL:            %(server)s%(script)s?help=1 
    78[services] 
    89#serviceFile:    /var/www/cgi-bin/browse/serviceMap.config 
  • TI07-MOLES/trunk/PythonCode/browse/portal/cgi/browse/renderDiscoverySet.py

    r1592 r1615  
    55 
    66def renderDiscoverySet(difSet,state,summary=0,services=0,spatial=0,temporal=0, 
    7     linkto='NDG_B_SERVICE'): 
     7    linkto='NDG_B_SERVICE',selector=None): 
    88    '''Takes a set of xml DIFS from a discovery search (difSet) and renders a  
    99    list of responses as a table, with layout depending on a set of keywords: 
Note: See TracChangeset for help on using the changeset viewer.