Ignore:
Timestamp:
10/06/09 15:10:30 (11 years ago)
Author:
cbyrom
Message:

Update vocab server 'getRelated' calls to include the required data
to allow proper invocation of services + adjust calls so that the
service is ran for both vocab terms + free text inputs and the results
are combined + extend tests.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • MILK/trunk/milk_server/milk_server/controllers/browse/discovery.py

    r5314 r5374  
    7070 
    7171        searchString = self.inputs['searchString'] 
    72         if 'vocabTerm' in self.inputs: 
     72        if 'vocabTerm' in self.inputs and self.inputs['vocabTerm']: 
    7373            searchString += " %s" %self.inputs['vocabTerm'] 
    7474             
     
    520520        if 'searchString' in self.inputs: 
    521521            try: 
    522                 [broader,narrower,synonyms] = vs.getRelated(self.inputs['searchString']) 
     522                # NB, the search doesn't work with aggregated info so just 
     523                # look up both in turn 
     524                broader = [] 
     525                narrower = [] 
     526                synonyms = [] 
     527                if 'searchString' in self.inputs and self.inputs['searchString']: 
     528                    [broader, narrower, synonyms] = \ 
     529                        vs.getRelated(self.inputs['searchString']) 
     530 
     531                if 'vocabTerm' in self.inputs and self.inputs['vocabTerm']: 
     532                    [broader1, narrower1, synonyms1] = \ 
     533                        vs.getRelated(self.inputs['vocabTerm']) 
     534                     
     535                    broader = self.__addNewTerms(broader, broader1) 
     536                    narrower = self.__addNewTerms(narrower, narrower1) 
     537                    synonyms = self.__addNewTerms(synonyms, synonyms1) 
     538                     
     539                     
    523540                #get a base string for the links to new searches 
    524                 if 'start' in self.inputs: del self.inputs['start'] 
    525                 if 'howmany' in self.inputs: del self.inputs['howmany'] 
     541                if 'start' in self.inputs:  
     542                    del self.inputs['start'] 
     543                if 'howmany' in self.inputs:  
     544                    del self.inputs['howmany'] 
    526545                self.inputs['searchString']='###SEARCHSSTRING###' 
    527546                q='%s/discovery?'%g.server 
     
    551570        return render('browse/semantic',fragment=True) 
    552571 
     572 
     573    def __addNewTerms(self, toList, fromList): 
     574        ''' 
     575        Add any terms in list2 not in list1 to list1 - and then return this list 
     576        @param toList: list to add terms to 
     577        @param fromList: list to add terms from 
     578        ''' 
     579        for data in fromList: 
     580            if data not in toList: 
     581                toList.append(data) 
     582                 
     583        return toList 
    553584     
    554585    def __displayBrowseSearchResults(self, searchClient): 
Note: See TracChangeset for help on using the changeset viewer.