Changeset 813 for TI07-MOLES


Ignore:
Timestamp:
21/04/06 13:23:04 (13 years ago)
Author:
lawrence
Message:

Beginning code to render the browse html completely using python
and bypassing xslt (why? much better control over links and more
flexibility for compatability with the discovery pages)

Location:
TI07-MOLES/trunk/StubB/XSLT/browse/portal/cgi
Files:
2 added
1 edited

Legend:

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

    r807 r813  
    3939class dgContact: 
    4040        '''A simple summary of contact information for an organisation or a person ''' 
    41         def __init__(self,element): 
     41        #want to contract organisations and people into one simple type here ... 
     42        #This is moles 1.2.3 ... hopefully we can improve this ... 
     43        def __init__(self,element,ctype='org'): 
    4244                ''' Instantiate a MOLES person element ''' 
    4345                self.elem=element 
    4446                if self.elem is None: return 
    45                 self.name=Name(self.elem.find('dgRoleHolder/dgPerson/name')) 
    46                 self.org=wrapGetText(self.elem,'dgRoleHolder/dgOrganisation/name') 
    47                 self.email=wrapGetText(self.elem,'contactDetails/eMail') 
    48                 self.phone=wrapGetText(self.elem,'contactDetails/telephone') 
    49                 self.url=wrapGetText(self.elem,'contactDetails/URI') 
     47                self.data={} 
     48                self.data['name']=Name(self.elem.find('dgRoleHolder/dgPerson/name')) 
     49                if ctype=='org': 
     50                        base='dgRoleHolder/dgOrganisation/' 
     51                else: 
     52                        base='dgRoleHolder/dgPerson/' 
     53                self.data['org']=wrapGetText(self.elem,base+'name') 
     54                self.data['email']=wrapGetText(self.elem,base+'contactDetails/eMail') 
     55                self.data['phone']=wrapGetText(self.elem,'contactDetails/telephone') 
     56                self.data['url']=wrapGetText(self.elem,'contactDetails/URI') 
    5057        def toHTML(self): 
    5158                ''' Convert to simple HTML ''' 
    52                 if str(self.name)!='': 
    53                         html='<p>%s</br>'%self.name 
    54                 else: 
    55                         html='<p>' 
    56                 if self.org!='': 
    57                         html+='Organisation: %s<br/>'%self.org 
    58                 html+='''Email: %s<br/>Phone: %s<br/></p>''' % (self.email,self.phone) 
     59                labels={'name':'','org':'Organisation: ','email':'Email: ','phone':'Phone: '} 
     60                html='<p>' 
     61                for item in ('name','org','email','phone'): 
     62                        if str(item) !='': html+='%s%s%s'%(labels[item],self.data[item],'<br/>') 
     63                html+='</p>' 
    5964                return html 
    6065                 
     
    8489                                </p>'''%self.box 
    8590                else: 
    86                         html='No bounding box' 
     91                        html='No bounding box available' 
    8792                return html      
    8893         
     
    9297                self.elem=element 
    9398                #just one curator 
    94                 self.curator=dgContact(self.elem.find('dgDataRoles/dgDataCurator')) 
     99                self.curator=dgContact(self.elem.find('dgDataRoles/dgDataCurator'),ctype='org') 
    95100                #possibly multiple creators 
    96101                self.creators=[dgContact(i) for i in self.elem.findall('dgDataRoles/dgDataCreator')] 
Note: See TracChangeset for help on using the changeset viewer.