Annotation of ECHO_content/ECHO_helpers.py, revision 1.18
1.17 dwinter 1: import socket
1.15 dwinter 2: import urllib
1.16 dwinter 3:
1.15 dwinter 4: def urlopen(url):
5: """urlopen mit timeout"""
1.18 ! dwinter 6: socket.setdefaulttimeout(5)
1.17 dwinter 7: return urllib.urlopen(url)
8: # urlopener = urllib.URLopener()
9: #
10: # try:
11: # con = urlopener.open(url)
12: # return con
13: # except timeoutsocket.Timeout:
14: # return None
1.15 dwinter 15:
16:
1.14 dwinter 17: 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 18:
1.6 dwinter 19:
1.14 dwinter 20: def checkOnlyOneInGroup(object):
1.6 dwinter 21: """check if object is a group and if it containt only one element it return this element"""
22: displayedObjects=object.ZopeFind(object,obj_metatypes=displayTypes)
23: if len(displayedObjects)==1: # nur ein Object dann redirect auf dieses Object
1.8 dwinter 24:
1.6 dwinter 25: return displayedObjects[0][1]
26: else:
27: return object
28:
29: def getSubCols(self,sortfield="weight",subColTypes= displayTypes):
1.1 dwinter 30:
1.3 dwinter 31:
1.1 dwinter 32: ids=[]
1.6 dwinter 33: displayedObjects=self.ZopeFind(self,obj_metatypes=subColTypes)
34:
35:
36: for entry in displayedObjects:
1.3 dwinter 37: object=entry[1]
1.1 dwinter 38: try:
39: if object.meta_type in subColTypes:
1.6 dwinter 40: ids.append(object)
1.1 dwinter 41:
42: except:
43: """nothing"""
44: try:
45: sortfield=self.sortfield
46: except:
47: """nothing"""
48:
49: tmplist=[]
50: for x in ids:
51: if hasattr(x,sortfield):
52: try:
1.7 dwinter 53:
1.1 dwinter 54: x=int(x)
55: except:
56: """nothing"""
57: tmp=getattr(x,sortfield)
58: else:
59: tmp=10000000
60: tmplist.append((tmp,x))
61: tmplist.sort()
62: return [x for (key,x) in tmplist]
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>