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