Changeset 2380 for TI07-MOLES/trunk


Ignore:
Timestamp:
04/04/07 08:35:47 (13 years ago)
Author:
lawrence
Message:

Some more browse improvements. Handling dgMetadataDescription.
Better Linking.

Location:
TI07-MOLES/trunk/PythonCode/wsgi
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • TI07-MOLES/trunk/PythonCode/wsgi/ndgDiscovery.config

    r2371 r2380  
    6565instance: datasetURI_%s 
    6666 
     67[NDG_BROWSE_HOSTS] 
     68#following is for testing, it should be glue for now otherwise. 
     69badc.nerc.ac.uk: %(server)s 
     70 
    6771[NDG_B_SERVICE] 
    6872# following is a list of repository servers, actually only one is needed, 
  • TI07-MOLES/trunk/PythonCode/wsgi/ndgObject.py

    r2379 r2380  
    7676                self.URL='unknown' 
    7777                self.discoveryURL,self.baseURL,self.xmlURL,self.printableURL=None,None,None,None 
    78  
     78        if self.gettable<>-1: 
     79            if self.schema<>'NDG-B1': 
     80                defhost=self.config.get('DEFAULT','server') 
     81                uri=self.uri.replace(self.schema,'NDG-B1') 
     82                self.BURL='%s/browse?uri=%s&type=html'%( 
     83                        self.config.get('NDG_BROWSE_HOSTS',self.repository,defhost),uri) 
     84            else: self.BURL=self.URL 
     85        else: 
     86            self.BURL=None 
    7987             
    8088    def get(self,type='xml'): 
  • TI07-MOLES/trunk/PythonCode/wsgi/renderEntity.py

    r2379 r2380  
    2727        if entity.metadataType in ['DC','MDIP']: 
    2828            return entity.toHTML() 
    29          
    30          
    31         if entity.metadataType is 'stubB': 
     29        elif entity.metadataType == 'NDG-B1': 
    3230                relatedHTML=renderRelated(entity) 
    33         else: 
     31                contentHTML=renderDescription(entity.description) 
     32                if entity.stubBtype=='dgDataEntity': 
     33                    contentHTML+=renderDataContent(entity) 
     34                else: 
     35                    contentHTML='' 
     36                serviceHTML=self.renderServices(entity) 
     37        elif entity.metadataType=='DIF': 
    3438                relatedHTML='' 
    35  
    36         if entity.metadataType=='dgDataEntity': 
    3739                contentHTML=renderDataContent(entity) 
    38                 relatedHTML=renderGranules(entity)+relatedHTML 
    39                 serviceHTML=self.renderServices(entity) 
    40         elif entity.metadataType=='DIF': 
    41                 contentHTML=renderDataContent(entity) 
    42                 #relatedHTML=renderDataLinks(entity)+relatedHTML 
    4340                serviceHTML=self.renderServices(entity) 
    4441        else: 
    45                 contentHTML='' 
    46                 serviceHTML=self.renderServices(entity) 
    47                  
    48          
     42            contentHTML='' 
     43            serviceHTML='' 
     44            relatedHTML='' 
     45 
    4946        body=contentHTML+relatedHTML+serviceHTML 
    5047        html=''' 
     
    8885        html+='</tbody></table>' 
    8986        return html 
     87             
     88def renderDescription(description,abstract=0): 
     89    ''' Takes a dgMetadatadescription and describes it, with or without the abstract ''' 
     90    html='<div class="dgMetadataDescription">' 
     91    if description.descriptionType in ['','text/plain']: 
     92        html+='<div class="description"><p>%s</p></div>'%description.description 
     93    elif description.description<>'': 
     94        html+='<div class="description">%s</div>'%description.description 
     95    if description.onlineRefs<>[]: 
     96        html+='<p>Simple Links:<ul>' 
     97        for l in description.onlineRefs: 
     98            html+='<li><a href="%s">%s</a></li>'%(l[1],l[0]) 
     99        html+='</ul></p>' 
     100    html+='</dgMetadataDescription>' 
     101    return html 
    90102 
    91103def renderDataContent(entity): 
     
    192204    ''' take a stub-b and create html for the related entities ''' 
    193205    html='' 
     206 
    194207    if entity.related!=[]: 
    195208        html='''<p><br/></p>' 
     
    205218            for key in deployment.links: 
    206219                for l in deployment.links[key]: 
     220                    b='<a href="%s">%s</a>'%(deployment.URL,d) 
    207221                    a='<a href="%s">%s</a>'%(l.URL,l.name) 
    208222                    html+='''<tr><td width="10%%">%s</td> 
    209                                 <td width="30%%">%s</td> 
    210                                     <td width="60%%">%s</td></tr>'''%(d,key,a) 
     223                                <td width="30%%"><b>%s</b></td> 
     224                                    <td width="60%%">%s</td></tr>'''%(b,l.label,a) 
    211225         
    212226        html+='</tbody></table>' 
  • TI07-MOLES/trunk/PythonCode/wsgi/stubB.py

    r2379 r2380  
    3434class ndgLink: 
    3535    ''' This is a holder for an ndgObject which has a name (and possibly abbreviation) ''' 
    36     def __init__(self,name,abbrev,ndgO): 
     36    def __init__(self,name,abbrev,ndgO,label='',image=None): 
    3737        self.ndgObject=ndgO 
    3838        self.name=name 
    3939        self.abbrev=abbrev 
    40         self.image=None 
    41         self.URL=ndgO.URL 
     40        self.image=image 
     41        self.label=label 
     42        self.URL=ndgO.BURL 
    4243    def toHTML(self): 
    4344        ### needs to be finished 
     
    6869class Deployment: 
    6970    def __init__(self,helper,elem,others,config): 
    70         # not passing the config file, a deployment shouldn't be linkable in it's own right 
    71         n=idconvert(helper,elem)   
    72         self.uri=n.uri 
     71        labels={'activity':'Activity ','observationstation':'Observation Station ', 
     72                'dataproductiontool':'Data Production Tool ','dataEntity':'Data Entity ', 
     73                'dataentity':'Data Entity'} 
     74        n=idconvert(helper,elem,config) 
     75        self.ndgObject=n 
     76        self.URL=n.BURL 
    7377        self.dateRange=(helper.getText(elem,'DateStart'),helper.getText(elem,'DateEnd')) 
    7478        self.links={} 
     
    7781            if o not in self.links: self.links[o]=[] 
    7882            for i in ids: 
    79                 link=ndgLink( 
    80                      helper.getText(i,'name'),helper.getText(i,'abbreviation'),idconvert(helper,i,config)) 
     83                link=ndgLink(helper.getText(i,'name'), 
     84                    helper.getText(i,'abbreviation'),idconvert(helper,i,config),label=labels[o]) 
    8185                self.links[o].append(link) 
    8286         
     
    150154                '''Instantiate by parsing an xml document passed in as a string ''' 
    151155                 
    152                 self.metadataType='stubB' 
     156                self.metadataType='NDG-B1' 
    153157                self.services=[] 
    154158                self.config=config 
    155159                 
    156                 self.labels={'activity':'Activity ','observationstation':'Observation Station ', 
    157                                         'dataproductiontool':'Data Production Tool ','dataEntity':'Data Entity ','dataentity':'Data Entity'} 
    158160                try: 
    159161                        self.xml=xml 
     
    164166                except Exception,e: 
    165167                        raise ValueError('Error instantiating stubB [%s]'%e) 
    166                  
    167168 
    168169                self.ndgObject=idconvert(helper,self.tree,self.config) 
     
    203204                self.description=dgMetadataDescription(helper,helper.find(self.tree,'dgMetadataDescription')) 
    204205                self.abstract=self.description.abstract 
     206                self.stubBtype=elem.tag 
    205207               
    206208                # now go get all the related links 
Note: See TracChangeset for help on using the changeset viewer.