Changeset 3014


Ignore:
Timestamp:
14/11/07 09:54:04 (12 years ago)
Author:
lawrence
Message:

Fix (I hope) for ticket:818 (in reopened form)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/discovery.py

    r2980 r3014  
    2828        self.__setup() 
    2929        # parse the query string and hand off to a discovery engine 
    30         if self.inputs=={} or 'ClearForm' in self.inputs: return self.__advancedPrompt() 
    31          
     30        if self.inputs=={} or 'ClearForm' in self.inputs:  
     31            return self.__advancedPrompt() 
     32        
    3233        # see if this is a discovery search or a more complicated search 
    3334        if 'searchTarget' not in self.inputs: self.inputs['searchTarget']='Discovery' 
     
    5354     
    5455        if self.message!='': 
    55             c.xml=self.message  
     56            c.xml='Simple %s:'%self.message  
    5657            return render_response('content') 
     58         
    5759         
    5860        if len(self.inputs)==5: 
     
    6365            dateRange=None 
    6466            scope=None 
    65          
     67             
    6668        else: 
    6769         
    68             #check advanced search options 
    69             expected=['startDateDay','startDateMon','startDateYear', 
    70                             'endDateDay','endDateMon','endDateYear', 
    71                             'bboxN','bboxE','bboxS','bboxW','searchString','textTarget','searchTarget']  
    72             self.__checkform(expected) 
    73             if self.message!='':  
    74                 c.xml=self.message 
    75                 return render_response('content') 
    76              
    7770            # ------------- Handle scope from radio button on form ------- 
    7871            if 'source' in self.inputs: 
     
    8275            else: 
    8376                scope=None 
    84              
    85             # ------------- Handle Location Bounding -------- 
    86             # default form has a global bounding box, NB, internal to this routine we use bbox=[N,W,E,S], not [W,S,E,N]! 
    87             bbox=[self.inputs['bboxN'],self.inputs['bboxW'],self.inputs['bboxE'],self.inputs['bboxS']] 
    88              
    89             self.__checkbox(bbox) 
     77                 
     78            expected=['bboxN','bboxE','bboxS','bboxW'] 
     79            self.__checkform(expected) 
    9080            if self.message!='':  
    91                 c.xml=self.message 
    92                 return render_response('content') 
    93      
    94             # ------------- Handle Date Ranges --------------- 
    95             try: 
    96                 dateRange=[(self.inputs['startDateDay'],self.inputs['startDateMon'],self.inputs['startDateYear']), 
    97                             (self.inputs['endDateDay'],self.inputs['endDateMon'],self.inputs['endDateYear'])] 
    98                 #default form has blanks, in which case we don't want to check for date range 
    99                 if dateRange<>[("","",""),("","","")]: 
    100                     self.__checkdates(dateRange) 
    101                 else: dateRange=None            
    102             except: 
    103                 self.message='Invalid date provided' 
     81                self.message='' 
     82                bbox=None 
     83            else: 
     84                # default form has a global bounding box, NB, internal to this routine we use bbox=[N,W,E,S], not [W,S,E,N]! 
     85                bbox=[self.inputs['bboxN'],self.inputs['bboxW'],self.inputs['bboxE'],self.inputs['bboxS']] 
     86                self.__checkbox(bbox) 
     87                if self.message!='':  
     88                    c.xml=self.message 
     89                    return render_response('content') 
     90                     
     91             
     92            expected=['startDateDay','startDateMon','startDateYear', 
     93                            'endDateDay','endDateMon','endDateYear'] 
     94            self.__checkform(expected) 
    10495            if self.message!='':  
    105                 c.xml=self.message 
    106                 return render_response('content') 
    107                  
    108                  
     96                self.message='' 
     97                dateRange=None 
     98            else: 
     99                try: 
     100                    dateRange=[(self.inputs['startDateDay'],self.inputs['startDateMon'],self.inputs['startDateYear']), 
     101                                (self.inputs['endDateDay'],self.inputs['endDateMon'],self.inputs['endDateYear'])] 
     102                    #default form has blanks, in which case we don't want to check for date range 
     103                    if dateRange<>[("","",""),("","","")]: 
     104                        self.__checkdates(dateRange) 
     105                    else: dateRange=None            
     106                except: 
     107                    self.message='Invalid date provided' 
     108                if self.message!='':  
     109                    c.xml=self.message 
     110                    return render_response('content') 
     111         
    109112        if 'constrained' in self.inputs:  
    110113            con=self.__buildconstraints(dateRange,bbox,scope,self.inputs['searchString']) 
    111114            return self.__advancedPrompt(searchConstraints=con) 
    112115        else: 
    113         # ------------- ok, now go do the search ----------- 
    114          
    115            response=self.doText(self.inputs['searchString'],self.inputs['textTarget'], 
    116                 self.inputs['start'],self.inputs['howmany'],scope=scope,dateRange=dateRange,bbox=bbox) 
    117            return response 
     116            # ------------- ok, now go do the search ----------- 
     117            response=self.doText(self.inputs['searchString'],self.inputs['textTarget'], 
     118                self.inputs['start'],self.inputs['howmany'],scope=scope,dateRange=dateRange,bbox=bbox) 
     119            return response 
    118120 
    119121    def doText(self,searchString,textTarget,start,howmany,scope=None,dateRange=None,bbox=None): 
Note: See TracChangeset for help on using the changeset viewer.