Changeset 940 for TI07-MOLES/trunk


Ignore:
Timestamp:
17/05/06 13:35:11 (13 years ago)
Author:
lawrence
Message:

Some minor bug fixes in rendering DIFs and stubB

Location:
TI07-MOLES/trunk/StubB/XSLT/browse/portal/cgi
Files:
4 edited

Legend:

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

    r938 r940  
    77from People import * 
    88from ServiceBinding import Service 
     9from renderEntity import renderEntity 
    910 
    1011class DIF: 
     
    1213    note ... not a complete implementation, currently minimum to 
    1314    show a reasonable piece of content ''' 
    14     def __init__(self,xml): 
     15    def __init__(self,xml,renderMethod=renderEntity): 
    1516        '''Initialise a python dif instance based on an xml document ''' 
    1617        self.metadataType='DIF' 
    1718        self.elem=ET.fromstring(xml) 
     19        self.renderMethod=renderMethod 
     20        self.type='DIF' 
    1821         
    1922        self.abstract=wrapGetText(self.elem,'Summary') 
     
    3740                value=item.text 
    3841                if value not in match[level]: match[level].append(value) 
     42        print self.parameters 
    3943             
    4044        #load up information about spatial bounding box  
     
    6569            self.services.append(s) 
    6670             
     71    def toHTML(self): 
     72        ''' Use the render method (optionally passed at initialisation, or the 
     73        default - renderEntity - to get an HTML version of the DIF ''' 
     74        return self.renderMethod(self) 
     75         
     76             
     77if __name__=="__main__": 
     78     
     79    f=file('../../exampleD/spade.xml') 
     80    difxml=f.read() 
     81    D=DIF(cleanup(difxml)) 
     82    y='''<?xml version="1.0" encoding="UTF-8"?> 
     83                <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
     84                <html xmlsns="http://www.w3.org/1999/xhtml" xml:lang="en"> 
     85                        <head> 
     86                                <META http-equiv="Content-Type" content="text/xhtml; charset=iso-8859-1"/> 
     87                                <title>%s</title> 
     88                                <LINK media="all, screen" href="../layout/style.css" type="text/css" rel="stylesheet"/> 
     89                        </head> '''%D.name+D.toHTML() 
     90    f.close() 
     91    f=file('output.html','wb') 
     92    f.write(y) 
     93     
     94     
    6795         
    6896         
  • TI07-MOLES/trunk/StubB/XSLT/browse/portal/cgi/People.py

    r938 r940  
    2929                 ... for presentation we figure further org contacts can be found by following the link which ought to exist) ''' 
    3030            self.data={'personName':'','personEmail':'','personPhone':'','orgURL':'','orgName':'','searchlink':''} 
    31         def tohtml(self,prefix=''): 
     31        def toHTML(self,prefix=''): 
    3232            if self.elem is None: return '' 
    3333            def makelink(r,n): 
    3434                if r!='': 
    35                     return '<a href="%s%>%s</a>'%(a,b) 
     35                    return '<a href="%s">%s</a>'%(r,n) 
    3636                else: return n 
    3737            html='<p>'+prefix 
     
    5555                ''' Instantiate a MOLES contact element ''' 
    5656                self.elem=element 
     57                contact.__init__(self) 
    5758                if self.elem is None: return 
    58                 contact.__init__(self) 
    59                 self.data['personName']=Name(self.elem.find('dgRoleHolder/dgPerson/name')) 
     59                self.data['personName']=Name(self.elem.find('dgRoleHolder/dgPerson/name')) 
    6060                if ctype=='organisation': 
    6161                        base='dgRoleHolder/dgOrganisation/' 
     
    7070    def __init__(self,elem,ctype='centre'): 
    7171        self.elem=elem 
     72        contact.__init__(self) 
    7273        if self.elem is None: return 
    73         contact.__init__(self) 
    7474        if ctype=='centre': 
    7575            self.data['orgName']=wrapGetText(self.elem,'Data_Center_Name/Short_Name') 
  • TI07-MOLES/trunk/StubB/XSLT/browse/portal/cgi/renderDiscoveryResponses.py

    r938 r940  
    33from Utilities import cleanup 
    44 
    5 def render(results,summary=0,services=0,spatial=0,temporal=0): 
    6     '''Takes a set of results from a discovery search and renders a list of responses as a table ''' 
     5def render(difSet,summary=0,services=0,spatial=0,temporal=0,linkto='NDG_B_SERVICE'): 
     6    '''Takes a set of xml DIFS from a discovery search and renders a list of responses as a table, 
     7    with layout depending on a set of keywords: 
     8     ''' 
    79    columns=['name','centre'] 
    810    #next three lines not yet used in anger 
     
    1113    if services: columns.insert(-1,'Services') 
    1214    html='<table><tbody>' 
    13     i=1 
    14     for item in results: 
    15         d=DIF(cleanup(item)) 
     15    i=1#next three lines not yet used in anger 
     16    if spatial: columns.insert(-1,'Spatial') 
     17    if temporal: columns.insert(-1,'Temporal') 
     18    if services: columns.insert(-1,'Services') 
     19    for item in difSet: 
     20        d=DIF(item) 
    1621        bgc={1:'#FFFFFF',-1:'#EEEEEE'}[i] 
    1722        i=-1*i 
    1823        html+='<tr bgcolor=%s><td>%s</td><td>%s</td></tr>'%( 
    19                 bgc,d.name,d.centre) 
     24                bgc,d.name[0:60],d.centre.tohtml()) 
    2025    html+='</tbody></table>' 
    2126    return html 
     
    2530    ws.SearchFullText('acsoe') 
    2631    results=ws.GetResults(number=5) 
    27     html=render(results) 
     32    difs=[] 
     33    for result in results: 
     34        difs.append(cleanup(result)) 
     35    html=render(difs) 
    2836    print html 
    2937    ws.release() 
  • TI07-MOLES/trunk/StubB/XSLT/browse/portal/cgi/renderEntity.py

    r938 r940  
    1111        if entity is None: return '' 
    1212 
    13         try: 
    14                 contentHTML=renderContent(entity) 
    15         except: 
    16                 contentHTML='' 
     13        #try: 
     14        contentHTML=renderContent(entity) 
     15        #except: 
     16        #       contentHTML='' 
    1717         
    1818        if entity.metadataType is 'stubB': 
     
    4242        '''Parse the entity for content information ''' 
    4343         
    44         if entity.constraints.exists: 
    45             html='<p>Access Control: %s</p>'%entity.constraints.html 
    46         else: 
    47             html='' 
     44        html='' 
     45        try: 
     46            if entity.constraints.exists: 
     47                html='<p>Access Control: %s</p>'%entity.constraints.html 
     48        except: pass 
    4849         
    4950        html+=''' 
     
    5556                        </tr>''' 
    5657                         
    57         for item in entity.parameters: 
     58        for item in entity.parameters: 
    5859                html+=''' 
    5960                        <tr><td class="line"><b>Parameter</b><br/></td> 
     
    103104                return html 
    104105        else: return '' 
     106         
     107def renderDataLinks(entity): 
     108    return 'some data link stuff' 
    105109         
    106110def renderRelated(entity): 
Note: See TracChangeset for help on using the changeset viewer.