Annotation of ECHO_content/ECHO_helpers.py, revision 1.16

1.15      dwinter     1: import timeoutsocket
                      2: import urllib
1.16    ! dwinter     3: timeoutsocket.setDefaultSocketTimeout(2)
        !             4: urlopener = urllib.URLopener()
        !             5:    
1.15      dwinter     6: def urlopen(url):
                      7:    """urlopen mit timeout"""
1.16    ! dwinter     8:    try:        
1.15      dwinter     9:        con = urlopener.open(url)
                     10:        return con
                     11:    except timeoutsocket.Timeout:
                     12:        return None
                     13: 
                     14: 
1.14      dwinter    15: displayTypes = ['ZSQLExtendFolder','ZSQLBibliography','ECHO_group','ECHO_collection','ECHO_resource','ECHO_link','ECHO_sqlElement','ECHO_pageTemplate','ImageCollectionIFrame','VLP_resource','VLP_collection','VLP_essay','ECHO_ZCatalogElement']
1.11      dwinter    16: 
1.6       dwinter    17: 
1.14      dwinter    18: def checkOnlyOneInGroup(object): 
1.6       dwinter    19:    """check if object is a group and if it containt only one element it return this element"""
                     20:    displayedObjects=object.ZopeFind(object,obj_metatypes=displayTypes)
                     21:    if len(displayedObjects)==1: # nur ein Object dann redirect auf dieses Object
1.8       dwinter    22: 
1.6       dwinter    23:        return displayedObjects[0][1]
                     24:    else:
                     25:        return object
                     26: 
                     27: def getSubCols(self,sortfield="weight",subColTypes= displayTypes):
1.1       dwinter    28: 
1.3       dwinter    29:         
1.1       dwinter    30:         ids=[]
1.6       dwinter    31:    displayedObjects=self.ZopeFind(self,obj_metatypes=subColTypes)
                     32:    
                     33:    
                     34:    for entry in displayedObjects:
1.3       dwinter    35:             object=entry[1]
1.1       dwinter    36:             try:
                     37:                 if object.meta_type in subColTypes:
1.6       dwinter    38:            ids.append(object)
1.1       dwinter    39:                     
                     40:             except:
                     41:                 """nothing"""
                     42:         try:
                     43:             sortfield=self.sortfield
                     44:         except:
                     45:             """nothing"""
                     46:             
                     47:         tmplist=[]
                     48:         for x in ids:
                     49:             if hasattr(x,sortfield):
                     50:                 try:
1.7       dwinter    51: 
1.1       dwinter    52:                     x=int(x)
                     53:                 except:
                     54:                     """nothing"""
                     55:                 tmp=getattr(x,sortfield)
                     56:             else:
                     57:                 tmp=10000000
                     58:             tmplist.append((tmp,x))
                     59:         tmplist.sort()
                     60:         return [x for (key,x) in tmplist]

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>