Ignore:
Timestamp:
29/05/07 17:36:43 (12 years ago)
Author:
lawrence
Message:

Sundry minor improvements in layout etc.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI07-MOLES/trunk/PythonCode/wsgi/DiscoveryGUI.py

    r2487 r2522  
    77from Utilities import myConfig,mailError 
    88from ndgObject import ndgObject 
     9from Date import * 
    910debug=0 
    1011class DiscoveryGUI: 
     
    5859             
    5960        advanced=int(self.inputs['advanced']) 
     61        self.advanced=advanced 
    6062         
    6163        self.html='' 
     
    7072                        'sourceLimit'] 
    7173            self.__checkform(expected) 
    72             if self.message!='': return 
     74            if self.message!='': return self.error() 
    7375              
    7476            if int(self.inputs['sourceLimit']): 
     
    8385            if int(self.inputs['spaceLimit']): 
    8486                bbox=[self.inputs['bboxN'],self.inputs['bboxS'],self.inputs['bboxW'],self.inputs['bboxE']] 
     87                self.__checkbox(bbox) 
     88                if self.message!='': return self.error() 
    8589            else: 
    8690                bbox=None 
     
    8993                dateRange=[(self.inputs['startDateDay'],self.inputs['startDateMon'],self.inputs['startDateYear']), 
    9094                           (self.inputs['endDateDay'],self.inputs['endDateMon'],self.inputs['endDateYear'])] 
     95                self.__checkdates(dateRange)                  
     96                if self.message!='': return self.error() 
     97                         
    9198            else: 
    9299                dateRange=None 
    93                  
     100  
    94101            self.doText(self.inputs['searchString'],self.inputs['textTarget'], 
    95102                        self.inputs['start'],self.inputs['howmany'],scope=scope,dateRange=dateRange,bbox=bbox) 
    96103            
    97104        return 
     105             
     106             
     107    def __checkbox(self,bbox): 
     108        if float(bbox[0])>90.0 or float(bbox[1])<-90. or float(bbox[2])<-180. or float(bbox[3])>180.: 
     109            self.message='Invalid bounding box dimensions entered (limits 90,-90,-180,180)' 
    98110             
    99111    def __checkform(self,expected): 
     
    105117                self.html='<p>%s</p>'%self.message 
    106118                 
     119    def __checkdates(self,dateRange): 
     120        ''' Check input dates for sanity ''' 
     121        print dateRange,ValidDate(dateRange[0]),ValidDate(dateRange[1]) 
     122        if not ValidDate(dateRange[0])*ValidDate(dateRange[1]): 
     123            self.message='Input dates are not valid' 
     124        elif JulDay(dateRange[0])>=JulDay(dateRange[1]): 
     125            self.message='Second date must be after first date' 
     126                 
    107127    def __setState(self,id,searchString,hits,offset,stride): 
    108128        ''' Sets the discovery state to be used by external routines ''' 
     
    110130        return DiscoveryState(id,searchString,self.environ,hits,offset,stride) 
    111131         
     132     
     133    def error(self): 
     134        ''' Return a useful error message ''' 
     135        self.html='<div class="error"><p>%s</p></div>'%self.message 
     136        if self.advanced: 
     137            self.advancedInterface() 
     138        else: 
     139            self.standardInterface() 
     140         
     141     
    112142    def doText(self,searchString,textTarget,start,howmany,scope=None,dateRange=None,bbox=None): 
    113143        ''' Carry out a text search for <searchString>  
Note: See TracChangeset for help on using the changeset viewer.