--- OSAS/OSA_system/OSAS_search.py 2004/07/09 16:55:19 1.3 +++ OSAS/OSA_system/OSAS_search.py 2007/01/19 17:16:25 1.8 @@ -8,20 +8,30 @@ from Globals import InitializeClass from Globals import Persistent, package_home from Products.PageTemplates.PageTemplateFile import PageTemplateFile from Products.PageTemplates.PageTemplate import PageTemplate +from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate +from OFS.Folder import Folder from OFS.SimpleItem import SimpleItem -#from pyPgSQL import PgSQL -import psycopg as PgSQL +try: + import psycopg2 as PgSQL +except: + try: + import psycopg as PgSQL + except: + from pyPgSQL import PgSQL import re import os MAXHITS = 1000 -class OSAS_search(SimpleItem): +class OSAS_search(Folder): """Object for global metadata search""" meta_type="OSAS_search" + manage_options=Folder.manage_options+( + {'label':'Main config','action':'manage_ChangeOSAS_searchForm'}, + ) def __init__(self,id,title,dsn=None): @@ -186,14 +196,14 @@ class OSAS_search(SimpleItem): if restypefilter: res = [] for r in results: - if r.type in restypefilter: + if r.type == restypefilter: res.append(r) else: res = results - # filter on count - resgroup = res[start:end] # new total count (because of filter) rescnt = len(res) + # filter on count + resgroup = res[start:end] return (resgroup, rescnt) @@ -236,6 +246,7 @@ class OSAS_search(SimpleItem): (resgroup, nres) = self.filterResults(self.REQUEST.SESSION['results'], sres, lres, restypefilter) lres = min(lres, nres) + sres = min(sres, nres) self.REQUEST.SESSION['resultgroup'] = resgroup self.REQUEST.SESSION['res_indexes'] = (sres+1, lres, nres, int(count)) self.REQUEST.SESSION['res_type_filter'] = restypefilter @@ -318,6 +329,19 @@ class OSAS_search(SimpleItem): return self.search(start=first, count=count) + def manage_ChangeOSAS_searchForm(self): + """create Search form""" + pt=PageTemplateFile(os.path.join(package_home(globals()), "zpt/ChangeOSAS_search.zpt")).__of__(self) + return pt() + + def manage_ChangeOSAS_search(self,id,title=None,dsn=None,RESPONSE=None): + """add the OSAS_root""" + self.id = id + self.title = title + self.dsn = dsn + if RESPONSE is not None: + RESPONSE.redirect('manage_main') + def manage_AddOSAS_searchForm(self): """create Search form""" @@ -589,6 +613,11 @@ def storageURL(filename): if r: url = "http://content.mpiwg-berlin.mpg.de/mpistorage/storage/ShowOnline/index_html?path=%s"%r.group(1) name = "Storage System" + + elif filename.startswith('http://'): + #print "URLFORFILE: url ", filename + url = filename + name = "Online Database" if name and url: return (url, name)